category_reached_milestone.py (1658B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\model\state\category_reached_milestone.py 2 import datetime 3 from achievement_system.client.model.definition.category.milestone.identifier import CategoryMilestoneDefinitionIdentifier 4 from eveProto.generated.eve_public.achievement.category.api.requests_pb2 import GetResponse as ProtoGetResponse 5 from google.protobuf.timestamp_pb2 import Timestamp 6 7 class CategoryReachedMilestone(object): 8 9 def __init__(self, identifier, reached_date): 10 self._identifier = identifier 11 self._reached_date = reached_date 12 13 @property 14 def identifier(self): 15 return self._identifier 16 17 @property 18 def reached_date(self): 19 return self._reached_date 20 21 def __str__(self): 22 return 'Reached Milestone ({0})\n{1}'.format(self._identifier, self._reached_date) 23 24 @classmethod 25 def from_proto(cls, payload): 26 return CategoryReachedMilestone(identifier=CategoryMilestoneDefinitionIdentifier.from_proto(payload=payload.milestone), reached_date=datetime.datetime.fromtimestamp(payload.reached_date.seconds)) 27 28 @classmethod 29 def to_proto(cls, instance): 30 proto_reached_date = Timestamp() 31 proto_reached_date.FromDatetime(instance.reached_date) 32 return ProtoGetResponse.ReachedMilestone(milestone=CategoryMilestoneDefinitionIdentifier.to_proto(instance.identifier), reached_date=proto_reached_date) 33 34 def __eq__(self, other): 35 return self.identifier == other.identifier and self.reached_date == other.reached_date 36 37 def __ne__(self, other): 38 return not self.__eq__(other)