漫畫訂閱器:cmdlr

最近都沒怎麼寫網誌,雖然是有點正經理由啦,不過偷懶過頭依然微妙地有些心虛。剛好又 Coding 了無聊的怪東西,藉機發個分享文好了。

今天的新玩具是命令行漫畫訂閱程式「cmdlr」一隻。適用對象如下:

  • 不討厭命令行的人
  • 收集狂
  • 書櫃爆炸但懶得自炊,希望有人幫炊者
  • 同時追數百套更新,但不想隔三差五用肉眼檢查網站
  • 受不了瀏覽器看漫畫不能全螢幕顯示、每次翻頁還要等一兩秒
  • 希望工具能在 Linux 環境下順跑
    (我只在 Linux 環境下使用過,但 Windows 環境沒道理不能用,歡迎測試)

安裝

安裝方法需預裝 python(版本需大於 3.4,我愛追新版哈)與 pip,然後使用以下 pip 指令安裝:

pip3 install cmdlr

使用

基本使用邏輯簡介如下:

  1. 使用訂閱選項 -s,訂閱現有「分析器」所支援的網站中,各種有興趣的漫畫
  2. 使用下載選項 -d,將所有訂閱後還未下載的漫畫集數下載到本機
  3. 使用刷新選項 -r,檢查網站更新,可能會發現新的集數。
  4. 再次使用下載選項 -d,將更新的集數下載到本機。

除此之外,也有列出訂閱資料的 -l 選項、取消訂閱並刪除檔案的 -u 選項,設定下載路徑的 opt -o 選項等等。請用命令行選項 --help 查找所有命令清單與說明。用法就是這麼簡單。順便一提,在看漫畫時如果想知道哪些資料夾是最近被更新過的,推荐使用檔案瀏覽器的「依照時間排序」功能解決。這和本程式無關,請自行摸摸看。

下載下來的檔案,預設會以 (volume) 為單位分成多個資料夾。如果想要下載後直接轉成 cbz 格式,cmdlr 中也有設定選項可用。不過只會影響未來下載的檔案。至於已經下載的檔案想要交叉轉換的話,建議用另一個命令行軟體 ftcbz 來處理會比較直接也比較快。

參考:整理漫畫圖檔的小工具: ftcbz

在支援網站方面,我沒有一網打盡所有網站的意思,因為網站改版很快,私以為暫時夠用就好了。

自建分析器

如果想自建分析器也非常簡單,簡要步驟說明如下:

  1. 將專案原始碼 clone 下來。專案網站在此
  2. 建立或複製一個新的 .py 檔案放到 專案資料夾/src/cmdlr/analyzers 下面。
    (提示:建議複製一個原本寫好的分析器當範本比較快。之後只要在這個檔案中作業就好,原則上不需要修改其他任何檔案)
  3. 參考現有分析器與 專案資料夾/src/cmdlr/comicanalyzer.py 檔案中的說明,在新的 .py 檔案中繼承 ComicAnalyzer 類別並實作它。
  4. 執行 專案資料夾/cmdlr.py 來確認效果。
    (提示:直接執行此腳本時,會將原碼資料夾下的 testing.db 檔案作為測試資料庫來用,因此不會干擾到個人的資料庫,但注意 output dir 會維持預設值,建議調整一下 output 資料夾)
  5. 搞定之後歡迎把程式碼寄回回給我,我測試後會將其合併進原碼庫中給大家下載。pull request 也很讚,知道怎麼使用的開發者也請多利用。

自己稍微試了下,copy 一個現有分析器當模版,開發另一個分析器,大概兩小時就搞定了。應該還算蠻容易開發的。當然也要看目標網站容不容易被分析。有興趣就一起來玩吧。