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

skin_listing_target.py (2714B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\cosmetics\client\ships\skins\live_data\skin_listing_target.py
      2 from itertoolsext.Enum import Enum
      3 from eveProto.generated.eve_public.alliance.alliance_pb2 import Identifier as AllianceIdentifier
      4 from eveProto.generated.eve_public.character.character_pb2 import Identifier as CharacterIdentifier
      5 from eveProto.generated.eve_public.corporation.corporation_pb2 import Identifier as CorporationIdentifier
      6 from eveProto.generated.eve_public.cosmetic.market.skin.listing.listing_pb2 import ListingTarget as ListingTargetIdentifier
      7 
      8 @Enum
      9 
     10 class ListingTargetType(object):
     11     PUBLIC = 'Public'
     12     CORPORATION = 'Corporation'
     13     ALLIANCE = 'Alliance'
     14     CHARACTER = 'Character'
     15 
     16 
     17 @Enum
     18 
     19 class SellerMembershipType(object):
     20     UNSPECIFIED = 0
     21     BRAND_MANAGER = 1
     22     MEMBER = 2
     23     NONE = 3
     24 
     25 
     26 @Enum
     27 
     28 class ListedTo(object):
     29     PUBLIC = 0
     30     MY_CORP = 1
     31     MY_ALLIANCE = 2
     32     SPECIFIC = 3
     33 
     34 
     35 class ListingTarget(object):
     36 
     37     def __init__(self, target_type, target_id = None):
     38         self._target_type = target_type
     39         self._target_id = target_id
     40 
     41     def __eq__(self, other):
     42         return self.target_type == other.target_type and self.target_id == other.target_id
     43 
     44     def __str__(self):
     45         return 'target_type: {target_type}, target_id: {target_id}'.format(target_type=self.target_type, target_id=self.target_id)
     46 
     47     @property
     48     def target_type(self):
     49         return self._target_type
     50 
     51     @property
     52     def target_id(self):
     53         return self._target_id
     54 
     55     @classmethod
     56     def from_proto(cls, payload):
     57         if payload.HasField('public'):
     58             return cls(ListingTargetType.PUBLIC, payload.public)
     59         if payload.HasField('corporation'):
     60             return cls(ListingTargetType.CORPORATION, payload.corporation.sequential)
     61         if payload.HasField('alliance'):
     62             return cls(ListingTargetType.ALLIANCE, payload.alliance.sequential)
     63         if payload.HasField('character'):
     64             return cls(ListingTargetType.CHARACTER, payload.character.sequential)
     65 
     66     def to_proto(self):
     67         if self.target_type == ListingTargetType.PUBLIC:
     68             return ListingTargetIdentifier(public=True)
     69         if self.target_type == ListingTargetType.CORPORATION:
     70             return ListingTargetIdentifier(corporation=CorporationIdentifier(sequential=self.target_id))
     71         if self.target_type == ListingTargetType.CHARACTER:
     72             return ListingTargetIdentifier(character=CharacterIdentifier(sequential=self.target_id))
     73         if self.target_type == ListingTargetType.ALLIANCE:
     74             return ListingTargetIdentifier(alliance=AllianceIdentifier(sequential=self.target_id))