def run(self): global databaseLock, loaderCount self._active = True mutex.lock() if databaseLock: mutex.unlock() print("databaseLock") return databaseLock = True mutex.unlock() self.sendProcessMsg("open db", 0, 0) starttime = timeit.default_timer() self.mydb = elite.db(guiMode=True) if not loaderCount: loaderCount = self.mydb.loaderCount else: self.mydb.loaderCount = loaderCount self.sendProcessMsg("Start Update", 0, loaderCount) self.mydb.sendProcessMsg = self.sendProcessMsg try: self.mydb.updateData() loaderCount = self.mydb.loaderCount except: traceback.print_exc() self.close() return if self._active is not True: self.close() return try: self.mydb.calcDealsInDistancesCacheQueue() except: traceback.print_exc() self.close() return if self._active is not True: self.close() return self.mydb.sendProcessMsg = None self.sendProcessMsg("%s finished %ss" % (datetime.now().strftime("%H:%M:%S"), round(timeit.default_timer() - starttime, 2))) self.close()
def __init__(self): super(MainWindow, self).__init__() self.guiMutex = QtCore.QMutex() self.setWindowTitle("mEDI's Elite Tools") self.setDockOptions(QtGui.QMainWindow.AnimatedDocks | QtGui.QMainWindow.AllowNestedDocks | QtGui.QMainWindow.AllowTabbedDocks) self.setStatusBar("Welcome to mEDI's Elite Tools (Version: %s, %s)" % (__version__, __builddate__)) self.setMinimumSize(600, 400) self.setWindowIcon(QtGui.QIcon(QtGui.QPixmap("img/logo.png"))) self.addProgressBarStatusBar() self.clipboard = QtGui.QClipboard() self.mydb = elite.db(guiMode=True) self.mydb.cleanIgnorePriceTemp() self.mydb.startStreamUpdater() self.dbworker = gui.dbworker.new(self) self.location = elite.location(self.mydb) self.createActions() self.createMenus() self.createTimer() self.myPlugins = [ gui.multihoproute, gui.deals_from_to, gui.commodities_finder, gui.shipyard_finder, gui.power_control_finder, gui.flylog, gui.bookmarks, gui.rares_finder, gui.profit_calculator, gui.outfitting_finder, gui.data_status ] self.addTool(gui.multihoproute, self.multiHopRouteWidget) self.addTool(gui.deals_from_to, self.dealsFromToWidget) self.addTool(gui.commodities_finder, self.commoditiesFinderWidget) self.addTool(gui.shipyard_finder, self.shipyardFinderWidget) self.addTool(gui.power_control_finder, self.powerControlFinderWidget) self.addTool(gui.flylog, self.flyLogWidget) self.addTool(gui.bookmarks, self.BookmarksWidget) self.addTool(gui.rares_finder, self.raresFinderWidget) self.addTool(gui.profit_calculator, self.profitCalculatorWidget) self.addTool(gui.outfitting_finder, self.outfittingFinderWidget) self.addTool(gui.data_status, self.dataStatusWidget) gui.statistics.initRun(self) gui.edit_permit.initRun(self) gui.add_edit_items.initRun(self) self.show() self.loadLastWindowsOptions()
def run(self): global databaseLock, loaderCount self._active = True mutex.lock() if databaseLock: mutex.unlock() print("databaseLock") return databaseLock = True mutex.unlock() self.sendProcessMsg("open db", 0, 0) starttime = timeit.default_timer() self.mydb = elite.db(guiMode=True) if not loaderCount: loaderCount = self.mydb.loaderCount else: self.mydb.loaderCount = loaderCount self.sendProcessMsg("Start Update", 0, loaderCount) self.mydb.sendProcessMsg = self.sendProcessMsg try: self.mydb.updateData() loaderCount = self.mydb.loaderCount except: traceback.print_exc() self.close() return if self._active is not True: self.close() return try: self.mydb.calcDealsInDistancesCacheQueue() except: traceback.print_exc() self.close() return if self._active is not True: self.close() return self.mydb.sendProcessMsg = None self.sendProcessMsg( "%s finished %ss" % (datetime.now().strftime("%H:%M:%S"), round(timeit.default_timer() - starttime, 2)) ) self.close()
def __init__(self): super(MainWindow, self).__init__() self.guiMutex = QtCore.QMutex() self.setWindowTitle("mEDI's Elite Tools") self.setDockOptions(QtGui.QMainWindow.AnimatedDocks | QtGui.QMainWindow.AllowNestedDocks | QtGui.QMainWindow.AllowTabbedDocks) self.setStatusBar("Welcome to mEDI's Elite Tools (Version: %s, %s)" % (__version__, __builddate__)) self.setMinimumSize(600, 400) self.setWindowIcon(QtGui.QIcon(QtGui.QPixmap("img/logo.png"))) self.addProgressBarStatusBar() self.clipboard = QtGui.QClipboard() self.mydb = elite.db(guiMode=True) self.mydb.cleanIgnorePriceTemp() self.mydb.startStreamUpdater() self.dbworker = gui.dbworker.new(self) self.location = elite.location(self.mydb) self.createActions() self.createMenus() self.createTimer() self.myPlugins = [gui.multihoproute, gui.deals_from_to, gui.commodities_finder, gui.shipyard_finder, gui.power_control_finder, gui.flylog, gui.bookmarks, gui.rares_finder, gui.profit_calculator, gui.outfitting_finder, gui.data_status] self.addTool( gui.multihoproute, self.multiHopRouteWidget) self.addTool( gui.deals_from_to, self.dealsFromToWidget) self.addTool( gui.commodities_finder, self.commoditiesFinderWidget) self.addTool( gui.shipyard_finder, self.shipyardFinderWidget) self.addTool( gui.power_control_finder, self.powerControlFinderWidget) self.addTool( gui.flylog, self.flyLogWidget) self.addTool( gui.bookmarks, self.BookmarksWidget) self.addTool( gui.rares_finder, self.raresFinderWidget) self.addTool( gui.profit_calculator, self.profitCalculatorWidget) self.addTool( gui.outfitting_finder, self.outfittingFinderWidget) self.addTool( gui.data_status, self.dataStatusWidget) gui.statistics.initRun(self) gui.edit_permit.initRun(self) gui.add_edit_items.initRun(self) self.show() self.loadLastWindowsOptions()
# -*- coding: UTF8 from elite import db, elitetime import timeit import sys import elite.loader.eddb import elite.loader.edsc import elite.loader.edsm start = timeit.default_timer() db = db(guiMode=True) db.initDB() etime = elitetime(db,23) wA = etime.calcTimeFromTo(15039, 1608, 763) wB = etime.calcTimeFromTo(3113, 669, 15039) print( wA, wB, wA+wB ) #elite.loader.eddb.systems.loader(db).importData("db/systems.json") #elite.loader.eddb.stations.loader(db).importData("db/stations.json") edsc = elite.loader.edsc.edsc() #edsc.getSystemCoords("LP 761-93") print(edsc.getSystemCoords("34 Pegasi")) #edsc.getSystemCoords("Eravate")
# -*- coding: UTF8 import timeit import sys from datetime import datetime, date, time, timedelta import elite start = timeit.default_timer() mydb = elite.db() ''' search best deal in my system for a A-B-A route ''' startSystem = "ltt 9810" searchModus = 2 # 1=bestDealFromMySystem 2=findBestDealInMyCircle maxDist = 40 # max distace for B system maxJumpDistance = 23 maxSearchRange = 80 # only used in mode 2 maxStarDist = 1300 maxAge = 14 # max data age in days minLoopProfit = 3000 minTradeProfit = 1000 # only to minimize results (speedup) minStock = 150000 # > 10000 = stable route > 50000 = extrem stable route and faster results maxAgeDate = datetime.utcnow() - timedelta(days=maxAge) elitetime = elite.elitetime(mydb, maxJumpDistance)
# -*- coding: UTF8 import timeit import sys import elite start = timeit.default_timer() mydb = elite.db() location = elite.location(mydb) route = elite.dealsroute(mydb) route.setOption("startSystem", location.getLocation()) route.setOption("tradingHops", 2) route.setOption("maxJumpDistance", 16.3) route.setOption("minStock", 10000) route.setOption("maxDist", route.getOption("maxJumpDistance") * 3) route.setOption("maxSearchRange", route.getOption("maxJumpDistance") * 6) route.calcDefaultOptions() route.limitCalc(0) #options (normal, fast, nice, slow, all) route.calcRoute() route.printList() print(round(timeit.default_timer() - start, 3)) print(sys.version)
# -*- coding: UTF8 from elite import db, elitetime import timeit import sys import elite.loader.eddb import elite.loader.edsc import elite.loader.edsm start = timeit.default_timer() db = db(guiMode=True) db.initDB() etime = elitetime(db, 23) wA = etime.calcTimeFromTo(15039, 1608, 763) wB = etime.calcTimeFromTo(3113, 669, 15039) print(wA, wB, wA + wB) #elite.loader.eddb.systems.loader(db).importData("db/systems.json") #elite.loader.eddb.stations.loader(db).importData("db/stations.json") edsc = elite.loader.edsc.edsc() #edsc.getSystemCoords("LP 761-93") print(edsc.getSystemCoords("34 Pegasi")) #edsc.getSystemCoords("Eravate") edsm = elite.loader.edsm.edsm()
# install_exe = installOptions, bdist_msi=msiOptions, ), executables=executables) ''' remove trigger file ''' if os.path.isfile(__forceupdateFile__): os.remove(__forceupdateFile__) ''' only for the zip fallback''' if _buildZip: ''' manipulate db clone ''' clonedDBpath = os.path.join(mybuild_dir, __sourceDB__) shutil.copyfile(__sourceDB__, clonedDBpath) if os.path.isfile(clonedDBpath): db = elite.db(guiMode=True, DBPATH=clonedDBpath) cur = db.cursor() db.setConfig('initRun', 1) db.setConfig('option_dft_fromSystem', '') db.setConfig('option_dft_fromStation', '') db.setConfig('option_dft_toSystem', '') db.setConfig('option_dft_toStation', '') db.setConfig('option_pcf_power', '') db.setConfig('option_pcf_location', '') db.setConfig('option_commanderName', '') db.setConfig('mainwindow.geometry', '') db.setConfig('mainwindow.State', '')
class elitetime(object): ''' Time Duration Calculator ''' if __name__ == '__main__': mydb = db() else: mydb = None maxJumpDist = None # max jump distance ''' default times for calc ''' landingTime_outpost = 70 # 1:10 time jump in system to landing landingTime_station = 130 # 2:10 tradeTime = 90 # 1:30 ~ trading and navi time startTime = 45 # time from Start to FS jump fs_jumpTime = 34 # loading and jump time fs_cooldown = 15 # cooldown time after a jump is from 10-17 sek def __init__(self, mydb, maxJumpDist): ''' Constructor ''' self.mydb = mydb self.maxJumpDist = maxJumpDist def calcTimeFromTo(self, systemAID, stationBID=None, SystemBID=None): ''' calc time cost for a trip ''' jumpDist = None time = self.startTime + self.tradeTime if stationBID: stationB = self.mydb.getStationData(stationBID) if not SystemBID: SystemBID = stationB["SystemID"] # sum of jumps if systemAID and SystemBID: jumpDist = self.mydb.getDistanceFromTo(systemAID, SystemBID) jumps = int(math.ceil(float(jumpDist) / self.maxJumpDist)) # round up time += self.calcJumpTime(jumps) if stationB: if stationB["StarDist"] > 0: time += self.calcTimeForDistance(stationB["StarDist"]) else: print("warning: %d %s have no StarDist" % (stationBID, stationB["Station"])) # docking time if stationB["max_pad_size"] == "L": time += self.landingTime_station else: time += self.landingTime_outpost else: print("warning: no station data!?", systemAID, stationBID, SystemBID) return int(round(time, 0)) def calcTimeForDistance(self, dist): t = None if dist < 200: t = 120 elif dist < 10000: t = -0.0000029 * dist**2 + 0.052824 * dist + 110.3806227 else: x100 = dist / 100 t = -0.000026 * x100**2 + 1.842221 * x100 + 151.7497694 return t def calcJumpTime(self, jumps): t = self.fs_jumpTime * jumps if jumps > 1: t += self.fs_cooldown * (jumps - 1) return t
''' remove trigger file ''' if os.path.isfile(__forceupdateFile__): os.remove(__forceupdateFile__) ''' only for the zip fallback''' if _buildZip: ''' manipulate db clone ''' clonedDBpath = os.path.join(mybuild_dir, __sourceDB__) shutil.copyfile(__sourceDB__, clonedDBpath) if os.path.isfile(clonedDBpath): db = elite.db(guiMode=True, DBPATH=clonedDBpath) cur = db.cursor() db.setConfig('initRun', 1) db.setConfig('option_dft_fromSystem', '') db.setConfig('option_dft_fromStation', '') db.setConfig('option_dft_toSystem', '') db.setConfig('option_dft_toStation', '') db.setConfig('option_pcf_power', '') db.setConfig('option_pcf_location', '') db.setConfig('option_commanderName', '') db.setConfig('mainwindow.geometry', '') db.setConfig('mainwindow.State', '')