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))