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)