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()
Exemple #2
0
    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()
Exemple #4
0
    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()
Exemple #5
0
# -*- 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)
Exemple #7
0
# -*- 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)
Exemple #8
0
# -*- 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()
Exemple #9
0
        # 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
Exemple #11
0
''' 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', '')