最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Calibre插件 Skip ASCII Text 解決中文名稱保存問題

2023-04-06 20:31 作者:馬歇爾剪刀  | 我要投稿


核心思路

核心思路參照了知乎上Hsuan及走地雞的文章 https://zhuanlan.zhihu.com/p/596352034,對文件 calibre/src/calibre/utils/filename.py 中的 ascii_text() 函數(shù)進行修改從而使字符替換失效,進而解決中文名稱保存問題。

但該方法需要一定的知識儲備并且步驟較多,因此想到用函數(shù)替換去解決該問題,即用新的函數(shù)去替換對應的核心函數(shù)即可,可實現(xiàn)熱替換,不影響后續(xù)的版本升級,最大限度減少對Calibre本體代碼的影響。

核心代碼(放在文件ui.py中)如下:

簡單說,就是當設置 prefs['SKIP_ASCII_TEXT']為True 時,把系統(tǒng)中的filenames模塊作用域內(nèi)的ascii_text函數(shù)替換成我們定義的ascii_text_pass函數(shù),否則重載filenames模塊以重新讀取被替換的函數(shù)。

另外設置了在主要圖形界面加載完畢后自動應用當前設定,不必每次開啟軟件后重新設置。

核心的部分只有這些,其余就是一些UI以及配置代碼。


插件的適用版本及環(huán)境

  • Windows10 環(huán)境下 v6.12.0 及 v6.14.1 測試可用

目前僅在Windows10系統(tǒng)下進行了開發(fā)及測試,其他環(huán)境的兼容性未知。

開發(fā)版本是v6.12.0,升級到最新的v6.14.1后仍生效。在github的calibre源碼里確認了最早可追溯的v0.9.33版本中對應文件路徑未發(fā)生過改動。

其他可能存在的問題點是使用的UI及配置代碼可能在過早的版本中不受支持。


插件下載地址

源碼及壓縮包放到了gitee上。

到該頁面(https://gitee.com/shiratori3/calibre-plugins/releases/tag/v1.0.0)下載zip壓縮包 skip_ascii_text_plugin.zip 即可。


插件安裝及卸載

安裝步驟:

主工具欄的首選項(Preference)

安裝步驟1

→ 高級選項(Advanced)中的插件(Plugins)

安裝步驟2

→ 從文件里加載插件(Load Plugin from file)

安裝步驟3

→ 選擇對應 skip_ascii_text_plugin.zip 壓縮包

→ 點擊確認即可

→ 如果有提示選擇安裝到哪個位置,選擇主工具欄(main toolbar)

卸載只需把上述步驟的從文件里加載插件(Load Plugin from file) 換成移除插件(Remove plugin)即可。

卸載后插件功能自動失效。

如果重新安裝會繼承卸載前的配置狀態(tài)。卸載前是關閉狀態(tài)的話需要先切換至開啟狀態(tài)才能生效。


插件使用及配置

加載后默認是開啟狀態(tài),但安裝后需要重啟Calibre使插件生效。

插件圖標

點擊主工具欄中的Skip ASCII即可查看當前插件的開啟狀態(tài)。

插件狀態(tài)

Status of SKIP_ASCII_TEXT: ON 表示當前為開啟狀態(tài),會替換掉ascii_text()函數(shù);OFF則為關閉狀態(tài)。

開啟后,導入書籍及文件均不受ascii_text()函數(shù)影響,導出到設備同理。

點擊主工具欄中的Skip ASCII后再點擊 Configure 進行配置。

配置插件

點擊 Skip ascii_text() 前的復選框即可切換狀態(tài),勾選為開啟。

點擊OK保存當前修改,點擊Cancel取消當前修改。

或者也可以在插件列表中雙擊 Skip ASCII Text Plugin 插件進行配置。


其他問題

Q1:插件本身安全么?

A:插件壓縮包其實就是把對應Python腳本文件包裝起來了,不放心的可以解壓出來直接看源代碼(用記事本即可打開)。除了核心代碼部分會對Calibre源代碼有影響之外,其他代碼都是無副作用的。

Q2:插件可能會有其他影響么?

A:目前未發(fā)現(xiàn)有bug,影響與原本修改ascii_text()函數(shù)的方法應該是一致的,但修改ascii_text()函數(shù)這個方法具體有什么負面影響,我沒進一步研究。如果發(fā)現(xiàn)有bug可以在評論區(qū)留言或私信溝通。

Q3:此前已導入的文件如何改成中文名稱?

A:修改函數(shù)只能影響之后的加載及導出,對此前已加載的文件沒有影響。要想把此前的文件也改成中文名稱,只能在插件開啟的情況下導出后重新導入。

步驟如下:選中想要重新加載的文件→保存至硬盤(save to disk)→保存至單一文件夾(save to disk in a single folder)→重新導入文件→使用Find Duplicates插件查重→按修改日期排序,刪除較早修改日期的重復文件即可。

Find duplicates插件見插件論壇頁面:https://www.mobileread.com/forums/showthread.php?t=131017

  • 參考資料

    • https://github.com/kovidgoyal/calibre

    • https://manual.calibre-ebook.com/develop.html

    • https://manual.calibre-ebook.com/creating_plugins.html

    • https://manual.calibre-ebook.com/plugins.html#plugin

    • https://zhuanlan.zhihu.com/p/596352034

Calibre插件 Skip ASCII Text 解決中文名稱保存問題的評論 (共 條)

分享到微博請遵守國家法律
青阳县| 邢台县| 保定市| 六枝特区| 南通市| 天津市| 吐鲁番市| 疏附县| 孟州市| 库尔勒市| 漳平市| 新郑市| 西宁市| 咸宁市| 潮州市| 兴文县| 阜阳市| 南漳县| 石景山区| 延津县| 崇文区| 英吉沙县| 双桥区| 久治县| 即墨市| 延边| 西林县| 丰原市| 梓潼县| 安国市| 彭州市| 潞西市| 荣昌县| 陆川县| 饶阳县| 宝丰县| 宁德市| 桦南县| 根河市| 始兴县| 施甸县|