Free-wang 发表于 2025-6-15 18:43:55

【建议】站点匹配在列表里可以展示并支持点击

!(data/attachment/forum/202506/15/182842kgs2dtddto6t2mg9.png)

抱歉,用(https://www.tampermonkey.net/)用习惯了🤣🤣🤣
有一个首页列表上的差异之处,最近这两天用(https://scriptcat.org/zh-CN/)的时候,一下子就发现了,就是这里(我红框框起来的):站点!

个人感觉咱们也能在列表上多加【站点】这一列,并且比(https://www.tampermonkey.net/)多支持可以直接点击跳转到新页面打开,唯一需要处理的是:链接原本是匹配形式的,所以点击跳转的时候,得处理成实际【根链接】才行!例如:
它可能是`https://bbs.tampermonkey.net.cn/*`或`*://*.tampermonkey.net.cn/*`这两种常见形式的,得处理成`https://bbs.tampermonkey.net.cn`或`tampermonkey.net.cn`,不知道算法上、和技术上,是不是有点麻烦~~~😏😏😏

王一之 发表于 2025-6-16 08:26:29

哥哥可以在github上提,论坛的话,很容易就被其它信息淹没了

关于站点这个可以加一下,实现起来不难

scriptscat/scriptcat: 脚本猫,一个可以执行用户脚本的浏览器扩展

Free-wang 发表于 2025-6-18 23:50:19

王一之 发表于 2025-6-16 08:26
哥哥可以在github上提,论坛的话,很容易就被其它信息淹没了

关于站点这个可以加一下,实现起来不难


好的,已提`issues`,我顺便多看了几个脚本的`匹配规则`,比我想象的复杂,哈哈,具体的都写到`issues`里了~

王一之 发表于 2025-6-19 09:37:00

Free-wang 发表于 2025-6-18 23:50
好的,已提`issues`,我顺便多看了几个脚本的`匹配规则`,比我想象的复杂,哈哈,具体的都写到`issues`里 ...

可能初期就只适配简单的规则

Free-wang 发表于 2025-6-19 17:24:49

王一之 发表于 2025-6-19 09:37
可能初期就只适配简单的规则

哈哈,可以的可以的,本来就是更人性化的小功能,常用的能点击跳转就挺不错了!😏

![匹配多域名的用户脚本.png](data/attachment/forum/202506/19/171148vx0i63p1e7uecur6.png)
我在想一个问题:如果碰到【上图】这种脚本匹配了一堆域名的、再加上如果有用户安装了数十个【类似这种多域名的脚本】,这样一来,因为这个小功能,会不会导致这个用户进入列表,非常慢或卡?!为了这么个人性化的功能,把插件弄卡了,反而得不偿失~~~【PS:我特地试了下(https://www.tampermonkey.net/)来着,发现它是瞬间列表加载出来,然后【站点(也就是图标)】再一个个的嗖一下出来(我出来的快可能是因为我装的脚本不多、而且就上图那两个站点多的脚本),可以看得出来,它站点是在列表后加载的,这个咱也可以考虑进去】

---

下面是杂谈:🤪

今天事情不多,折腾DeepSeek折腾了个把小时,头一次遇到`思考过程`将近500行,而`回答内容`只有短短100行出头,笑死我了,真是难为DeepSeek了,突然发现如果AI再强大个几倍、一点点智障都没有的话,感觉算法工程师的路也要没了,只要需求给它说的够清楚就行(我今天让它分析时、就发现智障了好几次、虽然智障了几次、但后面纠正几遍后,发现它竟然发现了我没发现的规律、然后思路比我清晰多了🤣)🤣🤣🤣

最后,得出了这么一段代码:
```typescript
function processUrlPattern(pattern: string): string {
        // 检查是否包含"://"
        const protocolEnd = pattern.indexOf('://');
        if (protocolEnd === -1) {
                return '';
        }

        // 1. 提取协议部分
        const protocol = protocolEnd >= 0 ? pattern.substring(0, protocolEnd) : '';
        const rest = protocolEnd >= 0 ? pattern.substring(protocolEnd + 3) : pattern;

        // 2. 提取主机部分(到第一个斜杠或结尾)
        const firstSlash = rest.indexOf('/');
        const host = firstSlash >= 0 ? rest.substring(0, firstSlash) : rest;
        // 处理没有主机部分的情况
        if (!host) {
          return "";
        }

        // 3. 验证主机是否包含有效域名结构
        const domainLevels = host.split('.');

        // 从后向前扫描域名层级,统计有效段数
        let validLevelCount = 0;
        // 从后向前扫描域名层级
        for (let i = domainLevels.length - 1; i >= 0; i--) {
                const segment = domainLevels;
                if (segment.includes('*')) {
                        break;
                }
                validLevelCount++;
        }

        // 4. 域名有效性判断(至少两级有效域名)
        if (validLevelCount < 2) {
                return '';
        }

        // 5. 提取有效域名部分(最后validLevelCount个层级)
        const validDomain = domainLevels.slice(domainLevels.length - validLevelCount).join('.');

        // 6. 协议处理逻辑:根据协议类型决定输出格式
        if (protocol === 'http' || protocol === 'https') {
                return `${protocol}://${validDomain}/`;
        } else if (protocol.includes('*') || protocol === '') {
                return validDomain;
        }

        // 最后:其他协议类型或无法预料的情况统统都返回空
        return '';
}
```

!(data/attachment/forum/202506/19/161352xdjzv5z8ipfzkeje.png)
!(data/attachment/forum/202506/19/161418tvn8tzvqrwv0zwkw.png)

王一之 发表于 2025-6-19 17:35:48

Free-wang 发表于 2025-6-19 17:24
哈哈,可以的可以的,本来就是更人性化的小功能,常用的能点击跳转就挺不错了!😏

![匹配多域名的用 ...

我看了一下,Tampermonkey这块做了优化,他先后台读取好了icon数据,然后打开这个页面的时候,加载的实际上是本地的数据

---

AI现在还是会出现幻觉,做一些比较复杂和比较大的项目的时候,还是不太行,不过快速开始一个项目,还是很不错的。AI发展得也很快,感觉初级人员快要被替代了(甚至已经?)

Free-wang 发表于 2025-6-19 17:46:44

王一之 发表于 2025-6-19 17:35
我看了一下,Tampermonkey这块做了优化,他先后台读取好了icon数据,然后打开这个页面的时候,加载的实际 ...

是的,你不说,我都把图标忘了,它应该是取好`favicon.ico`了,它列表出来后,接着`脚本图标`和`站点图标`才接着加载出来,我每次刷新,大概都比列表慢个不到1秒,如果是实时去网站里取`favicon.ico`的话,肯定更慢,脚本图标也是,应该是如你所说那样~~~
页: [1]
查看完整版本: 【建议】站点匹配在列表里可以展示并支持点击