From f2e9e51a4528b23a3f29520b9d53e1b2efa89e60 Mon Sep 17 00:00:00 2001 From: mhdzumair Date: Thu, 9 Jan 2025 23:49:23 +0530 Subject: [PATCH] Add route and schema for migrating mediafusion IDs to IMDb IDs --- db/schemas.py | 6 ++++++ scrapers/routes.py | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/db/schemas.py b/db/schemas.py index 798d6a1c..f0594c7e 100644 --- a/db/schemas.py +++ b/db/schemas.py @@ -497,3 +497,9 @@ class CacheSubmitResponse(BaseModel): success: bool message: str + + +class MigrateID(BaseModel): + mediafusion_id: str + imdb_id: str + media_type: Literal["movie", "series"] diff --git a/scrapers/routes.py b/scrapers/routes.py index 53956cb9..0cd04752 100644 --- a/scrapers/routes.py +++ b/scrapers/routes.py @@ -577,3 +577,21 @@ async def block_torrent(block_data: schemas.BlockTorrent): status_code=500, detail=f"Failed to block torrent: {str(e)}" ) return {"status": f"Torrent {block_data.info_hash} has been successfully blocked."} + + +@router.post("/migrate_id", tags=["scraper"]) +async def migrate_id(migrate_data: schemas.MigrateID): + # convert mediafusion id to imdb id + await TorrentStreams.find({"meta_id": migrate_data.mediafusion_id}).update( + {"$set": {"meta_id": migrate_data.imdb_id}} + ) + await MediaFusionMetaData.get_motor_collection().delete_one( + {"_id": migrate_data.mediafusion_id} + ) + if migrate_data.media_type == "series": + await get_series_data_by_id(migrate_data.imdb_id) + else: + await get_movie_data_by_id(migrate_data.imdb_id) + return { + "status": f"Successfully migrated {migrate_data.mediafusion_id} to {migrate_data.imdb_id}." + }