WebExtension/background.js

94 lines
2.3 KiB
JavaScript
Raw Normal View History

2024-03-14 21:11:08 +00:00
let backgroundPage = browser.extension.getBackgroundPage();
2024-03-16 23:40:33 +00:00
2024-03-20 08:05:14 +00:00
var data;
let i=0;
2024-05-08 13:43:29 +00:00
browser.browserAction.onClicked.addListener(function(event1){
browser.tabs.create({"url": "home.html"},function(tab){
browser.runtime.onMessage.addListener(function(request,sender,sendResponse){
handleMessages(request,sender,sendResponse,tab);
2024-03-18 10:17:23 +00:00
});
2024-03-18 20:22:16 +00:00
});
2024-03-18 10:17:23 +00:00
});
2024-03-20 08:05:14 +00:00
function handleMessages(message,sender,sendResponse,tab){
2024-03-19 10:08:22 +00:00
if(message === "Button_clicked")
2024-03-18 20:22:16 +00:00
{
browser.tabs.executeScript(tab.id,{
2024-03-19 09:35:36 +00:00
file:"spawn.js"
2024-03-18 20:22:16 +00:00
});
console.log(tab);
console.log(data);
}
else if(message === "Content_Loaded")
{
console.log("Background: Received Content_Loaded");
if(i===0)
{
browser.tabs.sendMessage(tab.id,"Init");
}
else
{
browser.tabs.sendMessage(tab.id,data.subscriptions[i].url);
}
console.log(i);
2024-03-18 20:22:16 +00:00
}
else if(message === "finished")
{
i++;
console.log("background: received next from spawn.js");
2024-03-20 08:05:14 +00:00
console.log("URL:",data.subscriptions[i].url);
2024-03-18 20:22:16 +00:00
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);
}
2024-03-20 08:05:14 +00:00
else if(message.status == "FileChange")
{
let file = message.file;
const reader = new FileReader();
2024-03-19 10:08:22 +00:00
2024-03-20 08:05:14 +00:00
reader.addEventListener("load",()=>{
2024-03-19 10:08:22 +00:00
2024-03-20 08:05:14 +00:00
data = JSON.parse(reader.result);
console.log(data);
},false);
if(file)
{
reader.readAsText(file);
}
}
}
2024-05-08 13:43:29 +00:00
//----depreacted -vv
2024-03-15 10:03:09 +00:00
function readUrl()
{
let data;
2024-03-18 20:22:16 +00:00
return new Promise(resolve => {
2024-03-15 10:03:09 +00:00
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) => {
2024-05-08 13:43:29 +00:00
for(let i=0;i<i;i++) //wtf why does this work?
2024-03-15 10:03:09 +00:00
{
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);
2024-03-18 20:22:16 +00:00
resolve(data);
2024-03-15 10:03:09 +00:00
})
.catch((error)=> console.error("couldnt fetch data",error));
2024-03-18 20:22:16 +00:00
});
2024-03-15 10:03:09 +00:00
}
2024-03-16 23:40:33 +00:00