docs: update README.

This commit is contained in:
naiy committed 2026-08-03 16:31:47 +08:00
1 parent 5348fc0c5a
commit d77d4edfd6
1 file changed
+73 -30
+73 -30
View File
@@ -3,25 +3,40 @@
一个用于 [番茄小说网页版](https://fanqienovel.com) 的用户脚本(Userscript):去广告、去推广、解锁章节、优化阅读体验。
> **使用该项目会有账号被官方封禁的风险。** 如您继续使用,则证明您已知晓未来可能发生的风险并对其负责。
> **项目处于开发初期。** 功能仅覆盖基础阅读,接口和目录结构都可能随时调整。欢迎试用和反馈,但请做好随时会有破坏性变更的准备。
> **这是我的第一个 TypeScript 项目。** 属于边学编写,代码质量可能不高,有问题欢迎指正。
> **项目处于快速开发期。** 核心功能已基本稳定,但仍可能随时调整接口和目录结构。欢迎试用和反馈。
> **这是我的第一个 TypeScript 项目。** 属于边学边写,代码质量可能不高,有问题欢迎指正。
## 脚本发布地址:
[GitHub](https://github.com/naiyQAQ/fanqie-assistant) | 如果觉得好用,去点点 star 吧!
[GreasyFork](https://greasyfork.org/zh-CN/scripts/589115-%E7%95%AA%E8%8C%84%E5%B0%8F%E8%AF%B4%E5%8A%A9%E6%89%8B)
## 已实现
## 功能特性
第一阶段「基础阅读」已经可用:
### 阅读体验
- **正文替换**:阅读页拉取完整正文并渲染,替换网页原有内容容器,同时允许复制文本。
- **解锁章节**:网页端被屏蔽的章节可以正常阅读。
- **漫画阅读**:图片章节支持懒加载,加密图片滚动到视口时自动处理。
- **字体反混淆**:还原网页自绘字体渲染的混淆文本,动态插入的内容同样生效。
- **屏蔽埋点上报**:丢弃发往字节、百度统计域名的埋点请求。
- **章节信息补全**:补上卷名、精确到秒的更新时间,并修正页面标题。
- **用户信息展示**:已登录时在头像菜单里显示已读本数和累计阅读时长。
- **书架优化**: 允许展示因各种原因无法在网页阅读的书籍显示在书架中,并支持跳转。补充展示更多数据(如上次更新等等)。
- **正文增强**:拉取完整正文并重新渲染,替换网页原有内容容器,允许复制文本
- **解锁章节**:网页端被屏蔽的章节可以正常阅读
- **漫画阅读**:图片章节支持懒加载,加密图片滚动到视口时自动解密
- **章内注释**:自动处理 EPUB footnote,悬浮查看或点击定位,末尾保留注释列表
- **字体反混淆**:还原网页自绘字体渲染的混淆文本,动态插入的内容同样生效
- **书籍样式**:支持随正文下发的 CSS,同时限制作用域避免污染全站
- **章节信息补全**:补上卷名、精确到秒的更新时间,并修正页面标题
### 书架优化
- **完整书架**:展示所有书籍(包括因版权等原因网页端不可见的),支持跳转阅读
- **详细信息**:显示更新时间、未读章节数、最后阅读时间等
- **分组展示**:保留原站书架分组,支持切换查看
### 用户相关
- **用户信息展示**:已登录时在头像菜单里显示已读本数和累计阅读时长
- **设置面板**:提供可视化设置界面,支持自定义阅读器字体、CSS、API 偏好等
### 隐私与安全
- **屏蔽埋点上报**:拦截发往字节、百度统计域名的埋点请求
- **设备管理**:首次使用自动注册匿名设备并激活会员,支持手动填写设备信息
## 开发计划
@@ -29,15 +44,13 @@
1. 短剧网页端播放
2. 更完善的用户详情界面(自己的和他人的)
3. 段评、章评、书评
3. 段评、章评、书评功能
4. 阅读数据上报(与安卓端同步阅读进度与时长)
5. APP 端带推荐的排行榜
6. 分类筛选
7. 解锁书架中因下架或版权原因无法在网页阅读、但 APP 端仍可阅读的书籍
8. 更详细的书籍信息(评分、在读人数等)
9. 推书页面
10. 听书
11. 自定义 API 接口以实现更多高级功能
6. 分类筛选与搜索优化
7. 更详细的书籍信息(评分、在读人数等)
8. 推书页面
9. 听书功能
如果您有更多好的想法,欢迎提 PR 或 Issue。
@@ -76,19 +89,49 @@ npm run build
```
src/
├── main.ts 入口,安装导航钩子并按顺序初始化各模块
├── config.ts 设备配置与全局常量
├── types.ts 书籍、卷、章节等数据模型
├── cssInject.ts 样式注入
├── fontDecrypt.ts 自绘字体文本还原
├── localStorage.ts 存储读写封装
├── api/ 接口层(用户、书籍、目录、正文)
├── hooks/ 页面钩子(阅读页、用户菜单、请求拦截)
├── utils/ 请求封装与加解密工具
└── assets/ 样式与图标
├── main.ts 入口,安装导航钩子并按顺序初始化各模块
├── config.ts 设备配置与全局常量
├── types.ts 书籍、卷、章节等数据模型
├── settings.ts 设置项定义与持久化
├── settingsPanel.ts 设置面板的挂载/卸载
├── userStyle.ts 用户自定义样式(字体、CSS)
├── cssInject.ts 基础样式注入
├── fontDecrypt.ts 自绘字体文本还原
├── localStorage.ts 存储读写封装
├── api/ 接口相关内容
├── crypto/ 加密算法相关内容
├── hooks/ 页面钩子
│ ├── index.ts 钩子调度器
│ ├── readerHook.ts 阅读页正文替换
│ ├── bookshelfHook.ts 书架页面接管
│ ├── userHook.ts 用户菜单增强
│ └── fetchHook.ts 请求拦截(屏蔽埋点)
├── utils/ 通用工具
│ ├── index.ts DOM 等待、数组分块等
│ ├── request.ts GM_xmlhttpRequest 封装
│ ├── time.ts 时间格式化
│ ├── compress.ts Gzip 压缩/解压
│ └── footnote.ts 章内注释处理
├── views/ Vue 组件
│ ├── SettingsView.vue 设置面板
│ ├── BookshelfView.vue 书架主视图
│ ├── BookCard.vue 书籍卡片
│ ├── BookGroupCard.vue 分组卡片
│ ├── BookHoverCard.vue 悬浮卡片
│ ├── ContextMenu.vue 右键菜单
│ └── useBookshelf.ts 书架数据逻辑
└── assets/ 样式与图标
├── script.css 阅读器样式
├── bookshelf.css 书架样式
├── settings.css 设置面板样式
└── *.svg 图标资源
```
新增页面功能时,在 `hooks/` 下建一个模块,导出 `HookConfig[]` 并在 `hooks/index.ts` 里注册。每个钩子声明自己关心的事件和一个 `filter`,命中才执行,互不影响。
### 扩展开发
新增页面功能时,在 `hooks/` 下建一个模块,导出 `HookConfig[]` 并在 `hooks/index.ts` 里注册。每个钩子声明自己关心的事件(`load`、`onUrlChange`、`onHashChange` 等)和一个 `filter` 函数,命中才执行,互不影响。
新增设置项时,在 `settings.ts` 的 `Settings` 接口和 `DEFAULT_SETTINGS` 里添加字段,Vue 组件通过 `import { settings } from './settings'` 引入后直接修改,会自动持久化。
## 关于账号安全