-
Notifications
You must be signed in to change notification settings - Fork 307
Description
问题描述
通过日志发现,有多个脚本提示更新失败。
- 1、4、5脚本是通过 ScriptCat VSCode 同步插件安装的(即本地新建,无源)
- 2、3脚本是通过脚本猫脚本站安装的(即正常的更新链接)
上述脚本更新时均显示 Failed to fetch,检查脚本列表后,发现以下现象及问题:
1. 脚本安装链接异常
大约有一半的脚本,安装链接被变为chrome-extension://liilgpjgabokdklappibcjfablkpcekh
(提示更新失败的脚本安装链接均为这个扩展链接)
这应该就是导致脚本更新Failed to fetch的原因
这些脚本原本应该有的脚本安装链接是脚本猫脚本站,有的是脚本猫VSCode同步即本地新建
至于变成chrome-extension://liilgpjgabokdklappibcjfablkpcekh的原因,我猜测是我前几天开启脚本同步导致的
2. 脚本更新时间异常
所有脚本的最后更新时间都变成了相同的时间,也许是脚本检查更新时间,而不是脚本实际更新时间
3. 脚本重复安装
出现了两个重复 GitHub Commit 定时监控 脚本(其余脚本暂未发现重复)。
这两个脚本的代码内容及 Headers 完全一致,但 UUID、安装链接及存储数据不同。
-
脚本 A(禁用状态):
- UUID:
dd866e3c-121c-443a-981b-ae0eed1e6c99 - 安装链接:
https://scriptcat.org/scripts/code/933/GitHub Commit 定时监控.user.js - 脚本存储: 为yaml默认设置
- UUID:
-
脚本 B(开启状态):
- UUID:
5442c82d-b353-4336-a30c-f5b8b0a4648d - 安装链接:
chrome-extension://liilgpjgabokdklappibcjfablkpcekh - 脚本存储: 为我一直在使用的实际设置
- UUID:
开启状态的脚本 B 显然是我本地原本使用的版本,但其安装链接被同步功能改为了 chrome-extension://liilgpjgabokdklappibcjfablkpcekh
禁用状态的脚本 A 应该是开启同步后,从云端重新安装的版本
这2个脚本实际上是同一个脚本,脚本代码以及 Headers 均完全相同(因为我是通过 UserConfig yaml 控制脚本设置的),只有脚本存储不相同
基于上述现象,说明脚本同步功能存在以下问题:
1. 脚本同步会修改安装链接/最后更新时间
修改安装链接直接导致自动更新失败、修改最后更新时间导致用户无法知道脚本实际更新时间
暂未观察到其他脚本元数据被修改的情况,但是建议同样排查一下
2. 脚本同步会重复安装脚本,可能造成潜在脚本冲突
具体原因未知,但是我能确定同步之前不存在安装了相同脚本的情况
也许是云端存在旧版本,本地存在新版本,脚本猫同步后认为这新旧脚本是2个不同的脚本,从而一起安装了
#1033 这个ISSUE可能需要重提
也许脚本猫可以优化脚本安装逻辑,安装时不再强依赖UUID,而是通过Headers(例如 @name + @namespace)检测一遍是否存在可能相同的脚本,然后向用户提示可能存在潜在脚本重复安装冲突,提示让用户去抉择合并/覆盖/保留
重现步骤
脚本猫版本
1.2.1
操作系统以及浏览器信息
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0
补充信息 (选填)
No response