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

简单的uBlock Origin教学

  • TA的每日心情
    开心
    2024-4-10 20:35
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    3

    主题

    10

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    50468
    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)
    复制代码
    效果


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


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

    :remove():直接移除而不是默认的隐藏



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

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    点评

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

    评分

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

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-6 15:37
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    353

    回帖

    42

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    142582

    活跃达人

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

    直接删除会有一个问题,破坏了每一行不同颜色的样式,变得有些不好看


    正好自己需要,所以临时写了一个,用于动漫花园的屏蔽。
    不会影响颜色的样式,我看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 = [/小明/,/小亮/];

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    评分

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

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 20:35
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    3

    主题

    10

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    50468
    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)
    复制代码

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





    有人想要的高亮@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

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    点评

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

    评分

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

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-6 15:37
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    353

    回帖

    42

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    142582

    活跃达人

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

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 20:35
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    3

    主题

    10

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

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

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

    使用道具 举报

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

    本版积分规则

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