diff --git a/local-scrapers-repo b/local-scrapers-repo index aefc318d..4584f976 160000 --- a/local-scrapers-repo +++ b/local-scrapers-repo @@ -1 +1 @@ -Subproject commit aefc318d6be92936d4e3512388bffc13d0862eb3 +Subproject commit 4584f97614bc10382bd5f37edb762ee73dc7bc1c diff --git a/src/screens/StreamsScreen.tsx b/src/screens/StreamsScreen.tsx index f6af6e2e..a7da7a3a 100644 --- a/src/screens/StreamsScreen.tsx +++ b/src/screens/StreamsScreen.tsx @@ -87,13 +87,16 @@ const StreamCard = memo(({ stream, onPress, index, isLoading, statusMessage, the sizeDisplay = formatSize(stream.size); } + // Extract quality for badge display + const basicQuality = title.match(/(\d+)p/)?.[1] || null; + return { - quality: title.match(/(\d+)p/)?.[1] || null, + quality: basicQuality, isHDR: title.toLowerCase().includes('hdr'), isDolby: title.toLowerCase().includes('dolby') || title.includes('DV'), size: sizeDisplay, isDebrid: stream.behaviorHints?.cached, - displayName: name || title || 'Unnamed Stream', + displayName: name || 'Unnamed Stream', subTitle: title && title !== name ? title : null }; }, [stream.name, stream.title, stream.behaviorHints, stream.size]); @@ -140,10 +143,6 @@ const StreamCard = memo(({ stream, onPress, index, isLoading, statusMessage, the - {streamInfo.quality && streamInfo.quality >= "720" && ( - - )} - {streamInfo.isDolby && ( )} diff --git a/src/services/localScraperService.ts b/src/services/localScraperService.ts index 9c89af52..ffec8fde 100644 --- a/src/services/localScraperService.ts +++ b/src/services/localScraperService.ts @@ -437,15 +437,29 @@ class LocalScraperService { } 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 = { - // Preserve scraper's name and title if provided, otherwise use fallbacks - name: result.name || result.title || `${scraper.name} Stream ${index + 1}`, - title: result.title || result.name || `${scraper.name} Stream ${index + 1}`, + // Include quality in name field for proper display + name: streamName, + title: title, url: result.url, addon: scraper.id, addonId: scraper.id, 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, behaviorHints: { bingeGroup: `local-scraper-${scraper.id}`