equipped.py (3047B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\cosmetics\client\character\title\model\state\equipped.py 2 from datetime import datetime 3 from cosmetics.client.character.title.model.definition.identifier import TitleIdentifier 4 from eveProto.generated.eve_public.cosmetic.character.title.api.notices_pb2 import SetNotice, SetAllInBubbleNotice 5 from eveProto.generated.eve_public.cosmetic.character.title.api.requests_pb2 import GetEquippedForCharacterResponse 6 7 class CachedEquippedTitleAttributes: 8 9 def __init__(self, equipped_state, expiration): 10 self._equipped_state = equipped_state 11 self._expiration = expiration 12 13 @property 14 def equipped_state(self): 15 return self._equipped_state 16 17 @property 18 def expiration(self): 19 return self._expiration 20 21 @property 22 def is_expired(self): 23 return datetime.now() > self._expiration 24 25 26 class EquippedTitleStateAttributes: 27 28 def __init__(self, equipped_title): 29 self._equipped_title = equipped_title 30 31 @property 32 def equipped_title(self): 33 return self._equipped_title 34 35 @classmethod 36 def from_response_proto(cls, payload): 37 return EquippedTitleStateAttributes(equipped_title=TitleIdentifier.from_proto(payload.title) if payload.HasField('title') else None) 38 39 @classmethod 40 def to_response_proto(cls, instance): 41 proto = GetEquippedForCharacterResponse() 42 if instance.equipped_title is None: 43 proto.no_title = True 44 else: 45 proto.title.CopyFrom(TitleIdentifier.to_proto(instance.equipped_title)) 46 return proto 47 48 @classmethod 49 def from_set_notice_proto(cls, payload): 50 return EquippedTitleStateAttributes(equipped_title=TitleIdentifier.from_proto(payload.title) if payload.HasField('title') else None) 51 52 @classmethod 53 def to_set_notice_proto(cls, instance): 54 payload = SetNotice() 55 if instance.equipped_title is not None: 56 payload.title.CopyFrom(TitleIdentifier.to_proto(instance.equipped_title)) 57 else: 58 payload.no_title = True 59 return payload 60 61 @classmethod 62 def from_set_all_notice_proto(cls, payload): 63 return EquippedTitleStateAttributes(equipped_title=TitleIdentifier.from_proto(payload.title) if payload.HasField('title') else None) 64 65 @classmethod 66 def to_set_all_notice_proto(cls, instance): 67 payload = SetAllInBubbleNotice.CharacterTitle() 68 if instance.equipped_title is not None: 69 payload.title.CopyFrom(TitleIdentifier.to_proto(instance.equipped_title)) 70 else: 71 payload.no_title = True 72 return payload 73 74 def __eq__(self, other): 75 if other is None: 76 return False 77 if not isinstance(other, EquippedTitleStateAttributes): 78 return False 79 return self.equipped_title == other.equipped_title 80 81 def __ne__(self, other): 82 return not self.__eq__(other) 83 84 def __str__(self): 85 return 'equipped_title: %s\n' % self.equipped_title