Update providers and deduplicate streams
This commit is contained in:
@@ -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")),
|
||||
|
||||
Reference in New Issue
Block a user