mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-04-21 00:32:04 +00:00
Auto-select first stream sort fix
This commit is contained in:
parent
301560b21a
commit
44f9aa5c35
3 changed files with 8 additions and 5 deletions
1
LibTorrent
Submodule
1
LibTorrent
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit eb1c71397b8716b97fcd375fd646e96c89632a5e
|
||||||
1
iTorrent
Submodule
1
iTorrent
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit c27088b0ac36bf9bb30fae34dc36db1231263bfd
|
||||||
|
|
@ -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(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue