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

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

 

系统把 主播房间的 链接放在一个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的文件

原文地址:https://www.cnblogs.com/likehc/p/9403209.html