From 901ead6691bc5c27aa326de7d3403d1cdf273a81 Mon Sep 17 00:00:00 2001 From: Jonathan Wyss Date: Mon, 18 Mar 2024 21:22:16 +0100 Subject: [PATCH] inporter worksvim background.js ! --- background.js | 87 ++++++++++++++++++++++++++++++++++----------------- manifest.json | 5 ++- spawn.js | 29 ++++++++++++----- 3 files changed, 82 insertions(+), 39 deletions(-) diff --git a/background.js b/background.js index 1b95131..77aa1d6 100644 --- a/background.js +++ b/background.js @@ -1,42 +1,70 @@ let backgroundPage = browser.extension.getBackgroundPage(); //let tab; -const pass_data = {urls:"urls",tab:"tab_id"} +const pass_data = {data:"urls",tab:"tab_id"} +let data; + -readUrl(); //on addon click load extension page // -function Setup(data) -{ - let i=0; - browser.browserAction.onClicked.addListener(function(event){ - create(data); - }); +let i=0; -} -var create = (function(data){ - let i=0; + + +data = readUrl() +.then(function(data){ + browser.browserAction.onClicked.addListener(function(event1){ browser.tabs.create({"url": "home.html"},function(tab){ - browser.runtime.onMessage.addListener((message)=>{ - if(message === "Button_clicked") - { - console.log("pass tab data to run, in promise"); - console.log(tab); - } - else if(message === "Content_Loaded") - { - console.log("Received Content_Loaded"); - nextUrl(data,tab,i); - } + browser.runtime.onMessage.addListener(function(request,sender,sendResponse){ + handleMessages(request,sender,sendResponse,tab,data); }); + + }); + + }); }); -function failure(value) -{ - console.log("tabs.create returned a failure"); +function handleMessages(message,sender,sendResponse,tab,data){ + + if(message === "Button_clicked") + { + browser.tabs.executeScript(tab.id,{ + file:"spawn.js" + }); + console.log("pass tab data to run, in promise"); + console.log(tab); + console.log(data); + //nextUrl(data,tab,i); + } + else if(message === "Content_Loaded") + { + console.log("Background: Received Content_Loaded"); + // nextUrl(data,tab,i); + if(i===0) + { + browser.tabs.sendMessage(tab.id,"Init"); + } + else + { + browser.tabs.sendMessage(tab.id,data.subscriptions[i].url); + } + } + else if(message === "finished") + { + i++; + console.log("background: received next from spawn.js"); + browser.tabs.update(tab.id,{url : data.subscriptions[i].url}); + browser.tabs.executeScript(tab.id,{ + file:"spawn.js" + }); + + browser.tabs.sendMessage(tab.id,data.subscriptions[i].url); + } } + +///////////////////// async function nextUrl(data,tab,i) { let count_urls = data.subscriptions.length; @@ -44,7 +72,8 @@ async function nextUrl(data,tab,i) await sendMessageToContent(data,tab,i); code1 = `window.location.replace("${data.subscriptions[i].url}");` console.log(code1); - await browser.tabs.update(tab.tabid,{url : data.subscriptions[i].url}); + console.log(tab); + await browser.tabs.update(tab.id,{url : data.subscriptions[i].url}); await waitforTab(tab,data.subscriptions[i].url); console.log(tab); console.log("iterating"); @@ -75,7 +104,6 @@ function sendMessageToContent(data,tab,i) }) .then(function() { console.log("background.js: received start signal..."); - console.log("backgroundscript received start signal from contentscript"); if(i == 0) { browser.tabs.sendMessage(tab.id,{state: "Init",url: data.subscriptions[0].url}) @@ -99,6 +127,7 @@ function sendMessageToContent(data,tab,i) function readUrl() { let data; + return new Promise(resolve => { const filePath = "newpipe_subscriptions_202403101004.json"; var localURL = browser.extension.getURL(filePath); fetch(localURL).then((res) => { @@ -119,10 +148,10 @@ function readUrl() catch(e) {InsertError(e.description);} } console.log(data); - Setup(data); + resolve(data); }) .catch((error)=> console.error("couldnt fetch data",error)); - + }); } diff --git a/manifest.json b/manifest.json index 7479a21..7cc2b96 100644 --- a/manifest.json +++ b/manifest.json @@ -23,9 +23,8 @@ "matches": [ "" ], - "js": [ - "spawn.js" - ] + "js": ["spawn.js"], + "run_at":"document_end" } ] } diff --git a/spawn.js b/spawn.js index 6ba1b35..07f570a 100644 --- a/spawn.js +++ b/spawn.js @@ -4,25 +4,40 @@ // -document.addEventListener("DOMContentLoaded",function(){ +//document.addEventListener("DOMContentLoaded",function(){ browser.runtime.sendMessage("Content_Loaded"); -}); - browser.runtime.onMessage.addListener(worker); + +//}); + + + // return Promise.resolve(true); /*.then(function(){ window.location.replace(url); });*/ -function worker(message,sender,sendResponse) +function test(msg) +{ + console.log(`Spawn: received message:${msg}`); + +} + +function worker(message) { console.log("inside handler"); - if(message.state != "Init")//on init only load page + console.log(message); + +setTimeout(() => { + if(message != "Init")//on init only load page { document.getElementsByClassName("yt-spec-button-shape-next yt-spec-button-shape-next--filled yt-spec-button-shape-next--mono yt-spec-button-shape-next--size-m")[0].click(); console.log(message); + } - let url = message.url; + + browser.runtime.sendMessage("finished"); +},5000); + let url = message; console.log(url); - sendResponse(true); }