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

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)