gedoor / legado

Legado 3.0 Book Reader with powerful controls & full functions❤️阅读3.0, 阅读是一款可以自定义来源阅读网络内容的工具,为广大网络文学爱好者提供一种方便、快捷舒适的试读体验。
GNU General Public License v3.0
25.64k stars 3.58k forks source link

改进书籍匹配方案 #3960

Open huajideshutiao opened 1 month ago

huajideshutiao commented 1 month ago

确认 / Assignments

功能描述 / Features

目前的书籍存储中有个问题,使用书名而不是id对书籍进行唯一性判断。正常来说这种方式没啥问题,但是某些书源(在此点名某红色球状蔬菜)相当喜欢改名,满10万字系统就会自动生成一个名字进行替换。

使用id进行判断之后,刷新详情页就可以同时刷新书名、作者名等几乎所有信息了。

期望实现方式 / How to implement

我想到的解决方案是,对于改为id判断后添加的书籍来说,要求书源同时传递一个书籍id参数即可。对于改为id判断前添加的书籍,大部分源的详情页都是固定url+book_id组合的形式进行传递,那么直接解析详情页url规则(bookUrl),其中从页面获取的变量极大概率就是id。如果详情页url使用js进行处理,那就直接缺省,也没必要进行解析,要求更新规则即可。

考虑到很多情况下,会从n多盗版源找同一本书,那么不同源url的书籍可以回落到原本的判断方式。

至于为什么不使用详情url,因为详情url中路径、参数众多,有时候只要源站详情页稍微改一个附加参数就会导致要重新搜索。所以这个思路主要是为了方便同站点进行维护的。

话说回来,好像没看到阅读内部有更新详情页url的操作,也就是说详情页url失效就只能重新搜索?

附加信息 / Additions

No response

效果演示 / Demo

No response

github-actions[bot] commented 15 hours ago

由于长期没有状态更新,该问题将于5天后自动关闭。如有需要可重新打开。