// This is the background script for the extension console.log('Background script running'); // Listen for messages from the content script chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { if (message.action === 'search') { const query = message.query; const apiUrl = `http://127.0.0.1:5001/api/search?q=${encodeURIComponent(query)}`; // Add the http:// protocol to the URL console.log(`Searching for: ${query}`); fetch(apiUrl) .then(response => response.json()) .then(data => { const results = data.results || []; console.log('Search results:', results); sendResponse({ results }); // Send the results to the popup chrome.runtime.sendMessage({ action: 'displayResults', results }); }) .catch(error => { console.error('Error fetching search results:', error); sendResponse({ results: [] }); }); // Return true to indicate that the response will be sent asynchronously return true; } }); // Periodically check the active tab's URL every 0.5 seconds setInterval(() => { chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => { if (tabs.length > 0) { const activeTab = tabs[0]; const url = new URL(activeTab.url); const hostname = url.hostname; // List of supported sites const supportedSites = [ 'mangadex.org', 'anilist.co', 'kitsu.app', 'myanimelist.net' ]; if (supportedSites.includes(hostname)) { console.log(`Sending addLens message to content script for hostname: ${hostname}`); chrome.tabs.sendMessage(activeTab.id, { action: 'addLens', hostname }); } } }); }, 500);