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

activity.py (3565B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\activities\activity.py
      2 import time
      3 import localization
      4 from eve.client.script.ui.shared.activities.activitiesUIConst import SHOW_LEFT_TIME_TEXT_SECONDS, ONE_DAY, ONE_HOUR, LABEL_LEFT_DAYS, LABEL_LEFT_HOURS, LABEL_LESS_HOURS
      5 from eve.client.script.ui.shared.activities.bannerEvent import DoAction
      6 from localization import GetByMessageID
      7 import logging
      8 logger = logging.getLogger(__file__)
      9 
     10 class ReleasedActivity(object):
     11     datetime_format = '%Y-%m-%d %H:%M'
     12 
     13     def __init__(self, activityID, fsdData):
     14         self.activityID = activityID
     15         self.fsdData = fsdData
     16         self.isForceShown = False
     17         self.isUnseen = True
     18 
     19     def SetSeen(self):
     20         self.isUnseen = False
     21 
     22     def IsUnseen(self):
     23         return self.isUnseen
     24 
     25     def GetID(self):
     26         return self.activityID
     27 
     28     def GetName(self):
     29         return GetByMessageID(self.fsdData.nameID)
     30 
     31     def GetIntroduce(self):
     32         return GetByMessageID(self.fsdData.introduceID)
     33 
     34     def GetInfo(self):
     35         if self.fsdData.infoID:
     36             return GetByMessageID(self.fsdData.infoID)
     37 
     38     def GetTexturePath(self):
     39         return self.fsdData.bannerPath
     40 
     41     def GetIconPath(self):
     42         return self.fsdData.iconPath
     43 
     44     def GetStartDatetime(self):
     45         return self.fsdData.startDatetime
     46 
     47     def GetEndDatetime(self):
     48         return self.fsdData.endDatetime
     49 
     50     def GetIntegerParameter(self):
     51         return self.fsdData.integerParameter
     52 
     53     def GetUrl(self):
     54         return self.fsdData.url
     55 
     56     def GetIntegerListParameter(self):
     57         return self.fsdData.integerListParameter
     58 
     59     def GetRemainingSeconds(self):
     60         endTime = time.mktime(time.strptime(self.GetEndDatetime(), self.datetime_format))
     61         nowTime = time.time()
     62         return int(endTime - nowTime)
     63 
     64     def _CalcDays(self, leftTime):
     65         days = localization.formatters.FormatNumeric(leftTime // ONE_DAY)
     66         return localization.GetByLabel(LABEL_LEFT_DAYS, days=days)
     67 
     68     def _CalcHours(self, leftTime):
     69         hours = localization.formatters.FormatNumeric(leftTime // ONE_HOUR)
     70         return localization.GetByLabel(LABEL_LEFT_HOURS, hours=hours)
     71 
     72     def _CalcLess(self, _):
     73         hours = localization.formatters.FormatNumeric(1)
     74         return localization.GetByLabel(LABEL_LESS_HOURS, hours=hours)
     75 
     76     def _GetShowedText(self, leftTime):
     77         if leftTime >= ONE_DAY:
     78             text = self._CalcDays(leftTime)
     79         elif leftTime >= ONE_HOUR:
     80             text = self._CalcHours(leftTime)
     81         else:
     82             text = self._CalcLess(leftTime)
     83         return text
     84 
     85     def IsCountdownVisible(self):
     86         leftTime = self.GetRemainingSeconds()
     87         return leftTime <= SHOW_LEFT_TIME_TEXT_SECONDS
     88 
     89     def GetTimeLeftText(self):
     90         leftTime = self.GetRemainingSeconds()
     91         return self.IsCountdownVisible() and self._GetShowedText(leftTime) or None
     92 
     93     def IsVideo(self):
     94         bannerPath = self.GetTexturePath()
     95         if bannerPath.find('.') < 0:
     96             return False
     97         return bannerPath.split('.')[-1].lower() == 'webm'
     98 
     99     def IsShown(self):
    100         startTime = time.mktime(time.strptime(self.GetStartDatetime(), self.datetime_format))
    101         endTime = time.mktime(time.strptime(self.GetEndDatetime(), self.datetime_format))
    102         nowTime = time.time()
    103         return startTime <= nowTime <= endTime
    104 
    105     def GetEvent(self):
    106         return self.fsdData.bannerEvent
    107 
    108     def ExecuteCallToAction(self):
    109         return DoAction(self)