用 Go 編寫的 Legimi 電子書的簡單替代下載器。
基本上是用 Lua 重寫了先前的下載器。
這完全是非官方的,我與 Legimi 沒有任何關係。
筆記
這仍在進行中,但是已經可以使用了。
您可以在背景中找到有關它是如何產生的更多資訊。
只需從發布部分下載存檔,解壓縮並使其可執行(如果需要): $ chmod +x legimi-go
。當然,您可以將安裝目錄新增到PATH
變數中,以便能夠從任何地方運行它。
或者,如果您安裝了 Go,則可以使用go install
命令安裝它:
$ go install github.com/tp86/legimi-go@ < version >
可以是版本中的特定版本標籤或latest
以從main
分支取得程式碼。請注意, main
分支可能包含未完成的功能。不過,我正在盡力只提交工作代碼。
若要查看使用情況,請呼叫:
$ legimi-go --help
所有命令列開關都是可選的。
--config path
設定檔的路徑。預設值為"$HOME/.config/legimi-go/config.ini"
。設定檔包含您的憑證和由 Legimi 服務指派的 Kindle ID。它將在第一次命令運行時自動建立(缺少目錄),因此通常不需要手動修改它。如果您不想將登入名稱和密碼儲存在檔案中,可以在命令列中提供憑證(請參閱--login
和--password
開關)。
提示
您可以建立許多設定文件,以便您可以輕鬆地在多個帳戶之間切換。
--login login
您的 Legimi 登入資訊。如果您不提供從命令列登入的信息,則會從設定檔中讀取。如果設定檔中也缺少它,系統會要求您在命令執行期間提供它。然後它將儲存在設定檔中,因此您不必在將來的命令運行期間重複它。如果您確實從命令列提供登錄,則不會將其寫入設定檔。
--password password
你的雷吉米密碼。適用與登入相同的邏輯。請注意,登入名稱和密碼以純文字形式儲存在設定檔中。
--debug
啟用調試模式。在偵錯模式下,有關交換的請求和回應的選定資訊將列印到 stderr。目前,最有用的信息可能包含在會話回應中。
筆記
您可以使用一個( -config
)或兩個破折號( --config
)來指定開關。
可用的命令有:
list
列出目前在 Legimi 書架上的書籍。
download
下載給定 ID 的書籍。可以透過列出書籍來取得書籍 ID(書籍條目行中的第一個值)。
version
列印合法版本。
提供命令是強制性的,沒有預設命令。
第一次命令呼叫時,系統將提示您提供憑證(如果未透過命令列開關提供,請參閱上文)和 Kindle 序號(Kindle 中的設定 -> 裝置選項 -> 裝置資訊)。 Legimi Kindle Id 將自動查詢並儲存在設定檔中以供將來使用。
列出書架上的書籍
$ legimi-go list
如果您是第一次執行腳本,或傳遞尚未有憑證的設定文件,系統會提示您輸入登入名稱和密碼。
下載選定的書籍
$ legimi-go download < book-id >
下載的書籍將儲存到目前工作目錄中的
檔案中。
提示
您可以在下載之前cd
進入已安裝的 Kindle documents
目錄,以避免複製檔案。
將檔案複製到 Kindle 的documents
目錄
如果您在documents
目錄中下載了書籍,則此選項是可選的。
顯然,僅支援官方 Legimi 應用程式的部分功能。
大多數錯誤響應尚未識別/處理。這在未來應該會得到改善。
腳本無意建立 Legimi 服務未知的帳戶或註冊設備。您應該為此使用官方應用程式。設備註冊有效,但可能會導致問題。
如果您想知道訂閱期內還剩多少書籍下載,可以使用-debug
開關並在Session response
部分下找到downloads left
資訊。如果您嘗試下載的書籍超出限制,Legimi 服務將阻止下載。
如果某些內容未按預期工作,請嘗試使用-debug
開關來獲取更多資訊。
還應該檢查官方 Legimi 應用程序,因為它是一個參考點。使用官方應用程式也有可能解決問題(#3(評論))。
官方 Legimi 應用程式不支援 Linux。我希望能夠從 Linux 下載電子書,而無需在作業系統之間切換(甚至不需要安裝 Windows)。
下載器的第一個版本是用 Lua 建立的。它工作得很好,但事實證明有時很難安裝(依賴項安裝到不同的路徑)。它也很難維護,並且會導致 Legimi 協定更新出現問題。因此,我決定用Go重寫腳本。我希望它的安裝、使用和維護會更容易。
我根據Legimi官方應用程式和服務之間交換的流量提取了下載書籍的邏輯。因此,肯定存在缺失的部分和功能。此外,不支援大多數錯誤回應。有關更多缺失功能,請參閱限制。