streamscreen UI changes

This commit is contained in:
tapframe 2025-07-28 08:21:59 +05:30
parent f43ff3a086
commit 1683c915b9
3 changed files with 24 additions and 11 deletions

@ -1 +1 @@
Subproject commit aefc318d6be92936d4e3512388bffc13d0862eb3 Subproject commit 4584f97614bc10382bd5f37edb762ee73dc7bc1c

View file

@ -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" />
)} )}

View file

@ -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}`