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

event_matcher_messenger.py (2544B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\campaigns\client\v2\messengers\event_matcher_messenger.py
      2 from __future__ import absolute_import, division, print_function
      3 import logging
      4 from campaigns.client.errors import EventMatcherRequestError, EventMatcherNotFoundError, EventMatcherBadRequestError
      5 from campaigns.client.v2.data_model.event_matcher_definition import EventMatcherDefinition
      6 from eveProto.generated.eve_public.campaign.trigger.eventmatch.definition.api.requests_pb2 import GetAllRequest, GetAllResponse
      7 from six.moves.http_client import NOT_FOUND, BAD_REQUEST, OK
      8 from semantic_version import SemanticVersion
      9 from stackless_response_router.exceptions import TimeoutException, UnpackException
     10 logger = logging.getLogger('campaigns_v2')
     11 
     12 class CampaignEventMatcherMessenger(object):
     13 
     14     def __init__(self, public_gateway):
     15         self.public_gateway = public_gateway
     16 
     17     def override_gateway(self, public_gateway):
     18         self.public_gateway = public_gateway
     19 
     20     def get_all_request(self, semantic_version):
     21         request = GetAllRequest(version=semantic_version.to_eve_public_proto())
     22         info_log = 'Request: CampaignEventMatcherMessenger: GetAllRequest: {request}\n'.format(request=request)
     23         try:
     24             response_primitive, response = self.public_gateway.send_blocking_character_request_and_receive_response(request_payload=request, expected_response_class=GetAllResponse, timeout_seconds=4, max_attempts=2, retry_delay_in_seconds=1)
     25         except (TimeoutException, UnpackException) as exc:
     26             info_log += 'ERROR: %s' % exc.__class__.__name__
     27             logger.info(info_log)
     28             raise EventMatcherRequestError('Failed to receive response from GetAllRequest: %s' % exc)
     29 
     30         status_code = response_primitive.status_code
     31         if status_code == NOT_FOUND:
     32             raise EventMatcherNotFoundError('Could not find requested version in GetAllRequest: %s' % semantic_version)
     33         if status_code == BAD_REQUEST:
     34             raise EventMatcherBadRequestError('Bad request in GetAllRequest: %s' % semantic_version)
     35         if status_code != OK:
     36             raise EventMatcherRequestError('Received error status code for GetAllResponse: %s' % status_code)
     37         info_log += 'Response: CampaignContributionMethodsMessenger: GetAllResponse: {response}'.format(response=response)
     38         logger.info(info_log)
     39         results = [ EventMatcherDefinition.from_proto(definition) for definition in response.definitions ]
     40         return results