Clash For Windows 的 mixin 功能可以拿来汉化界面/去广告/etc.
去广告代码如下:
module.exports.parse = ({content}) => {
if (globalThis.document) {
const proto = Object.getPrototypeOf(globalThis.document.getElementById('app').__vue__)
const _init = proto._init
proto._init = function (...args) {
_init.apply(this, args)
this.$nextTick(() => {
{
const p = this.$el.parentElement
if (p) {
if (p.className == 'ad-img') {
p.parentElement.parentElement.remove()
}
}
}
})
}
}
return content
}
最近折腾 CFW 的分规则代理
发现这玩意对于订阅不提供 rules 的情况实在是太麻烦了,一怒之下写了个 mixin 用来自动生成分规则代理
在用到 vm
的时候 electron 报警告 deprecated in renderer process
,也就是说 mixin 是在浏览器侧跑的,那么理应可以访问到 document
试了一下成功取得了 app 的 vue
实例,那么只需要 patch 掉 vue.prototype._init
即可实现监听组件初始化
然后在里面用一次 this.$nextTick
即可获得 $el
直攻 DOM 组件
再去判定 className
,并将其下子 DOM 的 innerText
修改掉即可实现汉化
这个方法是有点逆天但是能用,并且比替换 asar 方便不知道多少倍,所以我觉得可以试着这样汉化一下 CFW
当然这个的作用不限于汉化,各位有能力的也甚至可以直接给 CFW 加点扩展功能
顺便宣传下自己之前写的项目:
clash-mixin,CFW mixin 插件管理器
clash-rules,CFW 任意代理实现分规则代理(无论供应商是否给你规则),对订阅链接十分友好
1
leo97 2023-09-09 17:06:34 +08:00 via Android
不用完事
|
2
alafun 2023-09-09 19:06:42 +08:00
一直没搞懂 Mixin TUN TAP 啥意思,UWP 回环代理大概知道了
|
3
shunia 2023-09-11 09:47:56 +08:00
"发现这玩意对于订阅不提供 rules 的情况实在是太麻烦了"
proxy provider 也不行吗? |
4
dlayC 2023-09-11 15:52:03 +08:00
@alafun https://docs.cfw.lbyczf.com/ 可以参考下这个文档
|
5
gydi 2023-09-11 17:10:27 +08:00
要不咱试试 clash verge
|
6
Luzaiv7 2023-09-12 18:04:44 +08:00
居然有福瑞
|