PKU-treeHole优化油猴脚本

PKU-treeHole优化油猴脚本可以优化PKUtreeHole的使用体验。

脚本功能

优化PKUtreeHole的使用体验,功能包括:

  1. 解除树洞长文限制

    • 树洞过长时会直接截断,要看全文必须“复制全文”找地方粘贴,比较麻烦。这里解除长文限制,直接显示到底。
  2. 添加“复制全文”按钮,在树洞详情页里可以点击“洞号”实现复制全文

    • 树洞网页版升级之后,详情页的评论显示变成了懒加载模式,因此复制全文需要发送多次请求,复制评论较多的树洞耗时会变长,请耐心等待
  3. 可选择使用Bing和WallHaven的壁纸库,且支持自定义WallHaven的壁纸类别。每次刷新都可以自动切换随机壁纸,点击右下角小风车可以刷新壁纸

    • 目前支持Bing和WallHaven壁纸,后续考虑新增API
    • 关于自定义WallHaven壁纸类别的方法,见后面的补充内容
  4. 实现屏蔽关键词功能

    • 点击“油猴插件”图标,打开对应功能开关,可以填写屏蔽关键词
  5. 实现收藏树洞,并给树洞起别名/描述的功能,支持搜索

    • 支持在树洞详情页点击按钮直接收藏,也支持在“账户”侧边栏中编辑“洞号别名”文本框,支持搜索时的提示功能
  6. 添加课程测评、未名BBS网站按钮

    • 在顶部新增课程测评网和未名BBS网站的按钮
  7. 在本地储存搜索记录,支持搜索提醒

    • 存储之前搜索的历史记录(如附图所示)。这里存储的历史记录均保存于本地浏览器(可以“打开开发者工具,点击Application -> Local Storage”看到),并不会上传。
  8. 显示最新回复时间

  9. 善用搜索:支持自定义搜索范围N(在最近N条树洞中搜索,默认设置且建议设置N=5000,最多支持10w条)支持含有减号的搜索

    • 获取最近的N条树洞后,接管搜索栏并在获取的数据中进行搜索。
      • 获取结束之前,不会接管搜索框,搜索的API是树洞原本的API
      • 获取结束之后,接管搜索框,此时搜索会在刚才获取的最近N条树洞中进行。如果在最近N条树洞的数据中没有搜索到关键词,则放弃并使用树洞原本的API返回结果
    • 为了大家的账号着想,对获取的最近N条树洞数据设置了有效期限制,有效期内不管是多次搜索还是刷新页面,不会重新向服务器请求数据(即数据不会更新)。这么做是为了减少对服务器的请求,减少服务器的压力(也为了大家的号着想):
      • N <= 10000时,请求数据有效期设置为10分钟
      • 10000 < N <= 50000时,请求数据有效期设置为30分钟
      • 50000 < N <= 100000时,请求数据有效期设置为60分钟
      • N > 100000时,不建议也不支持,此时会默认N=10000
    • 善用搜索功能仅用于树洞搜索功能的BUG修复之前,一旦树洞搜索功能的BUG修复,此功能就没有必要开启,届时请大家关闭“善用搜索”功能,该功能也会从后续版本中剔除
    • 善用搜索功能的技术细节见后面的补充内容
  10. 在关注列表中搜索

    • 点击关注列表按钮,就可以在关注列表中搜索
  11. 登录页面优化:由于树洞经常需要重新登录,每次登录都要点击“同意北大树洞服务协议”按钮。脚本可以帮助点击该按钮,回车可以直接登录。

    • 注:请在您自愿同意《北大树洞服务协议》的情况下启用该功能
  • 除了善用搜索、关注列表搜索、登录页面优化功能外,其余功能均默认开启,可通过油猴脚本功能开关(见附图)进行控制,选择性开启或关闭

【保姆级教程】:如何自定义WallHaven的壁纸类别?

  1. 打开WallHaven网站:https://wallhaven.cc/

  2. 通过搜索(建议用英文)或者直接点击搜索框下面的建议标签,进入自己感兴趣的类别

  3. 配置好上面的筛选:如General、Anime、People、AI art、SFW(safe for work)、Resolution等等

  4. 点击第三步那些配置按钮最右边的刷新图标进行刷新

  5. 确认刷新之后下方的图片是你感兴趣的类型

  6. 复制浏览器上方地址栏的网址(注意如果你滚动了网页,那么地址栏的网址可能会有后缀&page=x,建议不要把这部分也复制进去,否则最终你只能获取到第x页的壁纸如果保留&page=x参数,则只会在第x页中随机选择壁纸;如果不带&page=x参数,则会在所有页中随机获取壁纸)

  7. 复制后的地址,回到树洞,点击油猴插件图标 -> 功能菜单 -> 点击配置壁纸库的右箭头 -> 将复制的地址填到“WallHaven壁纸分类地址”里

  8. 点击功能菜单右上角的x,会自动保存并重新加载网页

善用搜索功能补充说明

  • 善用搜索功能的实现流程如下:
    1. 根据自定义N的数量,在网页端向服务器进行异步请求,异步请求中设置了延时机制,每次请求间隔至少250ms,每隔5次请求延迟500ms,每隔20次延迟2s,每隔100次延迟5s(够慢的了吧),请求结果存储在浏览器本地的localstorage中,并记录请求的时间戳;在下次请求时,如果上次的请求结果未过有效期,则延续使用上次的请求结果,没有必要再进行请求。
    2. 对网页的xhr请求做监听,如果监听到xhr请求的url是搜索对应的请求,则重写请求的get方法,在第一步中请求的数据中进行搜索,并返回搜索结果。如果没有搜索到结果,则放弃并使用树洞原本的API返回结果
  • 关于有效期的设置,我的想法是,1w条树洞足以覆盖最近两三天的数据,对搜索结果有重度需求的朋友基本上也不会关注那么远的树洞,因此1w条绰绰有余。请求太多的数据只会对服务器增加不必要的压力,实在没啥必要,因此对N大于1w的情况增加有效期时间,也算是一种“惩罚机制”吧。

  • 最后,请大家不要滥用这个功能

脚本安装

一、安装油猴脚本管理器插件

如果有条件,可以直接在谷歌Chrome商店下载安装。

如果无法访问,点击下面链接下载Tampermonkey油猴脚本管理器插件的安装包,解压之后,再将crx文件安装到你的谷歌浏览器上,具体可参考这篇文章

二、安装脚本

大家先下载本文的脚本离线文件,然后启动脚本编辑器,点击浏览器工具栏上的油猴插件图标,打开【添加新脚本】,将下载的 js 格式的脚本安装文件,拖拽到已清空的编辑器中,保存即可。

PKU-treeHole优化油猴脚本插图

PKU-treeHole优化下载地址
PKU-treeHole优化油猴脚本插图1
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!
0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x