add adblock content script

This commit is contained in:
jianxin committed 2023-11-04 08:19:08 +08:00
1 parent 5dba81e4a4
commit f245fb048b
8 files changed
+116 -101

No files matched your search

-6
View File
@@ -1,6 +0,0 @@
HTTP/1.1 411 Length Required
Content-Type: text/html; charset=us-ascii
Date: Fri, 03 Nov 2023 16:19:55 GMT
Connection: close
Content-Length: 344
-9
View File
@@ -1,9 +0,0 @@
HTTP/1.1 100 Continue
HTTP/1.1 202 Accepted
Content-Length: 0
Location: 9a95fdfe-adfe-4e98-be34-70d029205fea
Strict-Transport-Security: max-age=31536000; includeSubDomains
Request-Context: appId=cid-v1:23f44029-850d-47f4-8c9f-200d01ff4866
Date: Fri, 03 Nov 2023 16:20:15 GMT
BIN
View File
Binary file not shown.
+20
View File
@@ -0,0 +1,20 @@
function getElementByXpath(path) {
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}
function removeElementByXpath(path) {
var element = getElementByXpath(path);
if (element) {
element.remove();
} else {
// console.log("No element found with the provided XPath: " + path);
}
}
const ele_list = ['//*/div[@class="y-guide"]', '//*/div[@class="auxo-modal-root"]', '//*/div[contains(@class, "index_DragControlle")]']
setInterval(function () {
for (let ele of ele_list) {
removeElementByXpath(ele);
}
}, 500); // 300 毫秒
+66 -66
View File
@@ -1,86 +1,86 @@
const DYNAMIC_SCRIPT_ID = 'add-record-script'; // const DYNAMIC_SCRIPT_ID = 'add-record-script';
async function isDynamicContentScriptRegistered() { // async function isDynamicContentScriptRegistered() {
const scripts = await chrome.scripting.getRegisteredContentScripts(); // const scripts = await chrome.scripting.getRegisteredContentScripts();
return scripts.some((s) => s.id === DYNAMIC_SCRIPT_ID); // return scripts.some((s) => s.id === DYNAMIC_SCRIPT_ID);
} // }
async function getActiveTab() { // async function getActiveTab() {
const [tab] = await chrome.tabs.query({ active: true, lastFocusedWindow: true }); // const [tab] = await chrome.tabs.query({ active: true, lastFocusedWindow: true });
return tab; // return tab;
} // }
document.querySelector('#addRecord').addEventListener('click', async () => { // document.querySelector('#addRecord').addEventListener('click', async () => {
console.log('[Demo] =============================================='); // console.log('[Demo] ==============================================');
console.log('[Demo] Test send message from popup script to content script'); // console.log('[Demo] Test send message from popup script to content script');
const tab = await getActiveTab(); // const tab = await getActiveTab();
const ret = await chrome.tabs.sendMessage(tab.id, { msg: 'ping from popup script', func: 'addRecord' }); // const ret = await chrome.tabs.sendMessage(tab.id, { msg: 'ping from popup script', func: 'addRecord' });
console.log('[Demo] receive', ret); // console.log('[Demo] receive', ret);
}); // });
document.querySelector('#deleteRecord').addEventListener('click', async () => { // document.querySelector('#deleteRecord').addEventListener('click', async () => {
console.log('[Demo] =============================================='); // console.log('[Demo] ==============================================');
console.log('[Demo] Test send message from popup script to content script'); // console.log('[Demo] Test send message from popup script to content script');
const tab = await getActiveTab(); // const tab = await getActiveTab();
const ret = await chrome.tabs.sendMessage(tab.id, { msg: 'ping from popup script', func: 'deleteRecord' }); // const ret = await chrome.tabs.sendMessage(tab.id, { msg: 'ping from popup script', func: 'deleteRecord' });
console.log('[Demo] receive', ret); // console.log('[Demo] receive', ret);
}); // });
var port = null; // var port = null;
function appendMessage(text) { // function appendMessage(text) {
document.getElementById('response').innerHTML += "<p>" + text + "</p>"; // document.getElementById('response').innerHTML += "<p>" + text + "</p>";
} // }
function updateUiState() { // function updateUiState() {
if (port) { // if (port) {
document.getElementById('connect-button').style.display = 'none'; // document.getElementById('connect-button').style.display = 'none';
document.getElementById('input-text').style.display = 'block'; // document.getElementById('input-text').style.display = 'block';
document.getElementById('send-message-button').style.display = 'block'; // document.getElementById('send-message-button').style.display = 'block';
} else { // } else {
document.getElementById('connect-button').style.display = 'block'; // document.getElementById('connect-button').style.display = 'block';
document.getElementById('input-text').style.display = 'none'; // document.getElementById('input-text').style.display = 'none';
document.getElementById('send-message-button').style.display = 'none'; // document.getElementById('send-message-button').style.display = 'none';
} // }
} // }
function sendNativeMessage() { // function sendNativeMessage() {
message = { "text": document.getElementById('input-text').value }; // message = { "text": document.getElementById('input-text').value };
port.postMessage(message); // port.postMessage(message);
appendMessage("Sent message: <b>" + JSON.stringify(message) + "</b>"); // appendMessage("Sent message: <b>" + JSON.stringify(message) + "</b>");
} // }
function onNativeMessage(message) { // function onNativeMessage(message) {
appendMessage("Received message: <b>" + JSON.stringify(message) + "</b>"); // appendMessage("Received message: <b>" + JSON.stringify(message) + "</b>");
} // }
function onDisconnected() { // function onDisconnected() {
appendMessage("Failed to connect: " + chrome.runtime.lastError.message); // appendMessage("Failed to connect: " + chrome.runtime.lastError.message);
port = null; // port = null;
updateUiState(); // updateUiState();
} // }
function connect() { // function connect() {
var hostName = "com.google.chrome.botext"; // var hostName = "com.google.chrome.botext";
appendMessage("Connecting to native messaging host <b>" + hostName + "</b>") // appendMessage("Connecting to native messaging host <b>" + hostName + "</b>")
port = chrome.runtime.connectNative(hostName); // port = chrome.runtime.connectNative(hostName);
port.onMessage.addListener(onNativeMessage); // port.onMessage.addListener(onNativeMessage);
port.onDisconnect.addListener(onDisconnected); // port.onDisconnect.addListener(onDisconnected);
updateUiState(); // updateUiState();
} // }
document.addEventListener('DOMContentLoaded', function () { // document.addEventListener('DOMContentLoaded', function () {
document.getElementById('connect-button').addEventListener( // document.getElementById('connect-button').addEventListener(
'click', connect); // 'click', connect);
document.getElementById('send-message-button').addEventListener( // document.getElementById('send-message-button').addEventListener(
'click', sendNativeMessage); // 'click', sendNativeMessage);
updateUiState(); // updateUiState();
}); // });
+9
View File
@@ -24,6 +24,15 @@
], ],
"run_at": "document_end", "run_at": "document_end",
"world": "MAIN" "world": "MAIN"
},
{
"matches": [
"https://*.jinritemai.com/*"
],
"js": [
"adblock-cs.js"
],
"run_at": "document_end"
} }
], ],
"permissions": [ "permissions": [
+20 -20
View File
@@ -23,30 +23,30 @@
// } // }
// }); // });
let port; // let port;
function sendMessage(message) { // function sendMessage(message) {
if (!port) { // if (!port) {
// this will run the first time to launch the native host, and save the connection to that instance in the port // // this will run the first time to launch the native host, and save the connection to that instance in the port
port = chrome.runtime.connectNative('com.woni.chrome.botext'); // port = chrome.runtime.connectNative('com.woni.chrome.botext');
} // }
// Convert the message to a Uint8Array. // // Convert the message to a Uint8Array.
var encoder = new TextEncoder(); // var encoder = new TextEncoder();
var messageBytes = encoder.encode(message); // var messageBytes = encoder.encode(message);
// Send the message length as a 32-bit integer. // // Send the message length as a 32-bit integer.
var buffer = new ArrayBuffer(4); // var buffer = new ArrayBuffer(4);
var view = new DataView(buffer); // var view = new DataView(buffer);
view.setUint32(0, messageBytes.length, true); // view.setUint32(0, messageBytes.length, true);
port.postMessage(buffer); // port.postMessage(buffer);
// Send the message content. // // Send the message content.
port.postMessage(messageBytes); // port.postMessage(messageBytes);
} // }
sendMessage('message 1'); // sendMessage('message 1');
sendMessage('message 2'); // sendMessage('message 2');
sendMessage('message 3'); // sendMessage('message 3');
+1
View File
@@ -75,6 +75,7 @@ errorCode=$(echo $check_publish_response | jq -r '.errorCode')
# 检查 errorCode 是否为 null # 检查 errorCode 是否为 null
if [ "$errorCode" = "null" ]; then if [ "$errorCode" = "null" ]; then
echo "Submit successful." echo "Submit successful."
rm $file_name
else else
echo "Operation failed. Error code: $errorCode" echo "Operation failed. Error code: $errorCode"
errors=$(echo $check_publish_response | jq -r '.message') errors=$(echo $check_publish_response | jq -r '.message')