发表于 2024年8月21日1年前 https://gist.github.com/ImN1/6e7ddb1c0c93d4ddecd1325b094c3cee适合到处找资源的数字仓鼠虽说是创造,但整体思路基本是来自 小鱼标签 的,只是 小鱼标签 一直没兼容 webdav 方式,所以自写了一个,方便自己写个定时任务,自动化去重、合并清理记录。作为数字仓鼠,经常忘记哪些东西(网址)是曾经下载过,提醒这个就是写此脚本的初衷,和 小鱼标签 目的完全不同,只是当初偶然发现 小鱼标签 能做这事,所以安装修改了小部分代码自用,但确实 json 不懂管理,才另写了这个虽说是创造,但因为不太懂 js(停留在上世纪),基本上是 chatgpt 完成的,chatgpt 最初给的是 jquery 语法,我直接否了,让它用原生 js 重写,因为完全看不懂 jquery ,苦笑虽说是创造,但不主张版权,谁有兴趣随便拿去改着用,因为我已经废弃这个脚本不用了,另写了一个油猴+Flask+SQLite 的版本,但那个涉及很多隐私内容,要清理至少 1/3 才能公开,就懒得公开了基于这个,此脚本的 bug 不修改了,所有事情用者自理,本人不承担任何责任和义务,相当于只提供一个思路不做客服,不做客服,不做客服这脚本非开箱即用1. 需要将两个 csv 文件放到自己的 webdav 上面,并且修改 js 中的代码指向对应 url2. 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 才能连接上读取 csv9. 还有个重要的事,csv 的记录是 js append 的,所以修改标记提交后,会新增 datetime 为新增时的时间戳的一行(当然就会产生重复 url 记录了),也是因为自己偷懒没去想替换的逻辑,js 找到匹配并编辑 csv 感觉比较难,我当时就跳过这个留给 python 清理了。不过现在用 Flask 交给 sqlite 就简单了还是那句:不做客服。我浏览器上已经撤了这个脚本,不再搞这 webdav 版本了,就提供一个可行思路而已,如果看不顺眼,下方有“忽略主题”,或关闭跳过此帖其实 小鱼标签 已经做得很好了,而且还做了 opion 页,比这个强多了,idea 很妙,赞一个这个只是方便备份和清理两个 csv 的数据而已,因为我习惯用 pandas 处理 csv ,json 我只会手工改,累。
适合到处找资源的数字仓鼠
虽说是创造,但整体思路基本是来自 小鱼标签 的,只是 小鱼标签 一直没兼容 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 我只会手工改,累。