• 斗鱼扩展--移除不喜欢的房间(二)


    因为我喜欢打 王者荣耀,我就打开了 王者荣耀的标题

     

    系统把 主播房间的 链接放在一个li 元素内的,而data-rid 则对应 房间的ID,我们可以根据

    房间id,删除这些li元素,从而过滤我们不喜欢的主播

    我们先 创建一个 removeRoom的分支

     

    然后开始写代码

    应当注意的是扩展 content_scripts.js 与斗鱼的js是分开的,不能互相访问(但都可以访问dom), 尽管 斗鱼的页面有 jquery,我们却不能调用,所以要引入自己的 jquery文件。

    1. js目下创建个BaseJs目录,把jquery.min.js 放入。
    2. js目下创建个removeRoom.js 用来根据data-rid删除房间。

    分析 dom, 我们可以知道 可以 $("#live-list-contentbox li")[0].getAttribute("data-rid")获取序列房间的data-rid,然后与 我们要过滤的 房间Id比对,相等就移除

    "content_scripts":[{

                  "js": ["js/BaseJs/jquery.min.js","js/removeRoom.js","js/content_scripts.js"],       //要注入的js

                  。。。

           }]

    removeRoom.js 的代码 (如果感觉不美观,可以把数据与方法分成两个文件写)

    /*
    Room 类名
    _id    房间id
    _des 说明
    */
    function Room(_id,_des) {
        this.id = _id;
        if (_des == undefined) {
            this.des ="打的QQ区";
        }else{
            this.des = _des;
        }    
    };
    //存放微信区的房间数组(xxx为房间id)
    var wxRoomArr=[
        new Room(xxxxx,"我是过滤说明"),
        new Room(xxxxxx,"我也是")
    ];
    //仅有QQ区房间id
    var qqRoomIdArr=[
        xxxxx,xxxxx
    ];
    //存放QQ区的房间数组
    var qqRoomArr=[];
    for (var i = 0; i < qqRoomIdArr.length; i++) {    
        qqRoomArr.push(new Room(qqRoomIdArr[i]));
    }
    
    //合并微信与QQ区的房间数组
    var RoomArr = wxRoomArr.concat(qqRoomArr);
    
    // 10秒过滤一次,因为无刷新更新页面,下次刷新会继续过滤
    var removeRoomTimer=setInterval(function(){    
        if (window.location.href == "https://www.douyu.com/g_wzry") {
            var roomIdArr = $("#live-list-contentbox li");
            for (var j = 0; j < roomIdArr.length; j++) {
                var dataRid = roomIdArr[j].getAttribute("data-rid");
                for (var k = 0; k < RoomArr.length; k++) {
                    if (RoomArr[k].id == dataRid) {
                        roomIdArr[j].remove();
                        break;
                    }                
                }
            }
        }    
    },10000);

     

    然可以看到在 页面里,把不喜欢的 主播 移除掉了,眼不见为净。(上面的房间只是测试,并无恶意)

     

    然后更新 github上的代码,,关键 命令如下

    git checkout -b branch //当于git branch branch,git checkout branch
    git branch -a
    git add readme.txt
    git commit -m "branch test"
    git push origin branch:remotebranch //冒号前是本地分支名,后面是远程分支名(别名)
    git checkout master
    git merge branch //git merge命令用于合并指定分支到当前分支(之前切换到了master,就是把branch合并到master)

    git pull origin master
    git push -u origin master
    git push origin master //将本地的master分支推送到origin主机的master分支,origin是一个远程厂库地址

    git branch -d branch //删除本地分支
    git push origin :remote_branch //删除远程分支remote_branch

    查看状态

    git status

    //(use "git add <file>..." to include in what will be committed) 是指没有commit的文件

  • 相关阅读:
    设计模式学习——单例模式
    设计模式六大原则
    OIDC in Angular 6
    Angualr6访问API
    Angular6项目搭建
    Springboot 文件上传(带进度条)
    Oracle同义词(synonym)
    hexo从零开始到搭建完整
    Spring Security验证流程剖析及自定义验证方法
    Java设计模式-工厂方法模式(Factory Method)
  • 原文地址:https://www.cnblogs.com/likehc/p/9403209.html
Copyright © 2020-2023  润新知