Files
x-poster-client/chrom-ext/background.js
T
2026-05-15 11:27:36 +00:00

60 lines
2.1 KiB
JavaScript

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 });
}
}