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

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)