一、從 calibre 庫導入書籍
Calibre為電子書管理軟件,可以管理電子書、轉換格式、發布到Kindle等電子書閱讀設備。而 calibreweb 是建立在 Calibre 基礎上可以在局域內通過網頁瀏覽和管理電子書庫的web端。
calibreweb提供了一個方便的方式來為你的電子書實現在線閱讀。calibre庫中的電子書可以通過多種方式導入到calibreweb中,包括手動上傳和通過文件夾監控。
<p>def add_books(self, paths: List[Union[str, Path]],
metadata: Optional[Dict[str, Any]] = None) -> List[str]:
"""
Add one or more books to the database from the location specified by the given path.
Automatically adds new authors, tags and series.
Returns a list of new book ids.
The function does not rewrite existing books.
If a book already exists in the database, it is not added again.
:returns: list of ids of newly added books
"""
</code></pre>
也就是說,我們可以通過調用 add_books()
函數將電子書添加到數據庫中,這個函數的一些參數可以用來設置元數據(如標題、作者、出版社等)。
二、calibreweb自帶的閱讀器
為了實現更好的用戶體驗,並避免依賴第三方閱讀器,CalibreWeb自帶了一個在線閱讀器。它允許用戶選擇閱讀器主題、上傳筆記、高亮文本、從本地上傳字體等。
下面是一個例子,在此處呈現用戶指定的電子書:
<div class="reader-container">
<div class="reader-headline">
<h2 id="book-title" class="title"></h2>
<div class="author-line">
<span id="book-authors" class="author"></span>
<span id="book-series" class="series"></span>
<span id="book-series-number" class="seriesNumber"></span>
</div>
</div>
<div class="reader-content-container">
<div id="reader-content" class="reader-content"></div>
</div>
</div>
<script>
$(() => initReader(/*args*/));
</script>
三、批量導入電子書
如果你的電子書庫非常龐大,單個導入書籍可能太過麻煩,那麼可以考慮使用批量導入書籍的功能。
CalibreWeb內置了一個簡單的命令行工具bulkmeta用來支持批量獲取元數據。以下是使用bulkmeta批量導入電子書的步驟:
- 備份數據
- 批量獲取元數據
- 複製電子書文件到指定的文件夾(可選)
- 運行腳本
- 根據參數啟動服務
<p>python bulkmeta.py --reset_tags True
--confirm_updates True
--authors_dup_filenames True
--exclude_tags "tags_to_exclude"
--download_covers True
--min_words 100
--workers 2
--metadata_source "douban"
--batch_size 100
--add "<path_to_books_directory>"</code></pre>四、CalibreWeb無法從豆瓣獲取電子書的元數據
豆瓣api子鍵 id
需要與它執行人的timestring唯一匹配,否則將返回錯誤狀態碼。使用豆瓣API時需要有相應的權限和API Key。如果你沒有針對豆瓣獲取信息的API Key,那麼你可以自行刮削並獲得所有必要的信息,否則你可以參考另一篇文章介紹的知識點以便自己使用豆瓣API獲取電子書元數據。
五、獲取電子書元數據失敗
有時候在嘗試導入一本電子書時,CalibreWeb會無法獲取電子書的元數據。這可能是因為電子書沒有isbn或者其他原因所致。在這種情況下,你可以手動編輯元數據,將書名、作者、封面等信息加入元數據中,以方便管理。
<p>def set_metadata(self, book_id: int, metadata: dict) -> bool:
"""
Set the metadata of a book
:param book_id: The book id
:param metadata: The metadata to set
:return: Whether the metadata was successfully set
"""
</code></pre>可以通過調用 set_metadata()
函數為所需的圖書設置元數據。這個函數的第二個參數應該是一個字典,其中包含鍵值對,包括書的標題、作者、出版社等屬性。
六、結語
在本文中,我們分別介紹了 CalibreWeb 的多種功能,例如導入書籍、在線閱讀、批量導入書籍、獲取元數據失敗等。相信通過本文的介紹,你已經對 CalibreWeb 有了更深入的了解,並且能夠更好地運用 CalibreWeb 管理自己的電子書庫。
原創文章,作者:IKJE,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/137034.html