bookmark.py (3159B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\common\script\mgt\helpers\bookmark.py 2 import evetypes 3 import logging 4 import traceback 5 from evetypes import TYPE_LIST_BOOKMARKS_NOT_TREATED_AS_SOLAR_SYSTEMS 6 from inventorycommon import const as inventoryconst 7 logger = logging.getLogger(__name__) 8 CATEGORIES_TO_NOT_TREAT_AS_SOLAR_SYSTEM = {inventoryconst.categoryStructure, inventoryconst.categoryOrbital, inventoryconst.categorySovereigntyStructure} 9 GROUPS_TO_NOT_TREAT_AS_SOLAR_SYSTEM = {inventoryconst.groupMercenaryDen, inventoryconst.groupSkyhook} 10 11 class BookmarksNotTreatedAsSolarSystemsHelper(object): 12 _categories_to_not_treat_as_solar_system = None 13 _groups_to_not_treat_as_solar_system = None 14 _types_to_not_treat_as_solar_system = None 15 _type_list = None 16 _instance = None 17 _last_instance_id = 0 18 19 @classmethod 20 def get_instance(cls): 21 if cls._instance is None: 22 cls._last_instance_id += 1 23 cls._instance = BookmarksNotTreatedAsSolarSystemsHelper() 24 return cls._instance 25 26 def __init__(self): 27 if not self._type_list: 28 try: 29 self._type_list = evetypes.GetTypeList(TYPE_LIST_BOOKMARKS_NOT_TREATED_AS_SOLAR_SYSTEMS) 30 except Exception as e: 31 logger.exception('Failed to get type list for TYPE_LIST_BOOKMARKS_NOT_TREATED_AS_SOLAR_SYSTEMS (%s) - %s', TYPE_LIST_BOOKMARKS_NOT_TREATED_AS_SOLAR_SYSTEMS, traceback.format_exc()) 32 33 if not self._categories_to_not_treat_as_solar_system: 34 if not self._type_list: 35 self._categories_to_not_treat_as_solar_system = CATEGORIES_TO_NOT_TREAT_AS_SOLAR_SYSTEM 36 self._groups_to_not_treat_as_solar_system = GROUPS_TO_NOT_TREAT_AS_SOLAR_SYSTEM 37 self._types_to_not_treat_as_solar_system = evetypes.GetTypeIDsByCategories(CATEGORIES_TO_NOT_TREAT_AS_SOLAR_SYSTEM) 38 self._types_to_not_treat_as_solar_system.update(evetypes.GetTypeIDsByGroups(GROUPS_TO_NOT_TREAT_AS_SOLAR_SYSTEM)) 39 else: 40 self._categories_to_not_treat_as_solar_system = set(self._type_list.includedCategoryIDs) - set(self._type_list.excludedCategoryIDs) 41 self._groups_to_not_treat_as_solar_system = set(self._type_list.includedGroupIDs) - set(self._type_list.excludedGroupIDs) 42 self._types_to_not_treat_as_solar_system = evetypes.GetTypeIDsFromTypeList(self._type_list) 43 44 @classmethod 45 def should_treat_as_solar_system(cls, category_id = None, group_id = None, type_id = None): 46 helper = cls.get_instance() 47 if type_id and type_id in helper._types_to_not_treat_as_solar_system: 48 return False 49 if group_id and group_id in helper._groups_to_not_treat_as_solar_system: 50 return False 51 if category_id and category_id in helper._categories_to_not_treat_as_solar_system: 52 return False 53 return True 54 55 56 def should_treat_bookmark_as_solar_system(category_id = None, group_id = None, type_id = None): 57 return BookmarksNotTreatedAsSolarSystemsHelper.should_treat_as_solar_system(category_id, group_id, type_id)