mirror of
https://github.com/rommapp/romm.git
synced 2026-02-18 00:27:41 +01:00
110 lines
3.7 KiB
Python
110 lines
3.7 KiB
Python
"""Startup script to run tasks before the main application is started."""
|
|
|
|
import asyncio
|
|
|
|
import sentry_sdk
|
|
from opentelemetry import trace
|
|
|
|
from config import (
|
|
ENABLE_SCHEDULED_CONVERT_IMAGES_TO_WEBP,
|
|
ENABLE_SCHEDULED_RESCAN,
|
|
ENABLE_SCHEDULED_RETROACHIEVEMENTS_PROGRESS_SYNC,
|
|
ENABLE_SCHEDULED_UPDATE_LAUNCHBOX_METADATA,
|
|
ENABLE_SCHEDULED_UPDATE_SWITCH_TITLEDB,
|
|
SENTRY_DSN,
|
|
)
|
|
from handler.metadata.base_handler import (
|
|
MAME_XML_KEY,
|
|
METADATA_FIXTURES_DIR,
|
|
PS1_SERIAL_INDEX_KEY,
|
|
PS2_OPL_KEY,
|
|
PS2_SERIAL_INDEX_KEY,
|
|
PSP_SERIAL_INDEX_KEY,
|
|
SCUMMVM_INDEX_KEY,
|
|
)
|
|
from handler.redis_handler import async_cache
|
|
from logger.logger import log
|
|
from models.firmware import FIRMWARE_FIXTURES_DIR, KNOWN_BIOS_KEY
|
|
from tasks.scheduled.cleanup_netplay import cleanup_netplay_task
|
|
from tasks.scheduled.convert_images_to_webp import convert_images_to_webp_task
|
|
from tasks.scheduled.scan_library import scan_library_task
|
|
from tasks.scheduled.sync_retroachievements_progress import (
|
|
sync_retroachievements_progress_task,
|
|
)
|
|
from tasks.scheduled.update_launchbox_metadata import update_launchbox_metadata_task
|
|
from tasks.scheduled.update_switch_titledb import update_switch_titledb_task
|
|
from utils import get_version
|
|
from utils.cache import conditionally_set_cache
|
|
from utils.context import initialize_context
|
|
|
|
tracer = trace.get_tracer(__name__)
|
|
|
|
|
|
@tracer.start_as_current_span("main")
|
|
async def main() -> None:
|
|
"""Run startup tasks."""
|
|
|
|
async with initialize_context():
|
|
log.info("Running startup tasks")
|
|
|
|
# Initialize scheduled tasks
|
|
cleanup_netplay_task.init()
|
|
|
|
if ENABLE_SCHEDULED_RESCAN:
|
|
log.info("Starting scheduled rescan")
|
|
scan_library_task.init()
|
|
if ENABLE_SCHEDULED_UPDATE_SWITCH_TITLEDB:
|
|
log.info("Starting scheduled update switch titledb")
|
|
update_switch_titledb_task.init()
|
|
if ENABLE_SCHEDULED_UPDATE_LAUNCHBOX_METADATA:
|
|
log.info("Starting scheduled update launchbox metadata")
|
|
update_launchbox_metadata_task.init()
|
|
if ENABLE_SCHEDULED_CONVERT_IMAGES_TO_WEBP:
|
|
log.info("Starting scheduled convert images to webp")
|
|
convert_images_to_webp_task.init()
|
|
if ENABLE_SCHEDULED_RETROACHIEVEMENTS_PROGRESS_SYNC:
|
|
log.info("Starting scheduled RetroAchievements progress sync")
|
|
sync_retroachievements_progress_task.init()
|
|
|
|
log.info("Initializing cache with fixtures data")
|
|
await conditionally_set_cache(
|
|
async_cache, MAME_XML_KEY, METADATA_FIXTURES_DIR / "mame_index.json"
|
|
)
|
|
await conditionally_set_cache(
|
|
async_cache,
|
|
SCUMMVM_INDEX_KEY,
|
|
METADATA_FIXTURES_DIR / "scummvm_index.json",
|
|
)
|
|
await conditionally_set_cache(
|
|
async_cache, PS2_OPL_KEY, METADATA_FIXTURES_DIR / "ps2_opl_index.json"
|
|
)
|
|
await conditionally_set_cache(
|
|
async_cache,
|
|
PS1_SERIAL_INDEX_KEY,
|
|
METADATA_FIXTURES_DIR / "ps1_serial_index.json",
|
|
)
|
|
await conditionally_set_cache(
|
|
async_cache,
|
|
PS2_SERIAL_INDEX_KEY,
|
|
METADATA_FIXTURES_DIR / "ps2_serial_index.json",
|
|
)
|
|
await conditionally_set_cache(
|
|
async_cache,
|
|
PSP_SERIAL_INDEX_KEY,
|
|
METADATA_FIXTURES_DIR / "psp_serial_index.json",
|
|
)
|
|
await conditionally_set_cache(
|
|
async_cache, KNOWN_BIOS_KEY, FIRMWARE_FIXTURES_DIR / "known_bios_files.json"
|
|
)
|
|
|
|
log.info("Startup tasks completed")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sentry_sdk.init(
|
|
dsn=SENTRY_DSN,
|
|
release=f"romm@{get_version()}",
|
|
)
|
|
|
|
asyncio.run(main())
|