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

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()