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

external_messenger.py (2934B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\sovereignty\fuel\client\external_messenger.py
      2 from __future__ import print_function
      3 from six.moves import http_client as httplib
      4 from eveProto import timestamp_to_blue
      5 from eveProto.generated.eve_public.sovereignty.hub.fuel.api import requests_pb2
      6 from eveProto.generated.eve_public.sovereignty.hub.hub_pb2 import Identifier as HubIdentifier
      7 from publicGateway.grpc.exceptions import GenericException
      8 from sovereignty.client.base_external_messenger import BaseClientExternalMessenger
      9 from eveProto.generated.eve_public.inventory.generic_item_pb2 import Identifier as ItemID
     10 import sovereignty.fuel.client.errors as errors
     11 from sovereignty.fuel.client.data_types import Fuel
     12 
     13 class SovFuelExternalMessenger(BaseClientExternalMessenger):
     14 
     15     def get(self, hub_id):
     16         try:
     17             request = requests_pb2.GetRequest(hub=HubIdentifier(sequential=hub_id))
     18             request_wrapper, response_wrapper, response_payload = self._send_request(request, requests_pb2.GetResponse)
     19         except GenericException as e:
     20             if e.response_primitive.status_code == httplib.FORBIDDEN:
     21                 raise errors.SovFuelGetLevelsForbiddenError(e)
     22             if e.response_primitive.status_code == httplib.INTERNAL_SERVER_ERROR:
     23                 raise errors.SovFuelGetLevelInternalError(e)
     24             raise errors.SovFuelGetLevelsError(e)
     25 
     26         fuels = response_payload.fuels
     27         last_updated = timestamp_to_blue(response_payload.last_updated)
     28         fuel_by_type_id = {x.fuel_type.sequential:Fuel(x.fuel_type.sequential, x.amount, x.burned_per_hour, last_updated) for x in fuels}
     29         return fuel_by_type_id
     30 
     31     def add_fuel(self, fuel_item_id, amount, hub_id):
     32         try:
     33             request = requests_pb2.AddRequest(fuel_item=ItemID(sequential=fuel_item_id), amount=amount, hub=HubIdentifier(sequential=hub_id))
     34             request_wrapper, response_wrapper, response_payload = self._send_request(request, requests_pb2.AddResponse)
     35         except GenericException as e:
     36             if e.response_primitive.status_code == httplib.FORBIDDEN:
     37                 raise errors.SovFuelAddRequestForbiddenError(e)
     38             if e.response_primitive.status_code == httplib.NOT_FOUND:
     39                 raise errors.SovFuelAddRequestNotFoundError(e)
     40             if e.response_primitive.status_code == httplib.INTERNAL_SERVER_ERROR:
     41                 raise errors.SovFuelAddRequestInternalError(e)
     42             raise errors.SovFuelAddRequestError(e)
     43 
     44 
     45 class FakseSovFuelExternalMessenger(object):
     46 
     47     def get(self, hub_id):
     48         from datetimeutils.RFC3339 import datetime_to_blue
     49         last_updated = datetime_to_blue('2000-01-01T00:00:00Z')
     50         return {81144: Fuel(81144, 5123, 10, last_updated),
     51          81143: Fuel(81143, 53, 15, last_updated)}
     52 
     53     def add_fuel(self, fuel_item_id, amount, hub_id):
     54         print('fuel added')