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

agencySvc.py (5786B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\agencyNew\agencySvc.py
      2 import eveexceptions
      3 import log
      4 from carbon.common.script.sys.service import Service
      5 from eve.client.script.ui.shared.agencyNew import agencySignals, agencyBookmarks
      6 from eve.client.script.ui.shared.agencyNew.contentGroups import contentGroupProvider
      7 from eve.client.script.ui.shared.agencyNew.contentGroups.contentGroupConst import contentGroupHome, contentGroupMissionAgentsHeraldry, get_content_group_name
      8 from eve.client.script.ui.shared.agencyNew.contentProviders import contentProviders
      9 from eve.client.script.ui.shared.agencyNew.message_bus.agencyMessenger import AgencyMessenger
     10 from eve.client.script.ui.shared.agencyNew.ui.agencyWnd import AgencyWndNew
     11 
     12 class AgencySvc(Service):
     13     __guid__ = 'svc.agencyNew'
     14     __startupdependencies__ = ['agents', 'publicGatewaySvc']
     15     __notifyevents__ = ['OnSessionChanged', 'OnHeraldryAvailabilityChanged']
     16 
     17     def Run(self, *args, **kwargs):
     18         Service.Run(self, *args, **kwargs)
     19         self._ResetVariables()
     20 
     21     def _ResetVariables(self):
     22         self.contentProviders = []
     23         self.contentProvidersByContentGroup = {}
     24 
     25     def OnSessionChanged(self, isRemote, session, change):
     26         if 'charid' in change:
     27             contentGroupProvider.ResetData()
     28             agencyBookmarks.ClearBookmarksVariable()
     29             self._ConstructContentProviders()
     30         agencySignals.on_content_pieces_invalidated()
     31 
     32     def OnHeraldryAvailabilityChanged(self):
     33         self.RefreshAllContent()
     34         if self.IsContentGroupOpened(contentGroupID=contentGroupMissionAgentsHeraldry):
     35             self.OpenWindow(contentGroupID=contentGroupHome)
     36 
     37     def _ConstructContentProviders(self):
     38         for contentProviderCls in contentProviders:
     39             log.LogInfo('Class::cls name = ' + str(contentProviderCls.__name__) + ', group = ' + str(contentProviderCls.contentGroup))
     40             self._ConstructContentProvider(contentProviderCls)
     41 
     42     def _ConstructContentProvider(self, cls):
     43         try:
     44             contentProvider = cls()
     45         except Exception as e:
     46             log.LogInfo('Class::exception = ' + str(e))
     47 
     48         log.LogInfo('Class::contentProviders len before = ' + str(len(self.contentProviders)))
     49         self.contentProviders.append(contentProvider)
     50         self.contentProvidersByContentGroup[contentProvider.contentGroup] = contentProvider
     51         log.LogInfo('Class::contentProviders len after = ' + str(len(self.contentProviders)))
     52         log.LogInfo('Class::cls = ' + str(cls.__name__) + ', contentProvider.contentGroup = ' + str(contentProvider.contentGroup))
     53         return contentProvider
     54 
     55     def GetContentProvider(self, contentGroupID):
     56         return self.contentProvidersByContentGroup.get(contentGroupID, None)
     57 
     58     def RefreshAllContent(self):
     59         self.InvalidateAllContentProviderData()
     60         contentGroupProvider.ResetData()
     61         self._ResetVariables()
     62         self._ConstructContentProviders()
     63         agencySignals.on_content_pieces_invalidated()
     64 
     65     def InvalidateAllContentProviderData(self):
     66         for contentProvider in self.contentProviders:
     67             contentProvider.InvalidateContentPieces()
     68 
     69     def ClearNewMarkerForContent(self, contentPiece):
     70         contentProviders = self.GetContentProvidersByContentType(contentPiece.contentType)
     71         for contentProvider in contentProviders:
     72             contentProvider.ClearNewContent(contentPiece)
     73 
     74     def GetContentProvidersByContentType(self, contentType):
     75         contentProviders = []
     76         for contentProvider in self.contentProviders:
     77             if contentType == contentProvider.contentType:
     78                 contentProviders.append(contentProvider)
     79 
     80         return contentProviders
     81 
     82     def IsCardSelected(self, contentType):
     83         agencyWindow = AgencyWndNew.GetIfOpen()
     84         if agencyWindow is None:
     85             return False
     86         if agencyWindow.IsMinimized():
     87             return False
     88         return agencyWindow.GetSelectedContentType() == contentType
     89 
     90     def OpenWindow(self, contentGroupID = None, itemID = None, *args, **kwargs):
     91         if contentGroupID is not None:
     92             AgencyWndNew.OpenAndShowContentGroup(contentGroupID=contentGroupID, itemID=itemID, *args, **kwargs)
     93         else:
     94             AgencyWndNew.Open()
     95 
     96     def IsContentGroupOpened(self, contentGroupID):
     97         agencyWindow = AgencyWndNew.GetIfOpen()
     98         if agencyWindow:
     99             contentGroup = getattr(agencyWindow, 'contentGroup', None)
    100             if contentGroup:
    101                 currentContentGroupID = getattr(contentGroup, 'contentGroupID', None)
    102                 return currentContentGroupID == contentGroupID
    103         return False
    104 
    105     def IsContentGroupOpenedByName(self, contentGroupName):
    106         agencyWindow = AgencyWndNew.GetIfOpen()
    107         if agencyWindow:
    108             contentGroup = getattr(agencyWindow, 'contentGroup', None)
    109             if contentGroup:
    110                 currentContentGroupID = getattr(contentGroup, 'contentGroupID', None)
    111                 if currentContentGroupID:
    112                     currentContentGroupName = get_content_group_name(currentContentGroupID)
    113                     if currentContentGroupName:
    114                         return currentContentGroupName == contentGroupName
    115         return False
    116 
    117     @eveexceptions.EatsExceptions('protoClientLogs')
    118     def LogHelpVideoLinkCreated(self, video_path):
    119         message_bus = AgencyMessenger(self.publicGatewaySvc)
    120         message_bus.help_video_link_created(video_path)
    121 
    122     @eveexceptions.EatsExceptions('protoClientLogs')
    123     def LogHelpVideoLinkClicked(self, video_path):
    124         message_bus = AgencyMessenger(self.publicGatewaySvc)
    125         message_bus.help_video_link_clicked(video_path)