surveySvc.py (2584B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\surveySvc.py 2 import blue 3 from carbon.common.script.sys.service import Service 4 from carbonui.uicore import uicore 5 from eve.client.script.ui.login.charSelection.surveyClaimWnd import ClaimSurveyRewardsWnd 6 from eve.common.script.util.urlUtil import get_url_with_token_and_parameters 7 from surveys import GetActiveSurvey, GetExpiredSurveysInGracePeriod 8 from surveys.client import GetSurveyClientAPI 9 from uthread2 import BufferedCall 10 TEST_SURVEY_ID = 1 11 12 class SurveySvc(Service): 13 __guid__ = 'svc.survey' 14 __servicename__ = 'survey' 15 __displayname__ = 'Survey Service' 16 __notifyevents__ = ['OnSurveyRewardsAvailable'] 17 18 def Run(self, memStream = None): 19 super(SurveySvc, self).Run(memStream) 20 self.surveysToRewardFor = set() 21 22 def OnSurveyRewardsAvailable(self, surveyID): 23 self.surveysToRewardFor.add(surveyID) 24 self.ShowClaimWnd() 25 26 @BufferedCall(2000) 27 def ShowClaimWnd(self): 28 surveyIDs = self.surveysToRewardFor.copy() 29 if not surveyIDs: 30 return 31 wnd = ClaimSurveyRewardsWnd.GetIfOpen() 32 if wnd: 33 wnd.Close() 34 wnd = ClaimSurveyRewardsWnd.Open(surveyIDs=surveyIDs) 35 wnd.ShowModal() 36 self.ClaimSurveyRewards() 37 self.surveysToRewardFor.clear() 38 39 def ClaimSurveyRewards(self): 40 sm.RemoteSvc('survey').ClaimSurveyRewards() 41 42 def AccessSurvey(self): 43 surveyURL = get_url_with_token_and_parameters(url=self.GetSurveyURL(), origin='Survey') 44 blue.os.ShellExecute(surveyURL) 45 46 def GetSurveyURL(self): 47 if not session.userid: 48 return 49 survey = GetActiveSurvey() 50 if not survey: 51 return 52 clientAPI = GetSurveyClientAPI(survey) 53 if not clientAPI: 54 return 55 url = survey.GetSurveyURL() 56 return clientAPI.FormatSurveyURL(url) 57 58 def GetActiveSurveyID(self): 59 if not session.userid: 60 return 61 survey = GetActiveSurvey() 62 if not survey: 63 return 64 return self._GetActiveSurveyIDFromServer() 65 66 def PerformSurveyChecks(self): 67 if not GetActiveSurvey() and not GetExpiredSurveysInGracePeriod(): 68 return 69 sm.RemoteSvc('survey').PerformSurveyChecks() 70 71 def _GetActiveSurveyIDFromServer(self): 72 if not GetActiveSurvey(): 73 return 74 try: 75 return sm.RemoteSvc('survey').GetActiveSurveyID() 76 except Exception: 77 self.LogException()