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

repository.py (3325B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\auraguidance\client\repository.py
      2 from __future__ import print_function
      3 from auraguidance.client import aura_guidance_signals
      4 from auraguidance.client.errors import AuraGuidanceServiceUnavailableError
      5 from auraguidance.client.logger import logger
      6 from auraguidance.client.messenger import AuraGuidanceMessenger
      7 from clientsettings.setting import CharSettingBool
      8 aura_guidance_intro = CharSettingBool('agIntro', True)
      9 
     10 class AuraGuidanceRepository(object):
     11 
     12     def __init__(self, public_gateway, get_aura_guidance_enabled, get_a_a_test_enabled, get_added_to_segment):
     13         self._public_gateway = public_gateway
     14         self._messenger = AuraGuidanceMessenger(self._public_gateway)
     15         self._get_aura_guidance_enabled = get_aura_guidance_enabled
     16         self._get_a_a_test_enabled = get_a_a_test_enabled
     17         self._get_added_to_segment = get_added_to_segment
     18         self._aura_guidance_enabled = None
     19         self._a_a_test_enabled = None
     20         self._added_to_segment = None
     21         self.connect_signals()
     22 
     23     def __del__(self):
     24         self.disconnect_signals()
     25 
     26     def connect_signals(self):
     27         aura_guidance_signals.on_availability_changed.connect(self.cache_aura_guidance_enabled)
     28         aura_guidance_signals.on_a_a_test_availability_changed.connect(self.cache_a_a_test_flag)
     29         self.is_a_a_test_enabled()
     30         aura_guidance_signals.on_added_to_segment.connect(self.cache_added_to_segment)
     31 
     32     def disconnect_signals(self):
     33         aura_guidance_signals.on_availability_changed.disconnect(self.cache_aura_guidance_enabled)
     34         aura_guidance_signals.on_a_a_test_availability_changed.disconnect(self.cache_a_a_test_flag)
     35         aura_guidance_signals.on_added_to_segment.disconnect(self.cache_added_to_segment)
     36 
     37     def is_enabled(self):
     38         if self._aura_guidance_enabled is None:
     39             self._aura_guidance_enabled = self._get_aura_guidance_enabled()
     40         return self._aura_guidance_enabled
     41 
     42     def is_a_a_test_enabled(self):
     43         if self._a_a_test_enabled is None:
     44             self._a_a_test_enabled = self._get_a_a_test_enabled()
     45         return self._a_a_test_enabled
     46 
     47     def is_added_to_segment(self):
     48         if self._added_to_segment is None:
     49             self._added_to_segment = self._get_added_to_segment()
     50         return self._added_to_segment
     51 
     52     def cache_aura_guidance_enabled(self, value):
     53         self._aura_guidance_enabled = value
     54 
     55     def cache_a_a_test_flag(self, value):
     56         self._a_a_test_enabled = value
     57 
     58     def cache_added_to_segment(self, value):
     59         self._added_to_segment = value
     60         enabled = self._get_aura_guidance_enabled()
     61         info_log = '{userid} force evaluating the aura_guidance_enabled flag returned {value}'.format(userid=session.userid, value=enabled)
     62         logger.warn(info_log)
     63 
     64     def get_response(self, query, max_attempts = 1):
     65         if not self.is_enabled():
     66             raise AuraGuidanceServiceUnavailableError('Suddenly no access enabled during request.')
     67         return self._messenger.get_response(query=query, max_attempts=max_attempts)
     68 
     69     def test_a_a_test_enabled(self):
     70         if not self.is_a_a_test_enabled():
     71             print('A/A Test says nope.')
     72             return
     73         print('A/A Test says yup.')