goal_progress.py (2237B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\careergoals\client\goal_progress.py 2 import uuid 3 import datetime 4 from careergoals.client.const import RewardLabel 5 from google.protobuf.timestamp_pb2 import Timestamp 6 from eveProto.generated.eve_public.career.goal.api.requests_pb2 import GetAllResponse 7 from eveProto.generated.eve_public.career.goal_pb2 import Identifier as GoalIdentifier 8 9 class GoalProgress(object): 10 11 def __init__(self, goal_id, progress, completed, claimed_states): 12 self.goal_id = goal_id 13 self.progress = progress 14 self.completed = completed 15 self.claimed_states = claimed_states 16 17 @classmethod 18 def from_proto(cls, payload): 19 return GoalProgress(goal_id=uuid.UUID(bytes=payload.goal.uuid), progress=payload.progress, completed=payload.HasField('completed_time'), claimed_states={RewardLabel.from_proto(x.label):x.HasField('claimed_time') for x in payload.reward_label_states}) 20 21 @classmethod 22 def to_proto(cls, obj): 23 reward_label_states = [] 24 for k, v in obj.claimed_states.iteritems(): 25 reward_label_state = GetAllResponse.Goal.RewardLabelState(label=RewardLabel.to_proto(k)) 26 if v: 27 claimed_time = Timestamp() 28 claimed_time.FromDatetime(datetime.datetime.now()) 29 reward_label_state.claimed_time.CopyFrom(claimed_time) 30 else: 31 reward_label_state.not_claimed = True 32 reward_label_states.append(reward_label_state) 33 34 proto = GetAllResponse.Goal(goal=GoalIdentifier(uuid=obj.goal_id.bytes), progress=obj.progress, reward_label_states=reward_label_states) 35 if obj.completed: 36 completed_time = Timestamp() 37 completed_time.FromDatetime(datetime.datetime.now()) 38 proto.completed_time.CopyFrom(completed_time) 39 else: 40 proto.not_completed = True 41 return proto 42 43 def __eq__(self, other): 44 return other is not None and self.goal_id == other.goal_id and self.progress == other.progress and self.completed == other.completed and self.claimed_states == other.claimed_states 45 46 def __ne__(self, other): 47 return not self.__eq__(other)