# touch_fish **Repository Path**: pig-peggy/touch_fish ## Basic Information - **Project Name**: touch_fish - **Description**: 摸鱼看小说阅读器(客户端版) ①新增上次阅读自动定位、自动翻页功能 ②新增写作模块(支持自动保存+手动保存) - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-07-12 - **Last Updated**: 2026-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: Electron, Go语言 ## README ### 演示 主要功能:看小说、写小说、刷豆瓣 *** ### 使用指南 需要将electron-test下的userData文件夹拷贝到本机的F:\目录下,用户所有数据均保存在本地 (若想修改用户数据的保存路径,可修改main.js和config.js下dataPath的值,默认为F:\userData\) 路径说明: * main.js * dataPath 日志根目录 * config.js * dataPath 用户数据的根目录(阅读记录、分组、豆瓣cookie、自动保存等) * bookPath 小说要导出/整理到的根目录 * package.json * out 打包根目录 *** #### 启动项目 config.js的dev用于指定运行开发环境or生成环境的配置文件 如开发,需将main.js的dev设置为true: 点击`package.json`文件`start`运行程序 *** 如打包,需将main.js的dev设置为false: 点击`package.json`文件`packager`打包程序,双击生成的dount.exe可执行文件 *** 如果软件启动/关闭失败,可以通过执行以下脚本关闭软件: ```shell taskkill /f /t /im donut-server.exe taskkill /f /t /im donut.exe ``` ps:若修改了后端代码,不要忘记打包后端程序,并替换donut-client/server/下的可执行文件 ```shell go build -ldflags="-H windowsgui" ``` *** ### 功能说明 #### 全局设置 点击窗口之外的地方会自动最小化窗口,`Ctrl+Shift+Space`唤醒程序 `Ctrl+D`在程序运行界面,可以彻底关闭程序 `Ctrl+F`全局搜索 `Ctrl+P`笔记 `Ctrl+=`放大字号 `Ctrl+-`缩小字号 右击会出现菜单栏,可以提取颜色,修改字体颜色、背景颜色 摁住程序头部可以拖拽移动位置,点击边框可以调整内容大小 *** #### 阅读板块 点击 选择文件-读取 可将本地文件读取到本软件,进入阅读,获取上次阅读进度并生成目录、获取弹幕 点击书架分组,可切换分组;右击分组,可对有二级分类的非默认分组进行筛选。 左击分组下的书名,进入阅读;右击书名,可进行 编辑、移除、删除 操作 `Ctrl+N`上一章 `Ctrl+Shift+N`下一章 `Ctrl+T`回到顶部 `Ctrl+Q`不保存当前阅读进度,返回阅读板块首页 `Ctrl+U`显示阅读进度百分比 `Ctrl+Space`自动翻页(右击菜单-翻页-加速/减速) `Ctrl+M`发布弹幕(回车保存发布) 左击弹幕/书评可编辑 右击弹幕可跳转 *** #### 豆瓣模块 点击 豆,切换至豆瓣模块 点击 Cookie 输入豆瓣cookie,再点击 修改 进行保存 默认展示收藏豆列,左击标题跳转至话题详情,右击标题可删除收藏 点击豆瓣小组,可展开该小组的话题列表,点击标题跳转到详情,点击话题详情的顶部箭头跳转至列表 支持关键字搜索、时间/相关度/热度/最近排序,支持组内剧集筛选,未选择小组时为全局搜索,选择小组后会变为组内搜索 `Ctrl+T`回到顶部(若已展开话题,则会先跳转至话题详情的顶部) `Ctrl+E`回到底部(若在列表页,则会先跳转至列表页底部) `Ctrl+L`收藏帖子 `Ctrl+O`用默认浏览器打开帖子 *** #### 写作模块 点击 切换写作,切换至写作模块,可读取保存文件,系统会按照日期自动备份至本地 若选中文字,右下角会统计字数 `Ctrl+T`回到顶部 `Ctrl+E`回到底部 *** #### 基础快捷键 `Ctrl+A`全选 `Ctrl+C`复制 `Ctrl+V`粘贴 `Ctrl+Shift+I`打开调试 `Ctrl+R`刷新 *** *** ### 更新日志 7/27 右击文本内容会出现菜单栏,点击修改字体颜色 9/6 新增自动保存阅读记录功能,自动识别文件名称匹配上次阅读设置及进度 9/8 增加自动阅读功能 ~~右击菜单`自动滚动`和`自动翻页`,两种模式点击`开始`开启自动阅读,点击`停止`关闭自动阅读,~~ 点击`加速` `减速`可以调节阅读速度 9/14 新增写作模块 如意外退出未保存,可在未选择文件的情况下点击`读取`按钮恢复最新修改 系统默认按日期实时备份写作内容到本地==backups\==目录下,用户可自行查看 PS:系统不会自动区分同一天的文件内容异同,只会保存当天的最后一次修改,多稿同写请手动保存,自动备份仅起保险作用 9/21 新增自动翻页快捷键`Ctrl+Space`,一次开启,再次关闭 淘汰了右击菜单栏的繁琐手动开关,窗口失焦会自动停止阅读 10/25 新增快捷键`Ctrl+T`回到顶部(top) 约定滚动条在最顶端时不会覆盖阅读记录 如误触,可保持滚动至顶部并重新读取文件,即可恢复上次阅读记录 10/30 修复了自动翻页时鼠标滚动重影问题 11/24 新增快捷键`Ctrl+E`回到底部(end) 12/20 新增自定义右击颜色菜单,配置文件保存在==colorConfig.json==,修改后刷新生效 2024/1/9 新增快捷键`Ctrl+P`添加观后感,自动保存在==readingPoint.json== ![img_4.png](attach/img_4.png) (自动提取文件名为内容第一行(可修改)) 1/16 新增目录导向功能,右击菜单可唤出,点击章节名即可跳转。 ~~由于是纯后端的正则匹配,目前仅支持三类:①……第一章/第1章…… ②1…… ③一……~~ 1/17 新增自定义正则目录,配置文件保存在==dirRules.json==,修改后刷新生效 注意!手写正则时一定要转义特殊字符,如\d需写为\\d、-需写为\-等 ![img_3.png](attach/img_3.png) (未匹配的目录规则不会出现在右击菜单中) 1/18 新增快捷键`CommandOrControl+N`上一章 `CommandOrControl+Shift+N`下一章 默认读取第一个非空目录,若更改可点击 目录-正则名称-绑定/章节名 进行切换,系统将根据用户行为自动为该书绑定正则id 1/25 新增书架功能,按最近阅读排序 右击菜单-书架-[分类名]-[书名],即可实现选书跳转 右击菜单-书架-[分类名]--[移动到该分组],即可将书放到对应分类名下 目录分类名配置文件保存在==bookShelf.json==,修改后刷新生效 自定义分类id需大于零,且不可重复 ![img_1.png](attach/img_1.png) (分组顺序可以通过配置文件修改;书籍顺序为时间倒序) 1/26 新增首页书架,点击分组切换,点击书名继续上次阅读 ![img.png](attach/img.png) 淘汰了右击菜单显示全部记录的功能(现在右击菜单的每个分组最多显示最近打开的8条) 1/30 新增按分组导出和整理功能 首页最下方有`导出`和`整理`两个按钮,导出会将有阅读记录的小说按分组导出到dataPath目录下的output文件夹;整理会按分组将小说移动到bookPath文件夹下 3/13 增加添加&修改背景/文字颜色的UI操作 右击菜单的`背景`/`字体颜色`新增`更多`选项,点击出现弹窗,可以输入颜色,修改&保存该颜色到右击菜单 3/14 增加取色器 3/15 优化取色器;所有与用户设置相关的路径均存放到==config.js== ![img.png](attach/20240318161527.gif) 3/18 修改目录的Menu为自定义右边栏,打开目录导航栏时默认转到当前章节 ![img.png](attach/20240318162248.png) 3/20 增加网络书籍 需要手动添加修改阅读记录,默认加载`readUrl`所指的章节,自动检测当前章节,并加载下一章 书源规则存放于==searchRules.json==,各字段含义见[我的博客](https://blog.csdn.net/jinqingjianghai/article/details/136867240),可自行添加常用书源 ps: searchRules.json { "id":4, "name":"书源名称", "url":"网站首页", "body":"小说内容的选择器", "chapter": "小说简介页目录的选择器", "last":"href为上一页的a标签文字内容", "next":"href为下一页的a标签文字内容" } readingHistory.json { "fileName": "小说名称", "fontSize": "13px", "readUrl": "当前阅读到的url(用于加载起始章节)", "readHeight": 0, "readTime": 9999999, "searchId": 4, "groupId": 0, "bookName": "小说名称", "bookPath": "小说简介页的url(用于加载目录)", "online": true, "dirId": -1 } 4/8 增加写作计数器 4/10 增加删除书籍功能(会删除浏览记录和本地文件) ~~首页右击书籍名称,会弹出删除提示,点击`是`或`否`进行删除或取消操作~~ 5/13 增加豆瓣小组模块 ~~不支持登录才能查看的私密小组~~ 点击`豆`后切换到豆瓣小组,~~默认加载`douGroup.json`中第一个小组的最新讨论~~,点击小组名可获取讨论列表 点击讨论标题可进入讨论详细页,查看内容及评论;点击左上角出现的箭头返回讨论页 5/14 【豆瓣模块】重大提醒!!!之前未登录访问可能会造成IP被豆瓣小组封禁,加入登陆的Cookie可解 Cookie可以在豆瓣网页抓到:登录后,摁F12打开开发控制台,刷新,在请求中找到文档中Cookie的值,复制即可。如图: ![img.png](attach/img_5.png) 一个Cookie可以保持四个月左右(第一次过期为2024/5/14~2024/9/24,其中9/23在网页做过一次人机验证;12/28又重填一次),Cookie过期后再用本程序访问豆瓣小组会返回空白,重新抓取Cookie修改即可 Cookie写在userConfig.json中,key为douCookie;也可以在豆瓣模块的UI界面点击`Cookie`进行修改 5/23 豆瓣模块增加笔记功能,和小说模块一样`Ctrl+P`唤出弹窗 5/29 豆瓣模块增加收藏帖子功能,`Ctrl+L`添加(本软件的收藏 ≠ 收藏到豆列),豆瓣模块默认加载收藏列表 6/24 豆瓣模块增加关键字搜索功能,未选择小组时为全局搜索,选择小组后会变为组内搜索 7/16 增加不更新阅读记录返回书架的快捷键`Ctrl+Q` 7/23 新增删除豆列收藏功能,右击收藏列表的豆列标题,小组名会变成`删除`键,点击删除 8/8 新增删除阅读记录功能,右击书架文名,出现按钮`删除`和`移除`,点击删除则删除阅读记录和本地文件,点击移除则只删除阅读记录 9/25 更新了豆瓣小组请求头,开始测试Cookie的保持时间(10/21失效) 9/30 阅读模块增加进度快捷键,`Ctrl+U`显示阅读进度,3s后自动隐藏 10/10 修复全局搜索无法收藏帖子的bug 10/22 修复目录二次打开被覆盖的bug;修复删除豆列后跳转不一致的问题;优化删除小说手感 10/23 增加重命名文件的功能,在书架右击文名,出现三个按钮:`删除`、`移除`、`编辑`,点击编辑,会出现弹窗,修改文名后点击保存,进行重命名(会对本地文件/阅读记录/阅读笔记同步重命名) 11/13 新增多层嵌套书架(12/9完善多层级导出/整理) 11/20 新增写作笔记,`Ctrl+P`唤出 2025/2/14 新增书架分组tag 优化同名文件冲突的问题:如果有同名文件,将用最后一次打开的路径覆盖阅读记录 2/20 增加兜底目录 3/7 增加分组筛选 在选中状态下,右击书架会显示/隐藏该分组下的孩子分组,点击孩子分组即可筛选(多选),刷新/左击一级分组名即可清除筛选 3/12 增加显示弹幕 3/13 增加发表弹幕,`Ctrl+M`唤出输入框,回车即发布并保存,效果如图: ![20250313160702.gif](attach%2F20250313160702.gif) 3/19 增加修改弹幕功能,左击弹幕弹出修改框,回车保存(若修改后的内容为空,则会删除该弹幕) 3/20 增加弹幕列表 点击弹幕弹窗右侧'▼'展开弹幕列表,再点击'▲'收起 对每条弹幕左击进入编辑状态,回车保存,失焦复原;右击跳转到弹幕位置 5/7 增加弹幕列表书评 5/26 导出/整理小说时,生成json格式的目录(包含书评和弹幕) 7/1 优化本地文件读取,正则支持 Perl 风格的零宽断言 9/10 优化弹幕显示:不与背景文字重叠、不与同一批弹幕重叠 10/9 优化书架显示:隐藏书籍的最小分组标签,在右击一级分组名时显现,再次右击隐藏(保留筛选状态) 12/5 修复同id的多条目录规则都匹配到同一行造成的目录重复 12/9 豆瓣新增话题相关帖子 12/12 豆瓣帖子新增用默认浏览器打开快捷键`Ctrl+O` 12/26 优化豆瓣模块的快捷键`Ctrl+E`回到底部(若在列表页,则会先跳转至列表页底部);增加搜索页码指定 2026/1/31 豆瓣模块增加最近&热门排序和剧集筛选 2/12 豆瓣帖子内容中的话题类链接点击跳转 2/28 优化豆瓣小组的剧集筛选 *** *** ### 前后端搭建指南 [前端项目搭建教学](https://blog.csdn.net/jinqingjianghai/article/details/131663537) [后端项目搭建教学](https://blog.csdn.net/jinqingjianghai/article/details/131245981) *** ### 实现功能 #### 看小说 1. [ ] 阅读本地小说 2. [ ] 阅读网络小说(自动加载下一章,实现无感翻页) 3. [ ] 收藏整理多层级书架及本地文件 4. [ ] 自动保存/读取上次阅读进度 5. [ ] 自动生成目录导航(支持自定义正则) 6. [ ] 自动翻页(速度可调) 7. [ ] 全局搜索 8. [ ] 笔记 9. [ ] 取色器/修改背景/字体颜色/大小 10. [ ] 弹幕 #### 写小说 1. [ ] 自动备份 2. [ ] 字数统计 3. [ ] 全局笔记 #### 刷豆瓣小组 1. [ ] 搜索帖子(支持全组和组内搜索,相关度/时间/热度/最近排序、剧集筛选) 2. [ ] 查看帖子详情(并展示相关话题,支持相关话题及回帖话题跳转) 3. [ ] 收藏帖子(为了防止post操作导致账号被封,仅保存链接到本软件的小组收藏列表,并非豆列) 4. [ ] 全局笔记 5. [ ] 浏览器打开帖子