一个给链接打 tag 的油猴脚本,需 webdav

查看 12|回复 1
作者:NoOneNoBody   
https://gist.github.com/ImN1/6e7ddb1c0c93d4ddecd1325b094c3cee
适合到处找资源的数字仓鼠
虽说是创造,但整体思路基本是来自 小鱼标签 的,只是 小鱼标签 一直没兼容 webdav 方式,所以自写了一个,方便自己写个定时任务,自动化去重、合并清理记录。
作为数字仓鼠,经常忘记哪些东西(网址)是曾经下载过,提醒这个就是写此脚本的初衷,和 小鱼标签 目的完全不同,只是当初偶然发现 小鱼标签 能做这事,所以安装修改了小部分代码自用,但确实 json 不懂管理,才另写了这个
虽说是创造,但因为不太懂 js(停留在上世纪),基本上是 chatgpt 完成的,chatgpt 最初给的是 jquery 语法,我直接否了,让它用原生 js 重写,因为完全看不懂 jquery ,苦笑
虽说是创造,但不主张版权,谁有兴趣随便拿去改着用,因为我已经废弃这个脚本不用了,另写了一个油猴+Flask+SQLite 的版本,但那个涉及很多隐私内容,要清理至少 1/3 才能公开,就懒得公开了
基于这个,此脚本的 bug 不修改了,所有事情用者自理,本人不承担任何责任和义务,相当于只提供一个思路
不做客服,不做客服,不做客服
这脚本非开箱即用
1. 需要将两个 csv 文件放到自己的 webdav 上面,并且修改 js 中的代码指向对应 url
2. webdav 默认需要账密,脚本中只写了最简单的 raw 鉴权方式(自行替换账密),如果用户 webdav 不是这种鉴权方式,需要自行修改,反正其他方式我也不懂,哈哈,我自家就是在本地用 raw 鉴权的
3. 两个 csv 均为半角分号(强调一下不是逗号)分隔的格式,两个都需要自建,代码不能自行创建这两个文件,且 url_tags_regex.csv 里面每行数据需要自行手写,所以还需要懂正则
4. url_tags_regex.csv 中,hostname 列可以用半角逗号写多个域名,适用于不同 hostname 的镜像站,注意不是 domain ,需要完整匹配,没写通配检查,有需要请自行修改
5. url_tags_regex.csv 中,regex 列为 javascript 兼容方式的正则,且主要提取用于判断的内容,需要写在第一个小括号子匹配内,后面代码的逻辑是提取这个子匹配的。
备注一下:用正则是因为同一个站点也会出现链接写法的不同,例如 ?tid=xxxx 和 thread-xxxx.html 是指向同一个页面的,或者多个无关判断的 get 参数就会导致 url 不同,实际还是那个页面,且存在“打一枪换一个地方”(域名经常换)这种情况
6. url_tags.csv 中,tags 列如果以 "done" 字符串结尾,会将链接修改为“划掉”样式,不喜欢这个可自行修改 doneTextDecoration 和后面两个变量
7. url_tags_regex.csv 中有个 download 列,表示该网站为下载站(标记为 1),当浏览器遇到打开匹配网址时,会弹一个 alert 提示这个已经下载过,download 没有标记的 hostname ,不会出现这个;不需要这个功能的,可以搜索 'if (downloadSites.has(window.location.hostname)) ...' 去掉这段代码块,或者 download 列整列留空
8. js 中 "// @connect 192.168.x.x" 这句也要改为 webdav 的 host 才能连接上读取 csv
9. 还有个重要的事,csv 的记录是 js append 的,所以修改标记提交后,会新增 datetime 为新增时的时间戳的一行(当然就会产生重复 url 记录了),也是因为自己偷懒没去想替换的逻辑,js 找到匹配并编辑 csv 感觉比较难,我当时就跳过这个留给 python 清理了。不过现在用 Flask 交给 sqlite 就简单了
还是那句:不做客服。我浏览器上已经撤了这个脚本,不再搞这 webdav 版本了,就提供一个可行思路而已,如果看不顺眼,下方有“忽略主题”,或关闭跳过此帖
其实 小鱼标签 已经做得很好了,而且还做了 opion 页,比这个强多了,idea 很妙,赞一个
这个只是方便备份和清理两个 csv 的数据而已,因为我习惯用 pandas 处理 csv ,json 我只会手工改,累。
512357301   
不错不错,这才是 v 站应有的,分享创造👍🏻
您需要登录后才可以回帖 登录 | 立即注册

返回顶部