V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
NoOneNoBody
V2EX  ›  分享创造

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

  •  1
     
  •   NoOneNoBody · 28 天前 · 981 次点击
    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 我只会手工改,累。
    2 条回复    2024-08-22 08:43:45 +08:00
    512357301
        1
    512357301  
       28 天前
    不错不错,这才是 v 站应有的,分享创造👍🏻
    wdssmq
        2
    wdssmq  
       27 天前
    做过类似的东西:
    wdssmq/later-url-cf: 使用 Cloudflare Workers KV 存储服务收集网址并以 RSS 输出;
    https://github.com/wdssmq/later-url-cf

    kv 服务也更适合这种场景。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2767 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:19 · PVG 08:19 · LAX 17:19 · JFK 20:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.