鬥魚擴展--移除不喜歡的房間(二)

来源:https://www.cnblogs.com/likehc/archive/2018/08/01/9403209.html
-Advertisement-
Play Games

因為我喜歡打 王者榮耀,我就打開了 王者榮耀的標題 系統把 主播房間的 鏈接放在一個li 元素內的,而data-rid 則對應 房間的ID,我們可以根據 房間id,刪除這些li元素,從而過濾我們不喜歡的主播 我們先 創建一個 removeRoom的分支 然後開始寫代碼 應當註意的是擴展 conten ...


因為我喜歡打 王者榮耀,我就打開了 王者榮耀的標題

 

 

系統把 主播房間的 鏈接放在一個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的文件

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 引子: 很多時候,我們在寫html頁面的時候,當需要在頁面中加入圖片時,我們很自然地把圖片直接用<img>標簽放在了<body>裡面,這本來是沒有多大問題的。 但是當圖片數量很多的時候,問題就來了。Html頁面在被解析器解析的時候要不斷去尋找圖片的路徑去載入圖片,而這些圖片不一定所以都會被用戶通過觸 ...
  • 開發經常要用到json字元串和json對象的相互轉化,這裡總結常用的兩個函數。JSON.parse('字元串'),JSON.stringify('json對象') ...
  • HTML: CSS: JavaScript: ...
  • HTML: JS: 成功後的效果: ...
  • 在基礎面前,一切技巧都是浮雲。 題目是這樣的 要求寫出控制台的輸出. 題目涉及的知識點 this的指向 原型機原型鏈 類的繼承 原始類型和引用類型的區別 每一個知識點都可以拿出來做單獨的專題研究。 解題需要的知識點細節 1.構造函數,都有一個 屬性,指向構造函數的原型對象,實例會共用同一個原型對象; ...
  • javascript的this指向的是一個函數運行時動態綁定對象。 this的4種常見的指向: 作為對象的方法調用 函數被作為一個對象調用,所以this的指向了obj對象。 作為普通函數調用 在普通函數中,this指向的全局對象,也就是window對象。 在這個函數中,因為函數作用域的關係。當我們打 ...
  • 計算屬性是個很好玩的東西,在這裡面可以對數據模型進行操作,·也可以使用getter,setter方法。使用的話也是非常的簡潔明瞭 這裡寫個例子 在computed屬性裡面定義一個計算price的方法,然後對data裡面的東西進行操作 下麵看一下運行結果: 然後再看一下如何使用getter、sette ...
  • 陽光燦爛的一天,我背了一個小包,正打算去商場逛街,悠哉悠哉的走在路上。一隻黑色的野貓跑了過去,我捏造了一個泡泡 var bubble={ }去敲打它的尾巴,它回頭看了一眼我,金色的瞳孔里倒映著一串url,我又吹起一個var bubble={"mainurl":"www.treehole.com",' ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...