Files
romm/backend/src/utils/fastapi.py
2023-04-17 09:56:32 +02:00

36 lines
1.2 KiB
Python

from handler import igdbh
from utils import fs
from models.platform import Platform
from models.rom import Rom
def scan_platform(p_slug: str) -> Platform:
"""Get platform details from IGDB if possible
Args:
p_slug: short name of the platform
Returns
Platform object
"""
platform_attrs: dict = igdbh.get_platform_details(p_slug)
platform_attrs['n_roms'] = fs.get_roms(p_slug, True, only_amount=True)
platform = Platform(**platform_attrs)
return platform
def scan_rom(platform: Platform, rom: dict, r_igbd_id_search: str = '', overwrite: bool = False) -> None:
r_igdb_id, file_name_no_tags, r_slug, r_name, summary, url_cover = igdbh.get_rom_details(rom['file_name'], platform.igdb_id, r_igbd_id_search)
path_cover_s, path_cover_l, has_cover = fs.get_cover_details(overwrite, platform.slug, rom['file_name'], url_cover)
rom['file_name_no_tags'] = file_name_no_tags
rom['r_igdb_id'] = r_igdb_id
rom['p_igdb_id'] = platform.igdb_id
rom['r_slug'] = r_slug
rom['p_slug'] = platform.slug
rom['name'] = r_name
rom['summary'] = summary
rom['path_cover_s'] = path_cover_s
rom['path_cover_l'] = path_cover_l
rom['has_cover'] = has_cover
rom = Rom(**rom)
return rom