diff --git a/db/models.py b/db/models.py index a6b0f6c..5b92e55 100644 --- a/db/models.py +++ b/db/models.py @@ -100,13 +100,15 @@ class TorrentStreams(Document): announce_list: list[str] languages: list[str] source: str + uploader: Optional[str] = None catalog: list[str] created_at: datetime = Field(default_factory=datetime.now) updated_at: Optional[datetime] = None resolution: Optional[str] = None codec: Optional[str] = None quality: Optional[str] = None - audio: Optional[str] = None + audio: list[str] | str | None = None + hdr: list[str] | None = None seeders: Optional[int] = None torrent_type: Optional[TorrentType] = TorrentType.PUBLIC is_blocked: Optional[bool] = False diff --git a/mediafusion_scrapy/pipelines/store_pipelines.py b/mediafusion_scrapy/pipelines/store_pipelines.py index bfdc08e..70942f8 100644 --- a/mediafusion_scrapy/pipelines/store_pipelines.py +++ b/mediafusion_scrapy/pipelines/store_pipelines.py @@ -99,7 +99,9 @@ class EventSeriesStorePipeline(QueueBasedPipeline): codec=item.get("codec"), quality=item.get("quality"), audio=item.get("audio"), + hdr=item.get("hdr"), source=item["source"], + uploader=item.get("uploader"), catalog=item["catalog"], created_at=item["created_at"], episode_files=item.get("episodes"), diff --git a/scrapers/bt4g.py b/scrapers/bt4g.py index 315a090..1190e55 100644 --- a/scrapers/bt4g.py +++ b/scrapers/bt4g.py @@ -430,6 +430,7 @@ class BT4GScraper(BaseScraper): codec=parsed_data.get("codec"), quality=parsed_data.get("quality"), audio=parsed_data.get("audio"), + hdr=parsed_data.get("hdr"), source="BT4G", catalog=["bt4g_streams"], seeders=seeders, diff --git a/scrapers/stremio_addons.py b/scrapers/stremio_addons.py index 31027e0..733f50a 100644 --- a/scrapers/stremio_addons.py +++ b/scrapers/stremio_addons.py @@ -136,7 +136,9 @@ class StremioScraper(BaseScraper): codec=parsed_data["metadata"].get("codec"), quality=parsed_data["metadata"].get("quality"), audio=parsed_data["metadata"].get("audio"), + hdr=parsed_data["metadata"].get("hdr"), source=parsed_data["source"], + uploader=parsed_data.get("uploader"), catalog=[f"{self.cache_key_prefix}_streams"], seeders=parsed_data["seeders"], announce_list=[ diff --git a/scrapers/zilean.py b/scrapers/zilean.py index 4d93696..40daa9e 100644 --- a/scrapers/zilean.py +++ b/scrapers/zilean.py @@ -154,6 +154,7 @@ class ZileanScraper(BaseScraper): codec=torrent_data.get("codec"), quality=torrent_data.get("quality"), audio=torrent_data.get("audio"), + hdr=torrent_data.get("hdr"), source="Zilean DMM", catalog=["zilean_dmm_streams"], ) diff --git a/utils/parser.py b/utils/parser.py index 7eadba6..f175ae2 100644 --- a/utils/parser.py +++ b/utils/parser.py @@ -277,7 +277,8 @@ async def parse_stream_data( [ f"📺 {stream_data.quality}" if stream_data.quality else None, f"🎞️ {stream_data.codec}" if stream_data.codec else None, - f"🎵 {stream_data.audio}" if stream_data.audio else None, + f"🎨 {'|'.join(stream_data.hdr)}" if stream_data.hdr else None, + f"🎵 {'|'.join(stream_data.audio)}" if stream_data.audio else None, ], ) ) @@ -298,6 +299,8 @@ async def parse_stream_data( f"🌐 {' + '.join(stream_data.languages)}" if stream_data.languages else None ) source_info = f"🔗 {stream_data.source}" + if stream_data.uploader: + source_info += f" 🧑‍💻 {stream_data.uploader}" description = "\n".join( filter(