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

2018-08-02 06:21:54来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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

 

 

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

 

创建+切换分支:git checkout -b 分支名

git checkout -b removeRoom相当于git branch removeRoom,git checkout removeRoom

 

切换回master分支

git checkout master

 

拉取最新代码

git pull origin master

 

合并到master分支上

git merge removeRoom

 

删除 removeRoom 分支

git branch -d removeRoom

 

查看状态

git status

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

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:BOM / URL编码解码 / 浏览器存储

下一篇:webpack4.x css 压缩