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

marketOrdersUtil.py (4589B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\market\marketOrdersUtil.py
      2 import blue
      3 from carbon.common.script.util.format import FmtDate, FmtDateEng
      4 from carbonui.util.stringManip import SanitizeFilename
      5 from evetypes import GetName
      6 from localization import GetByLabel, CleanImportantMarkup
      7 from player_messaging.client.ui_message import prompt_player_fsd_dialog
      8 
      9 def ExportToFile(fileName, orders):
     10     if len(orders) == 0:
     11         prompt_player_fsd_dialog('CustomInfo', {'info': GetByLabel('UI/Market/MarketWindow/ExportNoData')})
     12         return
     13     f = blue.classes.CreateInstance('blue.ResFile')
     14     directory = blue.sysinfo.GetUserDocumentsDirectory() + '/EVE/logs/Marketlogs/'
     15     filename = '%s-%s.txt' % (fileName, FmtDateEng(blue.os.GetWallclockTime(), 'ls').replace(':', ''))
     16     filename = SanitizeFilename(filename)
     17     if not f.Open(directory + filename, 0):
     18         f.Create(directory + filename)
     19     first = 1
     20     numSell = numBuy = 0
     21     for order in orders:
     22         if first:
     23             for key in order.__columns__:
     24                 f.Write('%s,' % key)
     25                 if key == 'charID':
     26                     f.Write('charName,')
     27                 elif key == 'regionID':
     28                     f.Write('regionName,')
     29                 elif key == 'stationID':
     30                     f.Write('stationName,')
     31                 elif key == 'solarSystemID':
     32                     f.Write('solarSystemName,')
     33 
     34             f.Write('\r\n')
     35             first = 0
     36         for key in order.__columns__:
     37             o = getattr(order, key, None)
     38             if key == 'bid':
     39                 if o > 0:
     40                     numBuy += 1
     41                 else:
     42                     numSell += 1
     43             if key == 'issueDate':
     44                 f.Write('%s,' % FmtDateEng(o, 'el').replace('T', ' '))
     45             elif key == 'charID':
     46                 f.Write('%s,%s,' % (o, str(cfg.eveowners.Get(o).name.encode('utf-8'))))
     47             elif key in ('stationID', 'regionID', 'solarSystemID'):
     48                 f.Write('%s,%s,' % (o, cfg.evelocations.Get(o).name.encode('utf-8')))
     49             else:
     50                 f.Write('%s,' % o)
     51 
     52         f.Write('\r\n')
     53 
     54     f.Close()
     55     prompt_player_fsd_dialog('PersonalMarketExportInfo', {'sell': numSell,
     56      'buy': numBuy,
     57      'filename': '<b>' + filename + '</b>',
     58      'directory': '<b>%s</b>' % directory})
     59 
     60 
     61 def DumpOrdersForType(typeID):
     62     orders = sm.GetService('marketQuote').GetOrders(typeID)
     63     sells = orders[0][0]
     64     buys = orders[1][0]
     65     if len(sells) > 0:
     66         dateIdx = sells[0].__columns__.index('issueDate')
     67     elif len(buys) > 0:
     68         dateIdx = buys[0].__columns__.index('issueDate')
     69     else:
     70         prompt_player_fsd_dialog('CustomInfo', {'info': GetByLabel('UI/Market/MarketWindow/ExportNoData')})
     71         return
     72     f = blue.classes.CreateInstance('blue.ResFile')
     73     typeName = GetName(typeID)
     74     fileTypeName = CleanImportantMarkup(typeName)
     75     fileTypeName = fileTypeName.replace('"', '')
     76     fileRegionName = CleanImportantMarkup(cfg.evelocations.Get(session.regionid).name)
     77     directory = blue.sysinfo.GetUserDocumentsDirectory() + '/EVE/logs/Marketlogs/'
     78     sanitizedFileTypeName = SanitizeFilename(fileTypeName)
     79     filename = '%s-%s-%s.txt' % (fileRegionName, sanitizedFileTypeName, FmtDateEng(blue.os.GetWallclockTime()).replace(':', ''))
     80     if not f.Open(directory + filename, 0):
     81         f.Create(directory + filename)
     82     first = 1
     83     for order in sells:
     84         if first:
     85             for key in order.__columns__:
     86                 f.Write('%s,' % key)
     87 
     88             f.Write('\r\n')
     89             first = 0
     90         for i in range(len(order)):
     91             first = 0
     92             if i == dateIdx:
     93                 f.Write('%s,' % FmtDateEng(order[i], 'el').replace('T', ' '))
     94             else:
     95                 f.Write('%s,' % order[i])
     96 
     97         f.Write('\r\n')
     98 
     99     for order in buys:
    100         if first:
    101             for key in order.__columns__:
    102                 f.Write('%s,' % key)
    103 
    104             f.Write('\r\n')
    105             first = 0
    106         for i in range(len(order)):
    107             if i == dateIdx:
    108                 f.Write('%s,' % FmtDateEng(order[i], 'el').replace('T', ' '))
    109             else:
    110                 f.Write('%s,' % order[i])
    111 
    112         f.Write('\r\n')
    113 
    114     f.Close()
    115     prompt_player_fsd_dialog('MarketExportInfo', {'sell': len(sells),
    116      'buy': len(buys),
    117      'typename': GetName(typeID),
    118      'filename': GetByLabel('UI/Map/StarMap/lblBoldName', name=filename),
    119      'directory': GetByLabel('UI/Map/StarMap/lblBoldName', name=directory)})