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

link.py (1454B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\careerPortal\link\link.py
      2 import uuid
      3 import evelink.client
      4 SCHEME_CAREER_PROGRAM_NODE = 'careerProgramNode'
      5 
      6 def register_link_handlers(registry):
      7     registry.register(SCHEME_CAREER_PROGRAM_NODE, handle_node_link, hint='UI/CareerPortal/NodeLinkHint')
      8 
      9 
     10 def handle_node_link(url):
     11     careerID, activityID, goalID = parse_node_url(url)
     12     from eve.client.script.ui.shared.careerPortal.careerPortalWnd import CareerPortalDockablePanel
     13     wnd = CareerPortalDockablePanel.GetIfOpen()
     14     if wnd and not wnd.destroyed:
     15         wnd.Maximize()
     16     else:
     17         wnd = CareerPortalDockablePanel.Open()
     18     if wnd:
     19         wnd.navigate_to_node(careerID, activityID, goalID)
     20 
     21 
     22 def parse_node_url(url):
     23     _, careerID, activityID, goalID = url.split(':')
     24     try:
     25         careerID = int(careerID)
     26     except ValueError:
     27         careerID = None
     28 
     29     try:
     30         activityID = int(activityID)
     31     except ValueError:
     32         activityID = None
     33 
     34     try:
     35         goalID = uuid.UUID(goalID)
     36     except ValueError:
     37         goalID = None
     38 
     39     return (careerID, activityID, goalID)
     40 
     41 
     42 def format_node_url(careerID, activityID, goalID):
     43     return u'{}:{}:{}:{}'.format(SCHEME_CAREER_PROGRAM_NODE, careerID, activityID, goalID)
     44 
     45 
     46 def node_link(careerID, activityID, goalID, name):
     47     return evelink.Link(url=format_node_url(careerID, activityID, goalID), text=name)