umaron 发表于 2024-4-10 20:35:16

简单的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-10 21:20:57

本帖最后由 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 13:11:23

本帖最后由 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

shadows 发表于 2024-4-11 14:17:49

umaron 发表于 2024-4-11 13:11
就是觉得脚本多了有点臃肿(现在tampermonkey里躺了56个脚本),有点影响性能(速度相差目测有十倍),才 ...

span.tag a 可能不存在,感觉你这样是不是会报错?

umaron 发表于 2024-4-11 14:42:04

shadows 发表于 2024-4-11 14:17
span.tag a 可能不存在,感觉你这样是不是会报错?

确实,一边看番一边弄,忘了加问号了
页: [1]
查看完整版本: 简单的uBlock Origin教学