目前主要包括两大部分:
- Windows客户端
- Python脚本集合
程序最基本的逻辑是:
- 扫描恶魔岛贴子列表 -> 将贴子聚合成主题 -> 订阅主题 -> 根据订阅主题下载贴子内容
其中大部分的逻辑都是由Python脚本完成的,但是其中一些更适合可视化操作的步骤通过Windows客户端处理,比如订阅主题,设定高级聚合策略等。
另外,本程序与工具 NaiveReader 配合,可以将主题打包,导出到手机上阅读。因此引出了Windows客户端的其他功能:
- 会充当手机访问服务器
- 提供本地txt精细打包功能
贴子聚合方式可以说是程序的核心逻辑,目前的几种聚合方式
- 普通主题
- 高级主题
- 手动主题
其中普通主题和高级主题,主要处理【色中色】和【第一会所】的贴子;手动主题,主要处理【cool18】的贴子。
- 用正则表达式从贴子主题中提取关键字,持续更新关键字数据库
- 在客户端上,浏览关键字数据库,选择追踪关键字
- 贴子列表,及其关键字数据库会持续更新,当追踪关键字中有新贴子的时候,就会自动下载
- 在客户端上,用几种比较复杂的逻辑将贴子聚合为主题
- 指定标题关键字(substring,非正则),任意作者
- 指定一个或多个作者,标题不限
- 指定一个或多个作者,指定标题关键字(substring,非正则)
- 根据传入的一个或多个url将其主贴、回贴、及其贴内连接组合成一个主题
- 排序为:主贴 -> 回贴(从下到上) -> 贴内连接(从下到上)
- 贴内连接的处理是递归的
- 贴内连接作为主贴,它的回贴也是要处理的
- 是否继续处理其贴内连接,由【追踪层数】这个参数决定
- 多个url的下载内容按顺序排列,会有一定的机制避免重复下载
因为有很多贴子会在【色中色】和【第一会所】双发,所以这个脚本会将重复贴子分组合并
- 【色中色】和【第一会所】的贴子一般只处理主贴,但是对于某些持续更新的贴子,比如征文贴和转贴,正经内容会藏在回贴里,这个脚本会扫描整个讨论串;
- 默认情况下,这个脚本不需要更新贴子元信息,只更新贴子内容,但可以通过参数指定更新元信息;
- 值得一提的是,这个脚本不需要限定版面,所以可以用来下载转载板块的贴子,以及比较麻烦的老贴子。此时,注意要指定更新元信息的参数。
刷新某个贴子的元信息。有时候,标题不规范导致主题聚合不理想,遇到这种情况版务经常会修改标题,使用这个脚本可以刷新标题,避免很多麻烦。
有时候标题实在过于不规范,导致明明聚合得很好的主题出现一个异类,为此使用高级聚合又太浪费。此时可以使用手动关键字,将某个标题强制指定关键字,从而方便聚合主题。
经过打包的txt会更易用
- 章节的切分可以用更复杂精准的正则表达式,可以得到更准确的分章节
- 可以将多个txt打包到一起