mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-04-21 00:32:04 +00:00
streamscreen UI changes
This commit is contained in:
parent
f43ff3a086
commit
1683c915b9
3 changed files with 24 additions and 11 deletions
|
|
@ -1 +1 @@
|
||||||
Subproject commit aefc318d6be92936d4e3512388bffc13d0862eb3
|
Subproject commit 4584f97614bc10382bd5f37edb762ee73dc7bc1c
|
||||||
|
|
@ -87,13 +87,16 @@ const StreamCard = memo(({ stream, onPress, index, isLoading, statusMessage, the
|
||||||
sizeDisplay = formatSize(stream.size);
|
sizeDisplay = formatSize(stream.size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Extract quality for badge display
|
||||||
|
const basicQuality = title.match(/(\d+)p/)?.[1] || null;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
quality: title.match(/(\d+)p/)?.[1] || null,
|
quality: basicQuality,
|
||||||
isHDR: title.toLowerCase().includes('hdr'),
|
isHDR: title.toLowerCase().includes('hdr'),
|
||||||
isDolby: title.toLowerCase().includes('dolby') || title.includes('DV'),
|
isDolby: title.toLowerCase().includes('dolby') || title.includes('DV'),
|
||||||
size: sizeDisplay,
|
size: sizeDisplay,
|
||||||
isDebrid: stream.behaviorHints?.cached,
|
isDebrid: stream.behaviorHints?.cached,
|
||||||
displayName: name || title || 'Unnamed Stream',
|
displayName: name || 'Unnamed Stream',
|
||||||
subTitle: title && title !== name ? title : null
|
subTitle: title && title !== name ? title : null
|
||||||
};
|
};
|
||||||
}, [stream.name, stream.title, stream.behaviorHints, stream.size]);
|
}, [stream.name, stream.title, stream.behaviorHints, stream.size]);
|
||||||
|
|
@ -140,10 +143,6 @@ const StreamCard = memo(({ stream, onPress, index, isLoading, statusMessage, the
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
<View style={styles.streamMetaRow}>
|
<View style={styles.streamMetaRow}>
|
||||||
{streamInfo.quality && streamInfo.quality >= "720" && (
|
|
||||||
<QualityBadge type="HD" />
|
|
||||||
)}
|
|
||||||
|
|
||||||
{streamInfo.isDolby && (
|
{streamInfo.isDolby && (
|
||||||
<QualityBadge type="VISION" />
|
<QualityBadge type="VISION" />
|
||||||
)}
|
)}
|
||||||
|
|
|
||||||
|
|
@ -437,15 +437,29 @@ class LocalScraperService {
|
||||||
}
|
}
|
||||||
|
|
||||||
return results.map((result, index) => {
|
return results.map((result, index) => {
|
||||||
|
// Build title with quality information for UI compatibility
|
||||||
|
let title = result.title || result.name || `${scraper.name} Stream ${index + 1}`;
|
||||||
|
|
||||||
|
// Add quality to title if available and not already present
|
||||||
|
if (result.quality && !title.includes(result.quality)) {
|
||||||
|
title = `${title} ${result.quality}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build name with quality information
|
||||||
|
let streamName = result.name || `${scraper.name}`;
|
||||||
|
if (result.quality && !streamName.includes(result.quality)) {
|
||||||
|
streamName = `${streamName} - ${result.quality}`;
|
||||||
|
}
|
||||||
|
|
||||||
const stream: Stream = {
|
const stream: Stream = {
|
||||||
// Preserve scraper's name and title if provided, otherwise use fallbacks
|
// Include quality in name field for proper display
|
||||||
name: result.name || result.title || `${scraper.name} Stream ${index + 1}`,
|
name: streamName,
|
||||||
title: result.title || result.name || `${scraper.name} Stream ${index + 1}`,
|
title: title,
|
||||||
url: result.url,
|
url: result.url,
|
||||||
addon: scraper.id,
|
addon: scraper.id,
|
||||||
addonId: scraper.id,
|
addonId: scraper.id,
|
||||||
addonName: scraper.name,
|
addonName: scraper.name,
|
||||||
description: result.quality ? `${result.quality}${result.size ? ` • ${result.size}` : ''}` : undefined,
|
description: result.size ? `${result.size}` : undefined,
|
||||||
size: result.size ? this.parseSize(result.size) : undefined,
|
size: result.size ? this.parseSize(result.size) : undefined,
|
||||||
behaviorHints: {
|
behaviorHints: {
|
||||||
bingeGroup: `local-scraper-${scraper.id}`
|
bingeGroup: `local-scraper-${scraper.id}`
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue