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)})