Release Trade Dangerous (Est. 2015) Power user's highly configurable trade optimizer

Again guys, I cannot reproduce. I can say it's not for lack of bandwidth either. The server is hosted in a datacentre with plenty of Internet.

I think somewhere between there and "elsewhere" the Internet is being glitchy. Hopefully it will clear up sooner rather than later. poopoo happens, but as the server isn't the source of the fault, I can't do much.
No worries. I blame Trump. :D
 
I just made a DB update. It ran without problems, duration of the update about 5 minutes.

The last lines:
Code:
NOTE: Import file processing complete, updating database. 2019-12-23 00:36:31.500148
NOTE: Deleting old listing data. 2019-12-23 00:36:31.500148
NOTE: Inserting new listing data. 2019-12-23 00:36:43.149430
NOTE: Finished processing market data. End time = 2019-12-23 00:36:57.566556
NOTE: Regenerating .prices file.
NOTE: Import completed.

Command completed.
 
Hmm.... When calculating cargo capacity, TDH doesn't include corrosion resistant cargo racks. I wonder if that's due to TDH or edapi.

Mark hasn't been about on here recently it seems though. Might give him a ping via pm.
 
Hmm.... When calculating cargo capacity, TDH doesn't include corrosion resistant cargo racks. I wonder if that's due to TDH or edapi.
TDH doesn't recognice them: https://github.com/MarkAusten/TDHel...890457b5/TradeDangerousGUI/Delegates.cs#L1121
Corrosion Resistant Cargo Racks modulename start with Int_CorrosionProofCargoRack_... and need special handling for the cargo size.
I do it like:
Python:
for module in modules:
    if "CARGORACK" in module.upper():
        if module.upper() == "INT_CORROSIONPROOFCARGORACK_SIZE1_CLASS1":
            power = 0
        else:
            power = int(module.split("_")[2][-1])
        cargo_size = 2 ** power
        print(module, cargo_size)
 
Last edited:
Python:
for module in modules:
    if "CARGORACK" in module.upper():
        if module.upper() == "INT_CORROSIONPROOFCARGORACK_SIZE1_CLASS1":
            power = 0
        else:
            power = int(module.split("_")[2][-1])
        cargo_size = 2 ** power
        print(module, cargo_size)

So really it's just the 1E that needs special handling, as long as the 1F and 4E are correctly identified as being in the slot, they follow the generic size rule of all normal racks.
 
Hi Tromador. I don’t seem to be getting the daily listings.csv file when updating the TD database. The last one I have is dated the 6th May. I presume it’s going to be the same for everyone else too. Can you do a reboot on your server thingy when you get a mo, please?

Thanks
 
I'm out in the middle of nowhere exploring, so I can't really check myself.

How's this thing working with the fleet carriers?

Is it?
 
I am at a fleet carrier, but it's in the arcadian stream and doesn't have any goods to buy and sell, so little help here as I am (as usual) miles away from stuff.
 
Oh... we definitely have a problem:

Code:
NOTE: Requesting https://eddb.io/archive/v6/stations.jsonl
NOTE: Downloaded 127.4MB of gziped data  34.2MB/s
NOTE: Processing Stations, this may take a bit: Start time = 2020-06-29 21:37:31.042268
[==============================================    ] 92% Exception in thread Thread-2:
Traceback (most recent call last):
  File "/home/elite/.local/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()
  File "/home/elite/.local/lib/python3.7/threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "./eddblink_listener.py", line 372, in check_update
    trade.main(('trade.py', 'import', '-P', 'eddblink', '-O', options))
  File "/home/elite/.local/lib/python3.7/site-packages/tradedangerous/cli.py", line 70, in main
    trade(argv)
  File "/home/elite/.local/lib/python3.7/site-packages/tradedangerous/cli.py", line 125, in trade
    results = cmdenv.run(tdb)
  File "/home/elite/.local/lib/python3.7/site-packages/tradedangerous/commands/commandenv.py", line 81, in run
    return self._cmd.run(results, self, tdb)
  File "/home/elite/.local/lib/python3.7/site-packages/tradedangerous/commands/import_cmd.py", line 122, in run
    if not plugin.run():
  File "/home/elite/.local/lib/python3.7/site-packages/tradedangerous/plugins/eddblink_plug.py", line 972, in run
    self.importStations()
  File "/home/elite/.local/lib/python3.7/site-packages/tradedangerous/plugins/eddblink_plug.py", line 416, in importStations
    system = self.execute("SELECT System.name FROM System WHERE System.system_id = ?", (system_id,)).fetchone()[0].upper()
TypeError: 'NoneType' object is not subscriptable
 
Oh... we definitely have a problem:

Code:
NOTE: Requesting https://eddb.io/archive/v6/stations.jsonl
NOTE: Downloaded 127.4MB of gziped data  34.2MB/s
NOTE: Processing Stations, this may take a bit: Start time = 2020-06-29 21:37:31.042268
[==============================================    ] 92% Exception in thread Thread-2:
Traceback (most recent call last):
  File "/home/elite/.local/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()
  File "/home/elite/.local/lib/python3.7/threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "./eddblink_listener.py", line 372, in check_update
    trade.main(('trade.py', 'import', '-P', 'eddblink', '-O', options))
  File "/home/elite/.local/lib/python3.7/site-packages/tradedangerous/cli.py", line 70, in main
    trade(argv)
  File "/home/elite/.local/lib/python3.7/site-packages/tradedangerous/cli.py", line 125, in trade
    results = cmdenv.run(tdb)
  File "/home/elite/.local/lib/python3.7/site-packages/tradedangerous/commands/commandenv.py", line 81, in run
    return self._cmd.run(results, self, tdb)
  File "/home/elite/.local/lib/python3.7/site-packages/tradedangerous/commands/import_cmd.py", line 122, in run
    if not plugin.run():
  File "/home/elite/.local/lib/python3.7/site-packages/tradedangerous/plugins/eddblink_plug.py", line 972, in run
    self.importStations()
  File "/home/elite/.local/lib/python3.7/site-packages/tradedangerous/plugins/eddblink_plug.py", line 416, in importStations
    system = self.execute("SELECT System.name FROM System WHERE System.system_id = ?", (system_id,)).fetchone()[0].upper()
TypeError: 'NoneType' object is not subscriptable

Okay, we need to find the line in stations.jsonl that's causing this.

I need to add a debug mode to the code that does the old slower one at a time method so we can get that more easily than manually running that SQL on each line.

Once we know which line is doing it we can figure out why and fix it.

Even if it is upstream, I should still have code to deal with whatever exception this is.

Regarding the other one, maybe coriolis changed the web address?
 
TD updated to 10.7

Check your pip.

EDIT: Running TD with the new "systemfull" eddblink plugin option is thoroughly discouraged, unless you for some reason like the idea of forcing your faithful trade companion to download and process nearly 5GB of data.
 
Last edited:
Server is presently eating a large meal of systems. We'll only need to do this once (unless something major requires a 100% rebuild), I expect it to take a while. I'll resume normal service once it's done consuming this file.
 
TD updated to 10.8.0

new 'purge' option removes any systems that don't have stations anymore, thus preventing the database from getting too wonky.

Any systems not known by the database when adding fleet carrier stations will show up as "Unknown Space".

the 'systemrec' option will update the database with every recently (within ~7 days) visited system, which should make most if not all "Unknown Space" systems be named.
It will also trigger the purge so as not to bloat the DB.
 
Top Bottom