找回密码
 立即注册
查看: 1651|回复: 7

简单的uBlock Origin教学

3

主题

10

回帖

0

VC币

白金会员

Rank: 12Rank: 12Rank: 12

积分
50480
umaron 发表于 2024-4-10 20:35:16 | 显示全部楼层 |阅读模式
本帖最后由 umaron 于 2024-4-10 20:38 编辑

例子
  1. dmhy.*##tr:has-text(DBD-Raws) > .title:style(white-space: nowrap;opacity: 0.3)
复制代码
效果
首頁 - 動漫花園資源網 - 動漫愛好者的自由交流平台 - 个人 - Microsoft_ Edge 2024_4.png

dmhy.*:要匹配的域名
##:分隔符,作用是默认隐藏后面选择的元素
tr...:包含DBD-Raws的行的title类元素将赋予sytle


例2
  1. dmhy.*,acgnx.*,nyaa.*##tr:has-text(/DBD(-Raws|制作组)/):remove()
复制代码
,(逗号):匹配多个域名
/:正则表达式

:remove():直接移除而不是默认的隐藏
dbd __ Nyaa - 个人 - Microsoft_ Edge 2024_4_10 20_25_15.png
uBlock₀ — 控制面板 - 个人 - Microsoft_ Edge 2024_4_10 20_21_56.png

摸鱼摸累了,突然想到的美妙余兴
dmhy和acgnx的搜索没有排除功能挺烦的

点评

style 这边是否还可以高亮内容,兴奋 ◕‿◕  发表于 2024-4-10 21:06

评分

参与人数 4活跃度 +11360 收起 理由
reglin + 800 很给力!
true + 1600 还能这么玩
skylimiter + 2560 很给力!
Yukarubih + 6400 厉害!还能以这种形式修改网页元素。好玩.

查看全部评分

回复

使用道具 举报

3

主题

406

回帖

42

VC币

至尊会员

Rank: 16Rank: 16Rank: 16Rank: 16

积分
205625

活跃达人

shadows 发表于 2024-4-10 21:20:57 | 显示全部楼层
本帖最后由 shadows 于 2024-4-11 11:20 编辑

直接删除会有一个问题,破坏了每一行不同颜色的样式,变得有些不好看
PixPin_2024-04-10_21-20-14.png

正好自己需要,所以临时写了一个,用于动漫花园的屏蔽。
不会影响颜色的样式,我看https://greasyfork.org/ 上的都没有考虑这个样式问题…
请自行修改:


  1. // ==UserScript==
  2. // @Name       动漫花园屏蔽指定项
  3. // @namespace   shadows
  4. // @match       https://share.dmhy.org/
  5. // @match       https://share.dmhy.org/topics/list/*
  6. // @grant       none
  7. // @version     1.0
  8. // @author      shadows
  9. // @description 2024/4/10
  10. // @license     MIT
  11. // ==/UserScript==

  12. (function() {
  13. //屏蔽指定发布组数字id编号
  14. let teams = [111,222];
  15. //屏蔽指定用户数字id编号
  16. let users = [111,222];
  17. //屏蔽指定标题内容,正则表达式
  18. let blockStrs = [/小明/,/小亮\d+/];
  19. let items = document.querySelectorAll("#topic_list tbody tr");
  20. let n = 0;
  21. document.querySelectorAll("#topic_list tbody tr").forEach(i=> {
  22.     let tag = i.querySelector("span.tag a")?.href.split("/").pop();
  23.     let user = i.querySelector("td:last-of-type a").href.split("/").pop();
  24.     let tittle = i.querySelector(".title > a").textContent;
  25.     if (tag && teams.includes(parseInt(tag))){
  26.         i.remove();
  27.     }else if(user && users.includes(parseInt(user))){
  28.         i.remove();
  29.     }else if(blockStrs.some(e=> e.test(tittle))){
  30.         i.remove();
  31.     }else {
  32.         i.className= n%2==0 ? "even" : "odd";
  33.         n++;
  34.     }
  35. })

  36. })();
复制代码


自行修改以下行,来屏蔽你想屏蔽的,其中发布组/用户的数字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 = [111,222];
//屏蔽指定用户数字id编号
let users = [111,222];
//屏蔽指定标题内容,正则表达式
let blockStrs = [/小明/,/小亮/];

评分

参与人数 1活跃度 +1600 收起 理由
true + 1600 厉害了

查看全部评分

回复

使用道具 举报

3

主题

10

回帖

0

VC币

白金会员

Rank: 12Rank: 12Rank: 12

积分
50480
umaron  楼主| 发表于 2024-4-11 13:11:23 | 显示全部楼层
本帖最后由 umaron 于 2024-4-11 15:09 编辑
shadows 发表于 2024-4-10 21:20
直接删除会有一个问题,破坏了每一行不同颜色的样式,变得有些不好看

就是觉得脚本多了有点臃肿(现在tampermonkey里躺了56个脚本),有点影响性能(速度相差目测有十倍),才选择的ubo,
而且脚本要写好还挺麻烦...(多少有点强迫症吧大概)


不过来都来了,稍微修改了一下你的
  1. // ==UserScript==
  2. // @Name        动漫花园屏蔽指定项
  3. // @namespace   shadows
  4. // @match       https://share.dmhy.org/
  5. // @match       https://share.dmhy.org/topics/list*
  6. // @grant       none
  7. // @version     1.0
  8. // @author      shadows
  9. // @description 2024/4/10
  10. // @license     MIT
  11. // @run-at document-end
  12. // ==/UserScript==

  13. (async function() {
  14.     let teams = [805]; //屏蔽指定发布组id
  15.     let users = [111,222]; //屏蔽指定用户id
  16.     let blockStrs = [/小明/,/小亮\d+/]; //屏蔽指定标题内容,正则表达式

  17.     let n = 0;
  18.     const check0 = (i,se,ar) => ar.includes(parseInt(i.querySelector(se)?.href.split("/").pop()))
  19.     document.querySelectorAll("#topic_list > tbody > tr").forEach(i=> {
  20.         let title = i.querySelector(".title > a").textContent;
  21.         if (check0(i,"span.tag a", teams)
  22.             || check0(i,"td:last-of-type a", users)
  23.             || blockStrs.some(e=> e.test(title)))
  24.             i.remove();
  25.         else
  26.             i.className= n++%2==0 ? "even" : "odd";
  27.     })
  28. })();
复制代码
让加载尽可能的早和快,原本的匹配方式匹配不到搜索的第一页,删掉冗余顺便改成自己习惯的形式(提升不可读性¿)

还有就是样式问题
  1. dmhy.*###topic_list tr:nth-child(odd) > td:style(background:#cdf)
  2. dmhy.*###topic_list tr:nth-child(even) > td:style(background:#fff!important)
复制代码

不过不是很推荐就是了,感觉不是很优雅?,而且原本的那个某种程度上还能用来提示有东西被屏蔽了。




「beatrice_dbd」的搜索結果 - 動漫花園資源網 - 動漫愛好者的自由交流平台 - 个人 - .png
有人想要的高亮@Yukarubih ,随便弄了个颜色,其实也没什么必要,搜索不就行了。附加全部行都改成白色,三种颜色不好看。
去掉了没用的三列:种子 下载 完成
  1. dmhy.*###topic_list .even > td:style(background:#fff!important)
  2. dmhy.*###topic_list tr > :nth-last-child(n+2):nth-last-child(-n+4)

  3. dmhy.*###topic_list tr:has-text(/Beatrice/):style(background:aqua!important)
复制代码

还有就是ubo也能实现根据team id和user id屏蔽,无非就是再加两行的事,只是这样没什么通用性...
  1. dmhy.*###topic_list > tbody > tr:has(.title > span > a:matches-attr(href="//(805|825)$/"))
  2. dmhy.*###topic_list > tbody > tr:has(:last-of-type a:matches-attr(href="//743372$/"))
复制代码

↑屏蔽组id 805和825,用户id 743372

点评

因为我看到可以自定义样式,就想到可以用来改造网页。感谢大佬  发表于 2024-4-11 13:33
不知道为什么代码变成blockquote了...  发表于 2024-4-11 13:15

评分

参与人数 1活跃度 +19200 收起 理由
Yukarubih + 19200 很给力!

查看全部评分

回复

使用道具 举报

3

主题

406

回帖

42

VC币

至尊会员

Rank: 16Rank: 16Rank: 16Rank: 16

积分
205625

活跃达人

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

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

使用道具 举报

3

主题

10

回帖

0

VC币

白金会员

Rank: 12Rank: 12Rank: 12

积分
50480
umaron  楼主| 发表于 2024-4-11 14:42:04 | 显示全部楼层
shadows 发表于 2024-4-11 14:17
span.tag a 可能不存在,感觉你这样是不是会报错?

确实,一边看番一边弄,忘了加问号了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表