console.log('[XAI Background] ✅ Service worker started'); // ⚠️ SỬA ENDPOINT & KEY const API_URL = 'https://punch-scientific-electrical-antibodies.trycloudflare.com/content-writer/comment'; const API_KEY = 'YOUR_API_KEY_HERE'; // ===== MENU ===== chrome.runtime.onInstalled.addListener(() => { chrome.contextMenus.create({ id: 'writeComment', title: '✍️ Viết comment', contexts: ['all'], documentUrlPatterns: ['https://x.com/*'] }); }); chrome.contextMenus.onClicked.addListener(async (info, tab) => { if (info.menuItemId !== 'writeComment' || !tab?.id) return; try { await chrome.tabs.sendMessage(tab.id, { action: 'OPEN_FORM' }); } catch (err) { console.error('[XAI Background] ❌ Không gọi được content script:', err.message); } }); // ===== HANDLE GENERATE ===== chrome.runtime.onMessage.addListener((request, sender) => { if (request.action === 'GENERATE_COMMENT') { callYourAPI(request.data, sender.tab.id); return true; } }); async function callYourAPI({ text, lang, tone, angle }, tabId) { const payload = { originalPost: text, language:lang, tone, angle }; console.log('[XAI Background] ⏳ Gọi API:', API_URL); console.log('[XAI Background] 📤 Payload:', JSON.stringify(payload, null, 2)); try { const res = await fetch(API_URL, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${API_KEY}` }, body: JSON.stringify(payload) }); const data = await res.json(); console.log('[XAI Background] 📥 Status:', res.status, '| JSON:', data); if (!res.ok) throw new Error(`HTTP ${res.status}`); const comment = data.comment || data.text || JSON.stringify(data); await chrome.tabs.sendMessage(tabId, { action: 'SHOW_RESULT', comment }); } catch (err) { console.error('[XAI Background] ❌ Lỗi:', err.message); await chrome.tabs.sendMessage(tabId, { action: 'SHOW_ERROR', error: err.message }); } }