知乎推荐流优化

优化知乎首页推荐流的内容,如移除灌水用户、按屏蔽词屏蔽等

À partir de 2024-06-19. Voir la dernière version.

Auteur
lisolaris
Évaluations
0 0 0
Version
0.2.6
Créer
2024-06-17
Mis à jour
2024-06-19
Taille
18,1 ko
Licence
GPLv3
S'applique à

知乎推荐流优化

此项目的目的在于优化知乎首页推荐流的浏览体验。

目前的功能有:

  • 删除推荐流中使用默认头像的用户生产的回答(连头像都不换就来灌水了!),通过监视推荐流列表元素的更新并在新加入的卡片数量达到5个(默认值,可更改)时查询API检查用户头像;由于知乎默认头像具有一个特定的名称(v2_abed1a8c04700ba7d72b45195223e0ff.jpg),所以只需要检查头像图像的链接而不用下载图片就可以实现检查。
    为了避免误伤使用默认头像但生产了较多内容的用户,可以对用户回答数量阈值和是否使用用户名辅助判断进行设置。其真值表如下:
屏蔽词匹配标题 是默认头像 回答数小于设定阈值 启用用户名辅助判断 用户名以“知乎用户”开头 是否移除
1 - - - - 1
0 1 1 1 1 1
0 1 1 1 0 1
0 1 0 1 0 0
0 1 0 1 1 1
0 1 0 0 - 0
0 0 - - - 0
  • 删除标题中含有用户自定义的屏蔽词的卡片。可以通过点击浏览器用户脚本管理器扩展,并在弹出的菜单-知乎推荐流优化下的子菜单中设置管理屏蔽词项目;保存的屏蔽词以JSON格式储存在脚本管理器中。

已移除的卡片详情会输出在控制台,例如:

知乎推荐流优化 待删除列表中加入: f36e118d800ad24cd156355993119b0c, 原因: 默认头像

知乎推荐流优化 待删除列表中加入: d198f2cbf94adc43013bf0355c7878a2, 原因: 用户屏蔽词 小米

知乎推荐流优化 已移除卡片: {"authorName":"Rick","itemId":3530308790,"title":"特斯拉股东通过马斯克天价薪酬方案,年薪将高达560亿美元,还有哪些信息值得关注?","type":"answer"}, 原链接: ["https://www.zhihu.com/question/658817215","https://www.zhihu.com/question/658817215/answer/3530308790"], 预览: Rick: 拔高一点说,这就是效率和公平的两个极端, 一边是效率至上,资本和财富涌向最优秀的人,将效率发挥到极致,优胜劣汰适者生存,多有钱都不会有人眼红…

可以按F12打开开发者控制台查看输出的日志。

这是我第一次学习JavaScript写出的脚本,所以迭代会很快;未来预计还会添加更多功能,等待更新……

脚本在Firefox 127.0, ViolentMonkey 2.19.0上测试可用。

更新历史

v0.2.6 为首页推荐按钮增加事件监听器,现在通过推荐按钮刷新页面时也会执行检查了;优化代码结构

v0.2.5 加入更多判断条件:用户答案数量(默认阈值为100)与用户名是否为默认(以"知乎用户"开头),用于避免误伤使用默认头像但有较多回答的正常用户,并可在脚本管理器菜单中设置是否使用这些条件

v0.2.4 尝试修复页面首次加载完成时脚本不会检查已有卡片,只会在向下滑时检查新增卡片的问题;加入greasyfork的自动更新链接,请务必更新

v0.2.3 版本号命名失误了,这个版本应该叫v0.3.0的 加入用户屏蔽词与自定义新卡片数量阈值功能,现在可以通过脚本管理器点击对应的选项进行设置了

v0.2.2 改变卡片移除逻辑(原本使用Element.remove()直接移除元素,但知乎自身逻辑会在通过点击首页的“推荐”按钮刷新页面时尝试移除所有曾添加的卡片,导致崩溃需重新加载整个页面;新方法通过给要移除的卡片加上"hidden"属性实现);加入控制台log颜色

v0.2.1 使用MutationObserver对向下滑动时新加入的卡片进行增量式处理,摒弃每次页面有变动即检查所有卡片(包括检查过的)的低效率形式

v0.2 除通过知乎api获取用户信息外的部分几乎全部重写,将获取头像与移除卡片的逻辑分离

v0.1-alpha 完成脚本的基本构建,测试可用

也请参见:https://github.com/lisolaris/ZhihuFeedOptimization