[程式] 管理並瀏覽本子的程式

看板AC_In作者 (24歲,是學生)時間3年前 (2021/01/02 06:39), 3年前編輯推噓31(31015)
留言46則, 22人參與, 3年前最新討論串1/2 (看更多)
markdown 好讀 https://tinyurl.com/y96wlfkt 這是一個本本管理軟體,其想法類似 [Hentai Ark](https://www.ptt.cc/bbs/AC_In/M.1569436760.A.261.html) 會利用從EX上獲取的metadata來**自動**將本機上的本本做整理 並提供類似exhentai界面的方式來使用 與Hentai Ark不同的地方在於,我的程式更加注重瀏覽,可以在看本時利用快捷鍵快速切 換上下本 瀏覽方式類似[HoneyView](https://tw.bandisoft.com/honeyview/),並增加了隨機排序 的方式,防止在本本資料庫中都是看到那幾本 ## 目錄 - [畫面介紹](#畫面介紹]) - [下載&安裝](#下載&安裝) * [win執行檔](#win執行檔) * [原始碼編譯安裝](#原始碼編譯安裝) - [使用方法](#使用方法) * [匹配畫面](#匹配畫面) * [主畫面](#主畫面) * [本子畫面](#本子畫面) * [瀏覽畫面](#瀏覽畫面) - [特性與設定](#特性與設定) * [快取](#快取) * [本子隨機、順序切換](#本子隨機、順序切換) * [本機資料庫與路徑](#本機資料庫與路徑) * [壓縮檔](#壓縮檔) * [JSON設定](#JSON設定) - [未來計畫(包含我想做但還沒做,和我想做但沒能力做的)](#未來計畫(包含我想 做但還沒做,和我想做但沒能力做的)) - [免責聲明](#免責聲明) - [Thanks](#Thanks) - [許可證](#許可證) ## 畫面介紹 主畫面 有在matadata內且被匹配到的本本會顯示相應的分類,但未在matadata內或沒被匹配到的 本本會顯示null ![1](https://imgur.com/i14fykI.png)
本子畫面 在本子畫面有中文翻譯的tag(移到上面會顯示原文),並有中文解釋 ![2](https://imgur.com/0VNB9pu.png)
如果按壓tag,便會顯示中文解釋和搜尋 中文翻譯及解釋來自[這裡](https://github.com/EhTagTranslation/EhSyringe),只做 簡單的簡轉繁 按下搜尋便會搜尋你按下的tag ![3](https://imgur.com/exBZDst.png)
可以藉由搜尋來限制本子範圍,例如我這裡使用「shizuka rin」作為關鍵字(島喜凜? ) 這樣瀏覽切換上下本時也會都會是有「shizuka rin」的tags的本本 ![4](https://imgur.com/FHGApvl.png)
例如本來在看這本 ![5](https://imgur.com/NX7og2d.png)
按下「切換下一本」時,便會顯示下一本,不須回到主畫面 ![6](https://imgur.com/IJDYfGp.png)
## 下載&安裝 ### win執行檔 從[這裡](https://mega.nz/folder/CCwm3DYS#LshpqDeULnf12kqzIJdP8g)下載,其中 `ex_view.7z`是主程式,`setting.7z`是設定和資料庫 首先先將兩個壓縮檔分別解壓縮,會得到`ex_view`和`setting`兩個資料夾,再把 `setting`資料夾放到`ex_view`資料夾中 最後按下`ex_view.exe`就能開始程式了 ### 原始碼編譯安裝 首先先安裝[node.js](https://nodejs.org/) 從[這裡](https://mega.nz/folder/CCwm3DYS#LshpqDeULnf12kqzIJdP8g)下載,解壓縮 `source.7z`後,進入目錄,輸入 ```bash npm install ``` 等待依賴模組安裝完成,之後再輸入 ```bash npm run dist ``` 產生可執行檔案 經測試可以在ubuntu上正常運作 ## 使用方法 程式分為: - 匹配畫面 - 主畫面 - 本子畫面 - 瀏覽畫面 - 設定 ### 匹配畫面 當第一次打開程式時,會進入匹配畫面,選擇存放本本的資料夾,它會自動搜尋底下所有 的本本 ![a](https://imgur.com/PN0pQBF.png)
本本分為兩種,資料夾及zip檔案 資料夾本本格式 ``` + 資料夾(本子名) + 圖片1 + 圖片2 + ......... ``` zip格式則是只要zip裡有圖片(忽略資料夾),就算是本本 ``` + zip(本子名) + 圖片1 + 圖片2 + ......... ``` 匹配速度有點慢,每一個本本要花約一秒來完成,請耐心等候 ### 主畫面 主畫面為 ![1](https://imgur.com/i14fykI.png)
其中有匹配到的本本,在圖片的下方會顯示對應的分類、日期(ex上傳日期)、圖片頁數 (ex圖片頁數),未匹配到的本本則會全部顯示null 而按下圖片則會進入本子畫面 搜尋支援`AND`、`OR`和`-`(排除)語法而使用`.null`關鍵字可以搜尋到沒有匹配到的 本本,也支援ex的標籤語法(ex:`character:"makaino ririmu$"`) 上方分類欄則與ex一致,按下為排除對應分類,全部按下則與全部不按相同 鍵盤功能: - `esc`: 關閉程式 - `enter`: 全螢幕 - `<-`: 上一頁 - `->`: 下一頁 ### 本子畫面 本子畫面為 ![2](https://imgur.com/0VNB9pu.png)
如果未匹配到則會是 ![阿喵喵很可愛對八?](https://imgur.com/O8SHpgb.png)
標題第一欄是本機本子名,第二欄是ex上的原文名稱,第三欄則是ex上的羅馬字名稱 中間是tag,按下則會顯示藍色,並在側邊顯示tag的解釋(如果有的話),按下下方的` 搜尋`,則會跳回主畫面並搜尋所有選擇(藍色)的tag 需要注意的是,解釋只會顯示最後按下的tag,如果有想要看解釋的藍色tag,那要先把取 消藍色,再按一次就能看解釋了(按兩次就對了) 鍵盤功能: - `esc`: 關閉程式 - `enter`: 全螢幕 - `backspace`: 退回主畫面 - `<-`: 上一頁 - `->`: 下一頁 - `ctrl + <-`、`[`: 上一本 - `ctrl + ->`、`]`: 下一本 - `0`: 排序(可以在隨機排序與照本子名排序中切換) ### 瀏覽畫面 瀏覽畫面為 ![哭哭阿喵喵](https://imgur.com/5GUBETs.png)
使用滾輪可以切換上下頁,當在第一頁時,左上角會短暫顯示「第一頁」 沒有放大、縮小,因為我不會寫 鍵盤功能: - `esc`: 關閉程式 - `enter`: 全螢幕 - `backspace`: 退回本子畫面 - `<-`、`pageup`: 上一頁 - `->`、`pagedown`: 下一頁 - `ctrl + <-`、`[`: 上一本 - `ctrl + ->`、`]`: 下一本 - `0`: 排序(可以在隨機排序與照本子名排序中切換) ## 特性與設定 ### 快取 由於使用技術的限制,圖片的載入速度稍慢,所以設計了快取機制,同時載入多張圖片, 以降低快速切換圖片造成的延遲(但解析度太大的圖片還是愛莫能助) 預設是50張圖片,也就是在看一張圖片的時候,會同時載入前面25張圖與後面25張圖 可以根據需求在設定中調整 ### 本子隨機、順序切換 類似音樂的隨機播放功能,在看本子的時候,防止固定順序造成審美疲勞 在「本子畫面」或「瀏覽畫面」中按下「數字鍵0」便會切換成隨機或是按照名稱排序 如果是在「瀏覽畫面」中切換成隨機,左上角會短暫出現「Random」提示 ### 本機資料庫與路徑 ``` setting/ ├── chinese.json ├── ex.db ├── local │ ├── dir.json │ └── local.db └── setting.json ``` - `chinese.json`: ex中文翻譯 - `ex.db`: ex metadata - `local`: 存放使用者資料 - `dir.json`: 存放需要update的路徑 - `local.db`: 存放匹配過得本子資料 - `setting.json`: 存放使用者設定 ### 壓縮檔 目前支援zip格式的本本,但效能一言難盡,一部份是我程式能力太差,另一部份是JSzip 本身效能的問題 如果有推薦的壓縮檔讀取套件可以和我說,雖然因為我不用壓縮檔來存本本,所以可能不 會更新 ### 本機資料庫更新 由於更新本機資料庫會讓開啟速度大幅變慢(實測7000本約3分鐘),所以預設是關閉本 機資料庫更新 如果電腦上的本本有增加或減少,請去設定裡面把`update`設為`true` ### JSON設定 這個軟體的所有設定都使用JSON設定 JSON是一種輕量級的資料交換語言,該語言以**易於讓人閱讀**的文字為基礎 其中`"//"`開頭的文字是註解,用來解釋對應的功能,要修改設定可以參考註解去做修改 ```json { "//": "這是用來設定的JSON檔案", "//": "然後因為技術力不足加上JSON的格式蠻嚴格的,容易寫錯,如果修改設 定後 程式當掉,可以從壓縮檔中恢復setting.json", "//": "鍵盤設定", "//": "鍵盤定義可以從這個網站上得知https://keycode.info/", "keyboard": { "//": "上一頁,預設值是方向鍵←,與pageup(除了veiw頁面外無法使用)", "prev": [37, 33], "//": "下一頁,預設值是方向鍵→,與pagedown(除了veiw頁面外無法使用) ", "next": [39, 34], "//": "全螢幕, 預設值是Enter", "full_screen": [13], "//": "回到book,預設值是Backspace", "back": [8], "//": "跳到第一頁,預設值是home(除了veiw頁面外無法使用)", "home": [36], "//": "跳到最尾頁,預設值是end(除了veiw頁面外無法使用)", "end": [35], "//": "跳到上一本,預設值是ctrl + 方向鍵←和[", "prev_book": [["ctrlKey", 37], 219], "//": "跳到下一本,預設值是ctrl + 方向鍵→和]", "next_book": [["ctrlKey", 39], 221], "//": "排序切換開關,可以切換順序排序和隨機排序", "sort": [96], "//": "關閉程式", "exit": [27] }, "//": "是 = true、否 = false", "//": "是否每次開啟時都更新資料庫(建議不要,速度很慢,當目標資料夾有新增 或刪除本本的時候再開)", "update": false, "//": "是否開啟「開發人員工具」", "debug": false, "//": "頁面放大倍率,預設是110%(測試中)", "zoom": 1.10, "//": "首頁最多顯示圖片數量", "home_max" : 50, "//": "本子頁最多顯示圖片數量", "page_max" : 20, "//": "快取圖片數量", "cache" : 50 } ``` ## 未來計畫(包含我想做但還沒做,和我想做但沒能力做的) - 增加tag的「我的最愛」 - 在主畫面上顯示縮圖,而不是原圖,增加效率 - 右鍵功能需要有複製、貼上、開啟檔案位置 - zip本本效能最佳化 - rar支援 - 由ex上抓到的爬蟲資料不完整,需要更新,根據新資料的不同,部份程式需要改寫 - 在網路上取得的ex matedata部份有誤,需要重新製作,tags格式部份不完整 ## 免責聲明 我的程式能力並不出色,此程式只在我的電腦測試過,並不可靠,從無法開啟到世界末日 都有可能 如有疑慮請不要使用,本人對此程式造成的結果不負任何責任。 ## Thanks 這個程式使用`nodejs`+`eletron`開發、`electron-builder`完成分發 照抄`exhentai.org`的HTML與CSS 中文翻譯是使用[EhTagTranslation](https://github.com/EhTagTranslation/Database) 的成果做繁簡轉換而成 使用了以下套件 - [dialogs](https://github.com/jameskyburz/dialogs) - [fast-levenshtein](https://github.com/hiddentao/fast-levenshtein) - [jszip-sync](https://github.com/ericvergnaud/jszip) - [sqlite3](https://github.com/mapbox/node-sqlite3) 感謝[Sachia Lanlus](https://forums.e-hentai.org/index.php?showuser=2351915) 提供了[metadata](https://mega.nz/#F!oh1U0SIA!WBUcf3PaOvrfIF238fnbTg) ## License 「萬神殿授權條款」 <wei115@ptt.cc>寫了這個程式,任何人都可以用此程式做任何事。 如果哪天看到我發[請神]文,並且你認為這個程式有價值,可以幫我神神看。 不過要是我們在路上相遇了,而且你認出我來,請溫柔的裝作不認識我。 wei115 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.252.220.251 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/AC_In/M.1609540752.A.385.html

01/02 06:40, 3年前 , 1F
很累,去睡了
01/02 06:40, 1F

01/02 07:08, 3年前 , 2F
先推再研究
01/02 07:08, 2F

01/02 09:38, 3年前 , 3F
授權條款笑了
01/02 09:38, 3F
最用心寫的地方

01/02 09:53, 3年前 , 4F
感動QQ 沒想到紳士方舟死後,還有人記得.....
01/02 09:53, 4F

01/02 09:55, 3年前 , 5F

01/02 10:01, 3年前 , 6F
這邊有幾個對於tag的metadata我想到可能會遇到的問題
01/02 10:01, 6F

01/02 10:03, 3年前 , 7F
阿沒事,可能你爬到的資料有本子title以外的資訊,所以
01/02 10:03, 7F

01/02 10:04, 3年前 , 8F
不是問題,當我沒說@@
01/02 10:04, 8F

01/02 11:48, 3年前 , 9F
全身趴地的感謝
01/02 11:48, 9F

01/02 11:50, 3年前 , 10F
推,我最近也在開發類似的東西,網頁版的,自用
01/02 11:50, 10F

01/02 12:48, 3年前 , 11F
01/02 12:48, 11F

01/02 12:49, 3年前 , 12F
人類因變態而偉大!
01/02 12:49, 12F

01/02 14:55, 3年前 , 13F
先推用心寫程式,編譯碼那邊有點不太懂
01/02 14:55, 13F

01/02 15:02, 3年前 , 14F
先跳過編譯碼。總之還是開起來了,介面很棒,想請教如
01/02 15:02, 14F

01/02 15:03, 3年前 , 15F
果想重新設定搜索資料夾,像剛開始用程式那樣,怎麼辦
01/02 15:03, 15F
編譯那邊是不用windows的使用者,可以自己編譯安裝,沒有需求的使用我打包好的win執行 檔就可以了 然後如果要重新搜索資料夾,把setting資料夾中的local資料夾清空就可以了(不要把local 資料夾刪掉)

01/02 15:42, 3年前 , 16F
請問要怎麼確定我們在路上相遇了呢?
01/02 15:42, 16F

01/02 15:43, 3年前 , 17F
wei115@ptt.cc 會通嗎?我記得是寄 wei115.bbs@ptt.cc
01/02 15:43, 17F
不知道,我只是隨便寫寫XD

01/02 16:59, 3年前 , 18F
剛剛玩了一下,目前這個程式似乎只搜尋目錄的第一層,如
01/02 16:59, 18F

01/02 16:59, 3年前 , 19F
果像我先以作者為資料夾名稱作分類,最底層才以該本在熊
01/02 16:59, 19F

01/02 17:00, 3年前 , 20F
貓上的全名作為資料夾名稱的就被忽略了
01/02 17:00, 20F

01/02 17:01, 3年前 , 21F
這是我該目錄下分類長的樣子
01/02 17:01, 21F

01/02 17:02, 3年前 , 22F
但只有八個以熊貓title格式命名的資料夾有被讀到並上tag
01/02 17:02, 22F
對,只有一層(因為我的本本都沒在分類的),如果這樣只能一個個加進來

01/02 17:13, 3年前 , 23F
推推
01/02 17:13, 23F
※ 編輯: wei115 (220.134.21.157 臺灣), 01/02/2021 17:22:54

01/02 17:23, 3年前 , 24F
同是彩虹推給你推(
01/02 17:23, 24F

01/02 17:42, 3年前 , 25F
請問你是用什麼語言寫的?用什麼打包成win程式的@@?
01/02 17:42, 25F
我有寫在readme裡面,用js寫的 使用`nodejs`+`electron`開發、`electron-builder`完成 分發 ※ 編輯: wei115 (220.134.21.157 臺灣), 01/02/2021 17:49:04

01/02 20:37, 3年前 , 26F
我新加了本本所以重新讀取資料夾 然後跑超久都進不去
01/02 20:37, 26F

01/02 20:37, 3年前 , 27F
是正常的嗎 畫面一直停在請稍待
01/02 20:37, 27F

01/02 20:45, 3年前 , 28F
我實際測試,7000本就算沒有增加和減少 也要跑3分鐘以上
01/02 20:45, 28F

01/02 20:45, 3年前 , 29F
可能本本真的太多了?
01/02 20:45, 29F

01/02 20:48, 3年前 , 30F
我才3000 跑了1小時都還沒好XD
01/02 20:48, 30F

01/02 20:49, 3年前 , 31F
我直接重裝看看好了 一開始也沒跑這麼久
01/02 20:49, 31F

01/02 20:52, 3年前 , 32F
我再測看看 因為跑很久,所以只測過幾十本的XD
01/02 20:52, 32F
確定是BUG,我解決之後再上傳 邊看るる直播邊解BUG

01/02 20:57, 3年前 , 33F
2000多本跑得還蠻快的...
01/02 20:57, 33F
※ 編輯: wei115 (111.252.220.251 臺灣), 01/02/2021 21:22:00

01/02 21:47, 3年前 , 34F
我還有一個問題是用滾輪翻頁不知道為啥頁面會亂跳
01/02 21:47, 34F

01/02 21:51, 3年前 , 35F
先推再說
01/02 21:51, 35F

01/02 21:52, 3年前 , 36F
滾輪翻頁好像是上下顛倒的
01/02 21:52, 36F
幹= = 真的欸,因為都用鍵盤,所以都沒發現 感謝回報,等等一起修

01/02 22:04, 3年前 , 37F
原來顛倒不是作者習慣喔
01/02 22:04, 37F
我習慣用鍵盤看 滾輪是朋友提醒我要加的 這兩個bug修好了(大概),重新安裝就可以了 https://mega.nz/folder/CCwm3DYS#LshpqDeULnf12kqzIJdP8g ※ 編輯: wei115 (111.252.220.251 臺灣), 01/02/2021 22:09:36

01/02 22:17, 3年前 , 38F
感謝原PO 效率真高!
01/02 22:17, 38F

01/03 02:43, 3年前 , 39F
01/03 02:43, 39F

01/03 11:06, 3年前 , 40F
先推再下
01/03 11:06, 40F

01/03 22:02, 3年前 , 41F
好猛 推推
01/03 22:02, 41F

01/03 23:13, 3年前 , 42F
好像很強
01/03 23:13, 42F

01/04 03:07, 3年前 , 43F
酷!新年新希望!射射平安
01/04 03:07, 43F

01/04 12:57, 3年前 , 44F
01/04 12:57, 44F

01/04 19:16, 3年前 , 45F
匹配過一次後要怎麼重新匹配?
01/04 19:16, 45F

01/05 00:41, 3年前 , 46F
把setting資料夾的local清空
01/05 00:41, 46F
文章代碼(AID): #1VxwIGE5 (AC_In)
文章代碼(AID): #1VxwIGE5 (AC_In)