Auto-select first stream sort fix

This commit is contained in:
tapframe 2026-01-18 10:39:38 +05:30
parent 301560b21a
commit 44f9aa5c35
3 changed files with 8 additions and 5 deletions

1
LibTorrent Submodule

@ -0,0 +1 @@
Subproject commit eb1c71397b8716b97fcd375fd646e96c89632a5e

1
iTorrent Submodule

@ -0,0 +1 @@
Subproject commit c27088b0ac36bf9bb30fae34dc36db1231263bfd

View file

@ -234,25 +234,26 @@ export const useStreamsScreen = () => {
return 0; return 0;
}; };
const allStreams: Array<{ stream: Stream; quality: number; providerPriority: number }> = []; const allStreams: Array<{ stream: Stream; quality: number; providerPriority: number; originalIndex: number }> = [];
Object.entries(streamsData).forEach(([addonId, { streams }]) => { Object.entries(streamsData).forEach(([addonId, { streams }]) => {
const qualityFiltered = filterByQuality(streams); const qualityFiltered = filterByQuality(streams);
const filteredStreams = filterByLanguage(qualityFiltered); const filteredStreams = filterByLanguage(qualityFiltered);
filteredStreams.forEach(stream => { filteredStreams.forEach((stream, index) => {
const quality = getQualityNumeric(stream.name || stream.title); const quality = getQualityNumeric(stream.name || stream.title);
const providerPriority = getProviderPriority(addonId); const providerPriority = getProviderPriority(addonId);
allStreams.push({ stream, quality, providerPriority }); allStreams.push({ stream, quality, providerPriority, originalIndex: index });
}); });
}); });
if (allStreams.length === 0) return null; if (allStreams.length === 0) return null;
// Sort primarily by provider priority, then respect the addon's internal order (originalIndex)
// This ensures if an addon lists 1080p before 4K, we pick 1080p
allStreams.sort((a, b) => { allStreams.sort((a, b) => {
if (a.quality !== b.quality) return b.quality - a.quality;
if (a.providerPriority !== b.providerPriority) return b.providerPriority - a.providerPriority; if (a.providerPriority !== b.providerPriority) return b.providerPriority - a.providerPriority;
return 0; return a.originalIndex - b.originalIndex;
}); });
logger.log( logger.log(