category_link_handler.py (1245B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\ui\link\category_link_handler.py 2 import uuid 3 from achievement_system.client.api.error import DefinitionNotFoundError 4 from achievement_system.client.api.repository import get_repository 5 from achievement_system.client.model.definition.category.identifier import CategoryDefinitionIdentifier 6 from achievement_system.client.ui.link.scheme import LinkScheme 7 from achievement_system.client.ui.window.window import AchievementsWindow 8 9 def register_link_handlers(registry): 10 registry.register(scheme=LinkScheme.ACHIEVEMENT_CATEGORY, handler=handle_link, hint='UI/Achievements/Link/CategoryLinkHint') 11 12 13 def handle_link(url): 14 category_uuid = _parse_url(url) 15 try: 16 category_id = CategoryDefinitionIdentifier(category_uuid) 17 get_repository().definitions.get_category(category_id) 18 AchievementsWindow.open_category(category_id) 19 except DefinitionNotFoundError: 20 AchievementsWindow.message_player_category_not_found() 21 22 23 def _parse_url(url): 24 _, category_uuid = url.split(':') 25 try: 26 category_uuid = uuid.UUID(category_uuid) 27 except ValueError: 28 return None 29 30 return category_uuid