diff --git a/include/book.h b/include/book.h index b7935834..434ba745 100644 --- a/include/book.h +++ b/include/book.h @@ -69,6 +69,7 @@ class Book const uint64_t& getSize() const { return m_size; } const std::string& getFavicon() const { return m_favicon; } const std::string& getFaviconMimeType() const { return m_faviconMimeType; } + const std::string& getDownloadId() const { return m_downloadId; } void setReadOnly(bool readOnly) { m_readOnly = readOnly; } void setId(const std::string& id) { m_id = id; } @@ -91,9 +92,11 @@ class Book void setSize(uint64_t size) { m_size = size; } void setFavicon(const std::string& favicon) { m_favicon = favicon; } void setFaviconMimeType(const std::string& faviconMimeType) { m_faviconMimeType = faviconMimeType; } + void setDownloadId(const std::string& downloadId) { m_downloadId = downloadId; } protected: std::string m_id; + std::string m_downloadId; std::string m_path; bool m_pathValid; std::string m_indexPath; diff --git a/src/book.cpp b/src/book.cpp index eb0798b8..52e2d50c 100644 --- a/src/book.cpp +++ b/src/book.cpp @@ -123,6 +123,9 @@ void Book::updateFromXml(const pugi::xml_node& node, const std::string& baseDir) m_size = strtoull(ATTR("size"), 0, 0); m_favicon = base64_decode(ATTR("favicon")); m_faviconMimeType = ATTR("faviconMimeType"); + try { + m_downloadId = ATTR("downloadId"); + } catch(...) {} } #undef ATTR diff --git a/src/library.cpp b/src/library.cpp index fea5d83b..28abb90b 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -155,6 +155,10 @@ bool Library::writeToFile(const std::string& path) { if (!book.getSize()) { bookNode.append_attribute("size") = to_string(book.getSize()).c_str(); } + + if (!book.getDownloadId().empty()) { + bookNode.append_attribute("downloadId") = book.getDownloadId().c_str(); + } } }