const NATIVE_HOST = "com.downloadmanager.bridge"; const interceptExtensions = [ "exe","msi","zip","rar","7z","tar","gz","iso", "mp4","mkv","avi","mp3","flac","wav", "pdf","docx","xlsx","pptx" ]; chrome.runtime.onInstalled.addListener(() => { chrome.contextMenus.create({ id: "dm-download-link", title: "hDM ile indir", contexts: ["link"] }); chrome.contextMenus.create({ id: "dm-grab-page", title: "Siteyi hDM ile incele", contexts: ["page", "link"] }); }); chrome.downloads.onCreated.addListener((item) => { const ext = item.filename?.split(".").pop()?.toLowerCase() ?? ""; if (!interceptExtensions.includes(ext)) return; chrome.downloads.cancel(item.id, () => { console.log("İndirme yakalandı, bridge'e gönderiliyor:", item.url); chrome.runtime.sendNativeMessage(NATIVE_HOST, { action: "add_download", url: item.url, filename: item.filename, referrer: item.referrer ?? "" }, (response) => { if (chrome.runtime.lastError) { console.error("Bridge Hatası:", chrome.runtime.lastError.message); } else { console.log("Bridge Yanıtı:", response); } }); }); }); chrome.contextMenus.onClicked.addListener((info, tab) => { if (info.menuItemId === "dm-download-link") { chrome.runtime.sendNativeMessage(NATIVE_HOST, { action: "add_download", url: info.linkUrl }, (response) => { if (chrome.runtime.lastError) { console.error("Bridge Hatası:", chrome.runtime.lastError.message); } else { console.log("Bridge Yanıtı:", response); } }); } else if (info.menuItemId === "dm-grab-page") { const url = info.linkUrl || info.pageUrl; chrome.runtime.sendNativeMessage(NATIVE_HOST, { action: "open_grabber", url: url }, (response) => { if (chrome.runtime.lastError) { console.error("Bridge Hatası:", chrome.runtime.lastError.message); } else { console.log("Bridge Yanıtı:", response); } }); } });