ship_skin_design_link_handler.py (1597B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\cosmetics\client\ships\link\ship_skin_design_link_handler.py 2 import uuid 3 from cosmetics.client.ships.link.scheme import LinkScheme 4 from cosmetics.client.shipSkinDesignSvc import get_ship_skin_design_svc 5 from cosmetics.client.ships.skins.errors import SkinDesignSharingError 6 from player_messaging.client.ui_message import message_player 7 from eve.client.script.ui.cosmetics.ship.shipSKINRWindow import ShipSKINRWindow 8 from localization import GetByLabel 9 10 def register_link_handlers(registry): 11 registry.register(scheme=LinkScheme.SHIP_SKIN_DESIGN, handler=handle_link, hint='UI/Personalization/ShipSkins/LinkHint') 12 13 14 def handle_link(url): 15 design_data = None 16 error = None 17 character_id, design_id = _parse_url(url) 18 design_data, error = get_ship_skin_design_svc().get_shared_design(character_id, design_id, force_refresh=True) 19 if design_data is not None: 20 ShipSKINRWindow.open_external_design(character_id, design_id) 21 if design_data is None: 22 if error == SkinDesignSharingError.DESIGN_NOT_FOUND: 23 message_player(GetByLabel('UI/Personalization/ShipSkins/DesignLinkNotFound')) 24 else: 25 message_player(GetByLabel('UI/Personalization/ShipSkins/DesignLinkFailed')) 26 27 28 def _parse_url(url): 29 _, identifiers = url.split(':') 30 character_id, design_id = identifiers.split('/') 31 character_id = int(character_id) 32 try: 33 design_id = uuid.UUID(design_id) 34 except ValueError: 35 return (None, None) 36 37 return (character_id, design_id)