[程式] 管理并浏览本子的程式

楼主: wei115 (ㄎㄎ)   2021-01-02 06:38:28
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](
)
本子画面
在本子画面有中文翻译的tag(移到上面会显示原文),并有中文解释
![2](
)
如果按压tag,便会显示中文解释和搜寻
中文翻译及解释来自[这里](https://github.com/EhTagTranslation/EhSyringe),只做
简单的简转繁
按下搜寻便会搜寻你按下的tag
![3](
)
可以借由搜寻来限制本子范围,例如我这里使用“shizuka rin”作为关键字(岛喜凛?

这样浏览切换上下本时也会都会是有“shizuka rin”的tags的本本
![4](
)
例如本来在看这本
![5](
)
按下“切换下一本”时,便会显示下一本,不须回到主画面
![6](
)
## 下载&安装
### 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](
)
本本分为两种,资料夹及zip档案
资料夹本本格式
```
+ 资料夹(本子名)
+ 图片1
+ 图片2
+ .........
```
zip格式则是只要zip里有图片(忽略资料夹),就算是本本
```
+ zip(本子名)
+ 图片1
+ 图片2
+ .........
```
匹配速度有点慢,每一个本本要花约一秒来完成,请耐心等候
### 主画面
主画面为
![1](
)
其中有匹配到的本本,在图片的下方会显示对应的分类、日期(ex上传日期)、图片页数
(ex图片页数),未匹配到的本本则会全部显示null
而按下图片则会进入本子画面
搜寻支援`AND`、`OR`和`-`(排除)语法而使用`.null`关键字可以搜寻到没有匹配到的
本本,也支援ex的标签语法(ex:`character:"makaino ririmu$"`)
上方分类栏则与ex一致,按下为排除对应分类,全部按下则与全部不按相同
键盘功能:
- `esc`: 关闭程式
- `enter`: 全萤幕
- `<-`: 上一页
- `->`: 下一页
### 本子画面
本子画面为
![2](
)
如果未匹配到则会是
![阿喵喵很可爱对八?](
)
标题第一栏是本机本子名,第二栏是ex上的原文名称,第三栏则是ex上的罗马字名称
中间是tag,按下则会显示蓝色,并在侧边显示tag的解释(如果有的话),按下下方的`
搜寻`,则会跳回主画面并搜寻所有选择(蓝色)的tag
需要注意的是,解释只会显示最后按下的tag,如果有想要看解释的蓝色tag,那要先把取
消蓝色,再按一次就能看解释了(按两次就对了)
键盘功能:
- `esc`: 关闭程式
- `enter`: 全萤幕
- `backspace`: 退回主画面
- `<-`: 上一页
- `->`: 下一页
- `ctrl + <-`、`[`: 上一本
- `ctrl + ->`、`]`: 下一本
- `0`: 排序(可以在随机排序与照本子名排序中切换)
### 浏览画面
浏览画面为
![哭哭阿喵喵](
)
使用滚轮可以切换上下页,当在第一页时,左上角会短暂显示“第一页”
没有放大、缩小,因为我不会写
键盘功能:
- `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
“万神殿授权条款”
<[email protected]>写了这个程式,任何人都可以用此程式做任何事。
如果哪天看到我发[请神]文,并且你认为这个程式有价值,可以帮我神神看。
不过要是我们在路上相遇了,而且你认出我来,请温柔的装作不认识我。 wei115
楼主: wei115 (ㄎㄎ)   2021-01-02 06:40:00
很累,去睡了
作者: lanjack (传说中的草食熊)   2021-01-02 07:08:00
先推再研究
作者: emptie ([ ])   2021-01-02 09:38:00
授权条款笑了
作者: liu2007 (è–¯)   2021-01-02 09:53:00
感动QQ 没想到绅士方舟死后,还有人记得....." target="_blank" rel="nofollow">
这边有几个对于tag的metadata我想到可能会遇到的问题阿没事,可能你爬到的资料有本子title以外的资讯,所以不是问题,当我没说@@
作者: danielqwop (我的人生就是个冏)   2021-01-02 11:48:00
全身趴地的感谢
作者: emulators (Ωmegamind)   2021-01-02 11:50:00
推,我最近也在开发类似的东西,网页版的,自用
作者: justatree (justatree)   2021-01-02 12:48:00
作者: lunawalker (lunawalker)   2021-01-02 12:49:00
人类因变态而伟大!
作者: musclegood (肌肉射丁)   2021-01-02 14:55:00
先推用心写程式,编译码那边有点不太懂先跳过编译码。总之还是开起来了,接口很棒,想请教如果想重新设定搜索资料夹,像刚开始用程式那样,怎么办
作者: Gold740716 (项为之强)   2021-01-02 15:42:00
请问要怎么确定我们在路上相遇了呢?[email protected] 会通吗?我记得是寄 [email protected]
作者: liu2007 (è–¯)   2021-01-02 16:59:00
刚刚玩了一下,目前这个程式似乎只搜寻目录的第一层,如果像我先以作者为资料夹名称作分类,最底层才以该本在熊猫上的全名作为资料夹名称的就被忽略了" target="_blank" rel="nofollow">
这是我该目录下分类长的样子但只有八个以熊猫title格式命名的资料夹有被读到并上tag
作者: ejon   2021-01-02 17:13:00
推推
作者: steven96414 (居居居居居)   2021-01-02 17:23:00
同是彩虹推给你推(
作者: liu2007 (è–¯)   2021-01-02 17:42:00
请问你是用什么语言写的?用什么打包成win程式的@@?
作者: knight714 (漆黑的追击者)   2021-01-02 20:37:00
我新加了本本所以重新读取资料夹 然后跑超久都进不去是正常的吗 画面一直停在请稍待
楼主: wei115 (ㄎㄎ)   2021-01-02 20:45:00
我实际测试,7000本就算没有增加和减少 也要跑3分钟以上可能本本真的太多了?
作者: knight714 (漆黑的追击者)   2021-01-02 20:48:00
我才3000 跑了1小时都还没好XD我直接重装看看好了 一开始也没跑这么久
楼主: wei115 (ㄎㄎ)   2021-01-02 20:52:00
我再测看看 因为跑很久,所以只测过几十本的XD
作者: ice76824 (不成熟的绅士)   2021-01-02 20:57:00
2000多本跑得还蛮快的...
作者: knight714 (漆黑的追击者)   2021-01-02 21:47:00
我还有一个问题是用滚轮翻页不知道为啥页面会乱跳
作者: iGao (Olala)   2021-01-02 21:51:00
先推再说
作者: ice76824 (不成熟的绅士)   2021-01-02 21:52:00
滚轮翻页好像是上下颠倒的原来颠倒不是作者习惯喔
作者: knight714 (漆黑的追击者)   2021-01-02 22:17:00
感谢原PO 效率真高!
作者: Roentgenium (Rg)   2021-01-03 02:43:00
作者: dogluckyno1   2021-01-03 11:06:00
先推再下
作者: HeiSiaN   2021-01-03 22:02:00
好猛 推推
作者: a2364983 (小可怜)   2021-01-03 23:13:00
好像很强
作者: aiglas0209 (aiglas)   2021-01-04 03:07:00
酷!新年新希望!射射平安
作者: whhw (人有羞耻马无所谓)   2021-01-04 12:57:00
作者: nyaruko (andyliu)   2021-01-04 19:16:00
匹配过一次后要怎么重新匹配?
作者: ice76824 (不成熟的绅士)   2021-01-05 00:41:00
把setting资料夹的local清空
作者: wk415937 (wk4)   2021-01-08 15:43:00

Links booklink

Contact Us: admin [ a t ] ucptt.com