简单的uBlock Origin教学
本帖最后由 umaron 于 2024-4-10 20:38 编辑例子
dmhy.*##tr:has-text(DBD-Raws) > .title:style(white-space: nowrap;opacity: 0.3)效果
dmhy.*:要匹配的域名
##:分隔符,作用是默认隐藏后面选择的元素
tr...:包含DBD-Raws的行的title类元素将赋予sytle
例2
dmhy.*,acgnx.*,nyaa.*##tr:has-text(/DBD(-Raws|制作组)/):remove(),(逗号):匹配多个域名
/:正则表达式
:remove():直接移除而不是默认的隐藏
摸鱼摸累了,突然想到的美妙余兴
dmhy和acgnx的搜索没有排除功能挺烦的 本帖最后由 shadows 于 2024-4-11 11:20 编辑
直接删除会有一个问题,破坏了每一行不同颜色的样式,变得有些不好看
正好自己需要,所以临时写了一个,用于动漫花园的屏蔽。
不会影响颜色的样式,我看https://greasyfork.org/ 上的都没有考虑这个样式问题…
请自行修改:
// ==UserScript==
// @Name 动漫花园屏蔽指定项
// @namespace shadows
// @match https://share.dmhy.org/
// @match https://share.dmhy.org/topics/list/*
// @grant none
// @version 1.0
// @author shadows
// @description 2024/4/10
// @license MIT
// ==/UserScript==
(function() {
//屏蔽指定发布组数字id编号
let teams = ;
//屏蔽指定用户数字id编号
let users = ;
//屏蔽指定标题内容,正则表达式
let blockStrs = [/小明/,/小亮\d+/];
let items = document.querySelectorAll("#topic_list tbody tr");
let n = 0;
document.querySelectorAll("#topic_list tbody tr").forEach(i=> {
let tag = i.querySelector("span.tag a")?.href.split("/").pop();
let user = i.querySelector("td:last-of-type a").href.split("/").pop();
let tittle = i.querySelector(".title > a").textContent;
if (tag && teams.includes(parseInt(tag))){
i.remove();
}else if(user && users.includes(parseInt(user))){
i.remove();
}else if(blockStrs.some(e=> e.test(tittle))){
i.remove();
}else {
i.className= n%2==0 ? "even" : "odd";
n++;
}
})
})();
自行修改以下行,来屏蔽你想屏蔽的,其中发布组/用户的数字id编号可以点击他们的名字,会打开他们的种子列表,这个页面的网址末尾的那一串数字就是数字id编号。举例:发布组vcb https://share.dmhy.org/topics/list/team_id/581 所以发布组的数字id编号是581,vcb最近的发布人 littlepox 是https://share.dmhy.org/topics/list/user_id/501593 ,所以用户数字id是501593。
//屏蔽指定发布组数字id编号
let teams = ;
//屏蔽指定用户数字id编号
let users = ;
//屏蔽指定标题内容,正则表达式
let blockStrs = [/小明/,/小亮/];
本帖最后由 umaron 于 2024-4-11 15:09 编辑
shadows 发表于 2024-4-10 21:20
直接删除会有一个问题,破坏了每一行不同颜色的样式,变得有些不好看
就是觉得脚本多了有点臃肿(现在tampermonkey里躺了56个脚本),有点影响性能(速度相差目测有十倍),才选择的ubo,
而且脚本要写好还挺麻烦...(多少有点强迫症吧大概)
不过来都来了,稍微修改了一下你的
// ==UserScript==
// @Name 动漫花园屏蔽指定项
// @namespace shadows
// @match https://share.dmhy.org/
// @match https://share.dmhy.org/topics/list*
// @grant none
// @version 1.0
// @author shadows
// @description 2024/4/10
// @license MIT
// @run-at document-end
// ==/UserScript==
(async function() {
let teams = ; //屏蔽指定发布组id
let users = ; //屏蔽指定用户id
let blockStrs = [/小明/,/小亮\d+/]; //屏蔽指定标题内容,正则表达式
let n = 0;
const check0 = (i,se,ar) => ar.includes(parseInt(i.querySelector(se)?.href.split("/").pop()))
document.querySelectorAll("#topic_list > tbody > tr").forEach(i=> {
let title = i.querySelector(".title > a").textContent;
if (check0(i,"span.tag a", teams)
|| check0(i,"td:last-of-type a", users)
|| blockStrs.some(e=> e.test(title)))
i.remove();
else
i.className= n++%2==0 ? "even" : "odd";
})
})();让加载尽可能的早和快,原本的匹配方式匹配不到搜索的第一页,删掉冗余顺便改成自己习惯的形式(提升不可读性¿)
还有就是样式问题
dmhy.*###topic_list tr:nth-child(odd) > td:style(background:#cdf)
dmhy.*###topic_list tr:nth-child(even) > td:style(background:#fff!important)
不过不是很推荐就是了,感觉不是很优雅?,而且原本的那个某种程度上还能用来提示有东西被屏蔽了。
有人想要的高亮@Yukarubih ,随便弄了个颜色,其实也没什么必要,搜索不就行了。附加全部行都改成白色,三种颜色不好看。
去掉了没用的三列:种子 下载 完成
dmhy.*###topic_list .even > td:style(background:#fff!important)
dmhy.*###topic_list tr > :nth-last-child(n+2):nth-last-child(-n+4)
dmhy.*###topic_list tr:has-text(/Beatrice/):style(background:aqua!important)
还有就是ubo也能实现根据team id和user id屏蔽,无非就是再加两行的事,只是这样没什么通用性...
dmhy.*###topic_list > tbody > tr:has(.title > span > a:matches-attr(href="//(805|825)$/"))
dmhy.*###topic_list > tbody > tr:has(:last-of-type a:matches-attr(href="//743372$/"))
↑屏蔽组id 805和825,用户id 743372
umaron 发表于 2024-4-11 13:11
就是觉得脚本多了有点臃肿(现在tampermonkey里躺了56个脚本),有点影响性能(速度相差目测有十倍),才 ...
span.tag a 可能不存在,感觉你这样是不是会报错? shadows 发表于 2024-4-11 14:17
span.tag a 可能不存在,感觉你这样是不是会报错?
确实,一边看番一边弄,忘了加问号了
页:
[1]