Update providers and deduplicate streams

This commit is contained in:
Dymas
2026-09-18 21:45:28 +02:00
parent 9c4c6437f4
commit c71f3db6a5
7 changed files with 387 additions and 65 deletions
+7
View File
@@ -96,6 +96,7 @@ async function resolveAll(provider, episodeId, mode, quality) {
if (!sources.length) throw new Error("No episode sources were returned.");
sources.sort((a, b) => qualityScore(b, quality) - qualityScore(a, quality));
const resolvedSources = [];
const resolvedSourceKeys = new Set();
for (const source of sources) {
let resolved = null;
try {
@@ -117,6 +118,12 @@ async function resolveAll(provider, episodeId, mode, quality) {
}
} catch (_) {}
if (!headers.Referer && fallbackReferer) headers.Referer = fallbackReferer;
const headerKey = Object.entries(headers)
.map(([key, value]) => [String(key).toLowerCase(), String(value)])
.sort(([left], [right]) => left.localeCompare(right));
const sourceKey = `${resolved.url}\n${JSON.stringify(headerKey)}`;
if (resolvedSourceKeys.has(sourceKey)) continue;
resolvedSourceKeys.add(sourceKey);
resolvedSources.push({
url: resolved.url,
isM3U8: Boolean(resolved.isM3U8 || String(resolved.url).includes(".m3u8")),