chuni: fix frontend 500 if no profile is available

This commit is contained in:
2025-03-25 11:30:44 -04:00
parent 017cdecbaa
commit c1fa528e45
2 changed files with 14 additions and 8 deletions

View File

@ -919,6 +919,8 @@ class FE_System(FE_Base):
serial = serial_dash.replace("-", "") serial = serial_dash.replace("-", "")
cab_id = await self.data.arcade.create_machine(int(shopid), serial, None, game_code if game_code else None) cab_id = await self.data.arcade.create_machine(int(shopid), serial, None, game_code if game_code else None)
if cab_id is None:
return RedirectResponse("/sys/?e=4", 303)
return Response(template.render( return Response(template.render(
title=f"{self.core_config.server.name} | System", title=f"{self.core_config.server.name} | System",

View File

@ -1,4 +1,4 @@
from typing import List from typing import List, Tuple, Dict
from starlette.routing import Route, Mount from starlette.routing import Route, Mount
from starlette.requests import Request from starlette.requests import Request
from starlette.responses import Response, RedirectResponse from starlette.responses import Response, RedirectResponse
@ -123,7 +123,7 @@ class ChuniFrontend(FE_Base):
if usr_sesh.user_id > 0: if usr_sesh.user_id > 0:
versions = await self.data.profile.get_all_profile_versions(usr_sesh.user_id) versions = await self.data.profile.get_all_profile_versions(usr_sesh.user_id)
profile = [] profile = None
if versions: if versions:
# chunithm_version is -1 means it is not initialized yet, select a default version from existing. # chunithm_version is -1 means it is not initialized yet, select a default version from existing.
if usr_sesh.chunithm_version < 0: if usr_sesh.chunithm_version < 0:
@ -350,7 +350,9 @@ class ChuniFrontend(FE_Base):
else: else:
return RedirectResponse("/gate/", 303) return RedirectResponse("/gate/", 303)
async def get_available_map_icons(self, version: int, profile: Row) -> (List[dict], int): async def get_available_map_icons(self, version: int, profile: Row) -> Tuple[List[Dict], int]:
if profile is None:
return ([], 0)
items = dict() items = dict()
rows = await self.data.static.get_map_icons(version) rows = await self.data.static.get_map_icons(version)
if rows is None: if rows is None:
@ -373,7 +375,9 @@ class ChuniFrontend(FE_Base):
return (items, len(rows)) return (items, len(rows))
async def get_available_system_voices(self, version: int, profile: Row) -> (List[dict], int): async def get_available_system_voices(self, version: int, profile: Row) -> Tuple[List[Dict], int]:
if profile is None:
return ([], 0)
items = dict() items = dict()
rows = await self.data.static.get_system_voices(version) rows = await self.data.static.get_system_voices(version)
if rows is None: if rows is None:
@ -396,7 +400,7 @@ class ChuniFrontend(FE_Base):
return (items, len(rows)) return (items, len(rows))
async def get_available_nameplates(self, version: int, profile: Row) -> (List[dict], int): async def get_available_nameplates(self, version: int, profile: Row) -> Tuple[List[Dict], int]:
items = dict() items = dict()
rows = await self.data.static.get_nameplates(version) rows = await self.data.static.get_nameplates(version)
if rows is None: if rows is None:
@ -419,7 +423,7 @@ class ChuniFrontend(FE_Base):
return (items, len(rows)) return (items, len(rows))
async def get_available_trophies(self, version: int, profile: Row) -> (List[dict], int): async def get_available_trophies(self, version: int, profile: Row) -> Tuple[List[Dict], int]:
items = dict() items = dict()
rows = await self.data.static.get_trophies(version) rows = await self.data.static.get_trophies(version)
if rows is None: if rows is None:
@ -442,7 +446,7 @@ class ChuniFrontend(FE_Base):
return (items, len(rows)) return (items, len(rows))
async def get_available_characters(self, version: int, profile: Row) -> (List[dict], int): async def get_available_characters(self, version: int, profile: Row) -> Tuple[List[Dict], int]:
items = dict() items = dict()
rows = await self.data.static.get_characters(version) rows = await self.data.static.get_characters(version)
if rows is None: if rows is None:
@ -465,7 +469,7 @@ class ChuniFrontend(FE_Base):
return (items, len(rows)) return (items, len(rows))
async def get_available_avatar_items(self, version: int, category: AvatarCategory, user_unlocked_items: List[int]) -> (List[dict], int): async def get_available_avatar_items(self, version: int, category: AvatarCategory, user_unlocked_items: List[int]) -> Tuple[List[Dict], int]:
items = dict() items = dict()
rows = await self.data.static.get_avatar_items(version, category.value) rows = await self.data.static.get_avatar_items(version, category.value)
if rows is None: if rows is None: