This commit is contained in:
1 parent
7b43d260a2
commit
4357ce4094
9 files changed
+337
-100
No files matched your search
@@ -1147,6 +1147,7 @@ async function scanVideos(tabsToScan) {
|
||||
}
|
||||
|
||||
const items = [...seen.values()];
|
||||
await attachReferers(items);
|
||||
const skipped = scrapeResults.filter(r => r === null).length;
|
||||
|
||||
log('scanVideos complete: scanned=', tabResults.length, 'skipped=', skipped, 'unique items=', items.length);
|
||||
@@ -1157,6 +1158,31 @@ async function scanVideos(tabsToScan) {
|
||||
return { items, scanned: tabResults.length, skipped };
|
||||
}
|
||||
|
||||
/**
|
||||
* Bind the provider referer the SW captured (domain-aware) to each item so it
|
||||
* survives the watch-later flow and covers the sibling edge subdomains a segment
|
||||
* may resolve to. Best-effort: playback still falls back to the SW's live store.
|
||||
*/
|
||||
async function attachReferers(items) {
|
||||
const hostOf = (url) => { try { return new URL(url).host.toLowerCase(); } catch { return ''; } };
|
||||
const hosts = [];
|
||||
for (const it of items) {
|
||||
const host = hostOf(it.hlsManifest || it.src || '');
|
||||
if (host) hosts.push(host);
|
||||
}
|
||||
if (hosts.length === 0) return;
|
||||
let referers = {};
|
||||
try {
|
||||
const resp = await chrome.runtime.sendMessage({ type: 'GOON_GET_REFERERS', hosts });
|
||||
if (resp && resp.referers) referers = resp.referers;
|
||||
} catch { /* referer is best-effort; the SW still resolves it at play time */ }
|
||||
if (!Object.keys(referers).length) return;
|
||||
for (const it of items) {
|
||||
const host = hostOf(it.hlsManifest || it.src || '');
|
||||
if (host && referers[host]) it.referer = referers[host];
|
||||
}
|
||||
}
|
||||
|
||||
/** Store video entries in chrome.storage.local. */
|
||||
async function storeVideos(items) {
|
||||
const stored = items.map(v => ({
|
||||
@@ -1165,6 +1191,7 @@ async function storeVideos(items) {
|
||||
tab: v.tab,
|
||||
mediaType: v.mediaType || 'video',
|
||||
hlsManifest: v.hlsManifest || undefined,
|
||||
referer: v.referer || undefined,
|
||||
}));
|
||||
await chrome.storage.local.set({
|
||||
[STORAGE_KEY]: stored,
|
||||
|
||||
Reference in new issue
Block a user