NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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