WebExtension/background.js

83 lines
1.8 KiB
JavaScript

let backgroundPage = browser.extension.getBackgroundPage();
//let tab;
const pass_data = {urls:"urls",tab:"tab_id"}
readUrl();
//on addon click load extension page
//
function Setup(data)
{
let promise;
browser.browserAction.onClicked.addListener(() => {
promise = browser.tabs.create({"url": "home.html"},function(tab){
browser.runtime.onMessage.addListener(()=>{
run(data,tab);
console.log("pass tab data to run, in promise");
console.log(tab);
});
});
});
}
function failure(value)
{
console.log("tabs.create returned a failure");
}
function run(data,tab)
{
let i2=0;
// injectScript(tab);
let promise = browser.tabs.executeScript(tab.id,{
file:"spawn.js"
});
promise.then(function() {
console.log("bbackground.js: received start signal...");
if(i2 == 0)
{
browser.tabs.sendMessage(tab.id,{state: "Init",url: data.subscriptions[0].url});
}
else
{
browser.tabs.sendMessage(tab.id,{state: i2,url: data.subscriptions[i2].url});
}
i2++;
});
}
function readUrl()
{
let data;
const filePath = "newpipe_subscriptions_202403101004.json";
var localURL = browser.extension.getURL(filePath);
fetch(localURL).then((res) => {
if(!res.ok){
throw new Error
(`res error`);
}
return res.json();
})
.then((data) => {
for(let i=0;i<i;i++) //i in data.subscriptions)
{
let open=null;
console.log(data.subscriptions[i].url);
try{
open = alert(data.subscriptions[i].url,"_blank");
}
catch(e) {InsertError(e.description);}
}
console.log(data);
Setup(data);
})
.catch((error)=> console.error("couldnt fetch data",error));
}