initial commit
This commit is contained in:
commit
1d973f1be1
6 changed files with 174 additions and 0 deletions
94
background.js
Normal file
94
background.js
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
async function Clicked() {
|
||||
const { token, url } = await browser.storage.local.get(['token', 'url']);
|
||||
console.log(`Token: ${token}, URL: ${url}`);
|
||||
/*
|
||||
let site_url = document.URL.endsWith('/') ?
|
||||
document.URL.slice(0, -1) :
|
||||
document.URL;
|
||||
*/
|
||||
// let mealie = "http://localhost:8080";
|
||||
|
||||
// Pull current site's URL
|
||||
let [tab] = await browser.tabs.query({active: true, currentWindow: true});
|
||||
let site_url = tab.url.endsWith('/') ?
|
||||
tab.url.slice(0, -1) :
|
||||
tab.url;
|
||||
|
||||
let mealie = url;
|
||||
// let group_slug = "" // Change this to your group slug. You can obtain this from your URL after logging-in to Mealie
|
||||
// let use_keywords= "&use_keywords=0" // Optional - use keywords from recipe - update to "" if you don't want that
|
||||
// let edity = "&edit=0" // Optional - keep in edit mode - update to "" if you don't want that
|
||||
|
||||
if (mealie.slice(-1) === "/") {
|
||||
mealie = mealie.slice(0, -1)
|
||||
}
|
||||
let dest = mealie + "/recipe/create/url?recipe_import_url=" + site_url;
|
||||
|
||||
// Send a message to the content script
|
||||
browser.tabs.query({active: true, currentWindow: true}, (tabs) => {
|
||||
console.log("Sending message to content script");
|
||||
browser.tabs.sendMessage(tabs[0].id, `Token: ${token}, URL: ${url}`).then(() => {
|
||||
console.log("Message sent to content script");
|
||||
}).catch((error) => {
|
||||
console.error("Error sending message to content script:", error);
|
||||
});
|
||||
});
|
||||
|
||||
/*
|
||||
// Open a new tab with the destination URL
|
||||
browser.tabs.create({ url: dest }).then(() => {
|
||||
console.log(`New tab opened with URL: ${dest}`);
|
||||
}).catch((error) => {
|
||||
console.error("Error opening new tab:", error);
|
||||
});
|
||||
*/
|
||||
|
||||
// Submit POST request
|
||||
const postUrl = `${mealie}/api/recipes/create/url`;
|
||||
const requestBody = {
|
||||
includeTags: true,
|
||||
url: site_url
|
||||
};
|
||||
|
||||
const response = await fetch(postUrl, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"Authorization": `Bearer ${token}`
|
||||
},
|
||||
body: JSON.stringify(requestBody)
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
const responseData = await response.json();
|
||||
console.log("POST request successful:", responseData);
|
||||
} else {
|
||||
const errorText = await response.text();
|
||||
console.error("POST request failed:", response.statusTextm, errorText);
|
||||
}
|
||||
}
|
||||
|
||||
// background.js
|
||||
|
||||
// Create a context menu item
|
||||
browser.contextMenus.create({
|
||||
id: "clickHere",
|
||||
title: "Add to Mealie",
|
||||
contexts: ["all"],
|
||||
});
|
||||
|
||||
// Add a listener for the context menu item
|
||||
browser.contextMenus.onClicked.addListener((info, tab) => {
|
||||
console.log("click 1");
|
||||
if (info.menuItemId === "clickHere") {
|
||||
console.log("click 2");
|
||||
Clicked();
|
||||
}
|
||||
});
|
||||
|
||||
// Add a listener for the keyboard shortcut
|
||||
browser.commands.onCommand.addListener((command) => {
|
||||
if (command === "activateClick") {
|
||||
Clicked();
|
||||
}
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue