summaryrefslogtreecommitdiffstats
path: root/fbreader/src/network/NetworkBookItem.cpp
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2024-06-07 23:30:05 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2024-06-07 23:30:05 +0900
commit17b259df9cb6b28779d4881b2b6c805ee2e48eea (patch)
tree5ed61937459cb7081089111b0242c01ec178f1f3 /fbreader/src/network/NetworkBookItem.cpp
parent1cba8bce178eb2d6719c6f7f21e2c9352c5513a6 (diff)
downloadtde-ebook-reader-17b259df9cb6b28779d4881b2b6c805ee2e48eea.tar.gz
tde-ebook-reader-17b259df9cb6b28779d4881b2b6c805ee2e48eea.zip
Rename to tde-ebook-reader
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'fbreader/src/network/NetworkBookItem.cpp')
-rw-r--r--fbreader/src/network/NetworkBookItem.cpp191
1 files changed, 0 insertions, 191 deletions
diff --git a/fbreader/src/network/NetworkBookItem.cpp b/fbreader/src/network/NetworkBookItem.cpp
deleted file mode 100644
index 5eeb101..0000000
--- a/fbreader/src/network/NetworkBookItem.cpp
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (C) 2009-2012 Geometer Plus <contact@geometerplus.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include "NetworkItems.h"
-#include "NetworkLink.h"
-#include "authentication/NetworkAuthenticationManager.h"
-
-const ZLTypeId NetworkBookItem::TYPE_ID(NetworkItem::TYPE_ID);
-
-bool NetworkBookItem::AuthorData::operator < (const AuthorData &data) const {
- const int sComp = SortKey.compare(data.SortKey);
- return (sComp < 0) || (sComp == 0 && DisplayName < data.DisplayName);
-}
-
-bool NetworkBookItem::AuthorData::operator != (const NetworkBookItem::AuthorData &data) const {
- return DisplayName != data.DisplayName || SortKey != data.SortKey;
-}
-
-bool NetworkBookItem::AuthorData::operator == (const NetworkBookItem::AuthorData &data) const {
- return DisplayName == data.DisplayName && SortKey == data.SortKey;
-}
-
-NetworkBookItem::NetworkBookItem(
- const NetworkLink &link,
- const std::string &id,
- unsigned int index,
- const std::string &title,
- const std::string &summary,
- const std::string &language,
- const std::string &date,
- const std::vector<AuthorData> &authors,
- const std::vector<std::string> &tags,
- const std::string &seriesTitle,
- unsigned int indexInSeries,
- const UrlInfoCollection &urlByType,
- const std::vector<shared_ptr<BookReference> > references
-) :
- NetworkItem(link, title, summary, urlByType),
- Index(index),
- Id(id),
- Language(language),
- Date(date),
- Authors(authors),
- Tags(tags),
- SeriesTitle(seriesTitle),
- IndexInSeries(indexInSeries),
- myReferences(references) {
-}
-
-NetworkBookItem::NetworkBookItem(const NetworkBookItem &book, unsigned int index) :
- NetworkItem(book.Link, book.Title, book.Summary, book.URLByType),
- Index(index),
- Id(book.Id),
- Language(book.Language),
- Date(book.Date),
- Authors(book.Authors),
- Tags(book.Tags),
- SeriesTitle(book.SeriesTitle),
- IndexInSeries(book.IndexInSeries) {
-}
-
-const ZLTypeId &NetworkBookItem::typeId() const {
- return TYPE_ID;
-}
-
-shared_ptr<BookReference> NetworkBookItem::reference(BookReference::Type type) const {
- shared_ptr<BookReference> reference;
- for (std::vector<shared_ptr<BookReference> >::const_iterator it = myReferences.begin(); it != myReferences.end(); ++it) {
- if ((*it)->ReferenceType == type &&
- (reference.isNull() || (*it)->BookFormat > reference->BookFormat)) {
- reference = *it;
- }
- }
-
- if (reference.isNull() && type == BookReference::DOWNLOAD_FULL) {
- reference = this->reference(BookReference::DOWNLOAD_FULL_CONDITIONAL);
- if (!reference.isNull()) {
- shared_ptr<NetworkAuthenticationManager> authManager =
- Link.authenticationManager();
- if (authManager.isNull() || authManager->needPurchase(*this)) {
- return 0;
- }
- reference = authManager->downloadReference(*this);
- }
- }
-
- if (reference.isNull() &&
- type == BookReference::DOWNLOAD_FULL &&
- this->reference(BookReference::BUY).isNull() &&
- this->reference(BookReference::BUY_IN_BROWSER).isNull()) {
- reference = this->reference(BookReference::DOWNLOAD_FULL_OR_DEMO);
- }
-
- if (reference.isNull() &&
- type == BookReference::DOWNLOAD_DEMO &&
- (!this->reference(BookReference::BUY).isNull() ||
- !this->reference(BookReference::BUY_IN_BROWSER).isNull())) {
- reference = this->reference(BookReference::DOWNLOAD_FULL_OR_DEMO);
- }
-
- return reference;
-}
-
-std::string NetworkBookItem::localCopyFileName() const {
- const bool hasBuyReference =
- !this->reference(BookReference::BUY).isNull() ||
- !this->reference(BookReference::BUY_IN_BROWSER).isNull();
- shared_ptr<BookReference> reference;
- std::string fileName;
- for (std::vector<shared_ptr<BookReference> >::const_iterator it = myReferences.begin(); it != myReferences.end(); ++it) {
- const BookReference::Type type = (*it)->ReferenceType;
- if ((type == BookReference::DOWNLOAD_FULL ||
- type == BookReference::DOWNLOAD_FULL_CONDITIONAL ||
- (!hasBuyReference && type == BookReference::DOWNLOAD_FULL_OR_DEMO)) &&
- (reference.isNull() || (*it)->BookFormat > reference->BookFormat)) {
- std::string name = (*it)->localCopyFileName();
- if (!name.empty()) {
- reference = *it;
- fileName = name;
- }
- }
- }
- return fileName;
-}
-
-void NetworkBookItem::removeLocalFiles() const {
- const bool hasBuyReference =
- !this->reference(BookReference::BUY).isNull() ||
- !this->reference(BookReference::BUY_IN_BROWSER).isNull();
- for (std::vector<shared_ptr<BookReference> >::const_iterator it = myReferences.begin(); it != myReferences.end(); ++it) {
- const BookReference::Type type = (*it)->ReferenceType;
- if (type == BookReference::DOWNLOAD_FULL ||
- type == BookReference::DOWNLOAD_FULL_CONDITIONAL ||
- (!hasBuyReference && type == BookReference::DOWNLOAD_FULL_OR_DEMO)) {
- std::string fileName = (*it)->localCopyFileName();
- if (!fileName.empty()) {
- // TODO: remove a book from the library
- // TODO: remove a record from the database
- ZLFile(fileName).remove();
- }
- }
- }
-}
-
-bool NetworkBookItem::isFullyLoaded() const {
- return true;
-}
-
-void NetworkBookItem::loadFullInformation(shared_ptr<ZLNetworkRequest::Listener> listener) {
- listener->finished();
-}
-
-std::vector<shared_ptr<NetworkItem> > NetworkBookItem::getRelatedCatalogsItems() const {
- return std::vector<shared_ptr<NetworkItem> >();
-}
-
-void NetworkBookItem::updateReferences(const std::vector<shared_ptr<BookReference> > &references) {
- //TODO implement using one UrlInfoCollection instead of vector of references and urlByType
- for (std::size_t i = 0; i < references.size(); ++i) {
- bool found = false;
- const shared_ptr<BookReference> newRef = references.at(i);
- for (std::size_t j = 0; j < myReferences.size(); ++j) {
- shared_ptr<BookReference> ref = myReferences.at(j);
- if (ref->ReferenceType == newRef->ReferenceType && ref->BookFormat == ref->BookFormat) {
- //TODO maybe implement a supporting of new urls with same book format & reference type:
- //ref->URL = newRef->URL;
- found = true;
- break;
- }
- }
- if (!found) {
- myReferences.push_back(newRef);
- }
- }
-}