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

data.py (2318B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\systemMenu\feature_preview\data.py
      2 import datetime
      3 import evelink
      4 import localization
      5 import signals
      6 from eve.client.script.ui.comparison import comparisonSettings
      7 from eve.client.script.ui.shared.systemMenu.feature_preview.message_bus.featurePreviewMessenger import FeaturePreviewMessenger
      8 from eveexceptions import EatsExceptions
      9 
     10 class FeaturePreviewData(object):
     11 
     12     def __init__(self, id, title, description, banner, enabled_check, toggle, restart_check = None, prerequisites_check = None, links = None, new_until = None, disable_message = None):
     13         self.id = id
     14         self.title = title
     15         self.description = description
     16         self._enabled_check = enabled_check
     17         self._toggle = toggle
     18         self._restart_check = restart_check
     19         self._prerequisites_check = prerequisites_check
     20         self.banner = banner
     21         self.links = links or []
     22         self.new_until = new_until
     23         self.disable_message = disable_message
     24         self.on_toggle = signals.Signal()
     25 
     26     @property
     27     def is_enabled(self):
     28         return self._enabled_check()
     29 
     30     @property
     31     def is_new(self):
     32         return self.new_until is not None and datetime.datetime.utcnow().date() < self.new_until
     33 
     34     @property
     35     def requires_restart(self):
     36         if self._restart_check is not None:
     37             return self._restart_check()
     38         return False
     39 
     40     def toggle(self):
     41         self._toggle()
     42         self._log_toggled_event()
     43         self.on_toggle()
     44 
     45     def check_prerequisites(self):
     46         if self._prerequisites_check is not None:
     47             failures = self._prerequisites_check()
     48             if isinstance(failures, PrerequisiteFailure):
     49                 return [failures]
     50             else:
     51                 return failures or []
     52 
     53     @EatsExceptions('protoClientLogs')
     54     def _log_toggled_event(self):
     55         message_bus = FeaturePreviewMessenger(sm.GetService('publicGatewaySvc'))
     56         message_bus.feature_toggled(self.id, self.is_enabled)
     57 
     58 
     59 class PrerequisiteFailure(object):
     60 
     61     def __init__(self, title, description):
     62         self.title = title
     63         self.description = description
     64 
     65 
     66 def get_available_feature_previews():
     67     feature_previews = []
     68     return feature_previews