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

query.py (2247B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\sofDnaLibrary\query.py
      2 from __future__ import print_function
      3 from sofDnaLibrary.data import GetTypes
      4 from sofDnaLibrary.dataLookup import GetSkinnedDnaForDnaQuery, GetDefaultDnaStringsForDnaQuery
      5 import time
      6 queryResultCache = {}
      7 
      8 def GenerateDnaString(hull, faction, race, dnaAddition = ''):
      9     dna = '%s:%s:%s' % (hull, faction, race)
     10     if dnaAddition != '':
     11         dna += ':%s' % dnaAddition
     12     return dna
     13 
     14 
     15 def GetSkinnedDnaStringsMatchingQuery(hullQuery = '.*', factionQuery = '.*', raceQuery = '.*'):
     16     graphicIdsToDnaStrings = GetSkinnedDnaForDnaQuery(hullQuery, factionQuery, raceQuery)
     17     dnaStrings = []
     18     for graphicID, dnaList in graphicIdsToDnaStrings.iteritems():
     19         dnaStrings.extend(dnaList)
     20 
     21     return list(set(dnaStrings))
     22 
     23 
     24 def GetDefaultDnaStringsMatchingQuery(hullQuery = '.*', factionQuery = '.*', raceQuery = '.*'):
     25     return GetDefaultDnaStringsForDnaQuery(hullQuery, factionQuery, raceQuery).values()
     26 
     27 
     28 def GetDnaStringsMatchingQuery(hullQuery = '.*', factionQuery = '.*', raceQuery = '.*'):
     29     dnaString = GenerateDnaString(hullQuery, factionQuery, raceQuery)
     30     print("Getting dna strings that match '%s'" % dnaString)
     31     skinnedDna = GetSkinnedDnaStringsMatchingQuery(hullQuery, factionQuery, raceQuery)
     32     defaultDna = GetDefaultDnaStringsMatchingQuery(hullQuery, factionQuery, raceQuery)
     33     dnaStrings = skinnedDna
     34     dnaStrings.extend(defaultDna)
     35     return dnaStrings
     36 
     37 
     38 def GetDefaultDnaStringsWithTypesMatchingQuery(hullQuery = '.*', factionQuery = '.*', raceQuery = '.*'):
     39     dnaString = GenerateDnaString(hullQuery, factionQuery, raceQuery)
     40     print("Getting dna strings that match '%s' and are linked to types" % dnaString)
     41     defaultDnaGraphicID = GetDefaultDnaStringsForDnaQuery(hullQuery, factionQuery, raceQuery)
     42     dnaStrings = set()
     43     for typeID, typeData in GetTypes().iteritems():
     44         if typeData.graphicID in defaultDnaGraphicID:
     45             dnaStrings.add(defaultDnaGraphicID[typeData.graphicID])
     46 
     47     return list(dnaStrings)
     48 
     49 
     50 if __name__ == '__main__':
     51     start = time.time()
     52     dnaResult = GetDnaStringsMatchingQuery(hullQuery='asd1_t1', raceQuery='amarr')
     53     print(dnaResult)