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

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