contentdata.py (3390B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\agency\common\contentdata.py 2 import json 3 CUSTOM_CONTENT_EXTRA_DATA = ('location_id', 'item_id', 'type_id', 'owner_id', 'enemy_owner_id', 'solar_system_coordinates', 'title_text_id', 'expanded_title_text_id', 'subtitle_text_id', 'expanded_subtitle_text_id', 'blurb_text_id', 'rewards', 'primary_action_id', 'hidden_location_id', 'visibility_at_jump_range_after_minutes') 4 HIDDEN_EXTRA_DATA = ('hidden_location_id', 'visibility_at_jump_range_after_minutes') 5 6 class CustomContentData(object): 7 8 def __init__(self, agency_content_id, source_id, source_content_id, content_type, solar_system_id, creation_date, expiry_date): 9 self.agency_content_id = agency_content_id 10 self.content_type = content_type 11 self.solar_system_id = solar_system_id 12 self.creation_date = creation_date 13 self.expiry_date = expiry_date 14 self.source_id = source_id 15 self.source_content_id = source_content_id 16 self.location_id = None 17 self.item_id = None 18 self.type_id = None 19 self.owner_id = None 20 self.enemy_owner_id = None 21 self.solar_system_coordinates = None 22 self.title_text_id = None 23 self.expanded_title_text_id = None 24 self.subtitle_text_id = None 25 self.expanded_subtitle_text_id = None 26 self.blurb_text_id = None 27 self.rewards = [] 28 self.primary_action_id = None 29 self.hidden_location_id = None 30 self.visibility_at_jump_range_after_minutes = [(0, None)] 31 32 def update_from_dict(self, content_data): 33 for key, value in content_data.iteritems(): 34 if key in CUSTOM_CONTENT_EXTRA_DATA: 35 setattr(self, key, value) 36 37 def __repr__(self): 38 return 'CustomContentData(%s)' % ', '.join(('%s=%s' % (k, v) for k, v in sorted(self.__dict__.items()) if '__' not in k)) 39 40 def set_visibility(self, jumps, minutes): 41 self.visibility_at_jump_range_after_minutes.append((jumps, minutes)) 42 self.visibility_at_jump_range_after_minutes.sort(reverse=True) 43 44 def get_clean_copy(self): 45 content_data_copy = CustomContentData(self.agency_content_id, self.source_id, self.source_content_id, self.content_type, self.solar_system_id, self.creation_date, self.expiry_date) 46 content_data_copy.copy_clean_extra_data(self) 47 return content_data_copy 48 49 def copy_clean_extra_data(self, content_data): 50 for key in CUSTOM_CONTENT_EXTRA_DATA: 51 if key in HIDDEN_EXTRA_DATA: 52 continue 53 setattr(self, key, getattr(content_data, key, None)) 54 55 56 def create_custom_content_data(content_row): 57 data = create_base_custom_content_data(content_row) 58 extra_data = json.loads(content_row.contentData) 59 data.update_from_dict(extra_data) 60 return data 61 62 63 def create_base_custom_content_data(content_row): 64 data = CustomContentData(content_row.customAgencyContentID, content_row.sourceID, content_row.sourceContentID, content_row.contentType, content_row.solarSystemID, content_row.creationDate, content_row.expiryDate) 65 return data 66 67 68 def get_custom_content_extra_data(content_data): 69 data = {} 70 for key in CUSTOM_CONTENT_EXTRA_DATA: 71 value = getattr(content_data, key, None) 72 if value is not None: 73 data[key] = value 74 75 return json.dumps(data)