1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-04-14 00:07:14 +03:00
2018-04-02 23:15:57 +01:00

42 lines
1.3 KiB
Python
Executable File

#!/usr/bin/python
#
# build databases from files systems.csv and stations.json from http://eddb.io/api
#
import cPickle
import csv
import json
import requests
def download(filename):
r = requests.get('https://eddb.io/archive/v5/' + filename, stream=True)
print '\n%s\t%dK' % (filename, len(r.content) / 1024)
return r
if __name__ == "__main__":
# system_id by system_name
systems = json.loads(download('systems_populated.json').content) # let json do the utf-8 decode
system_ids = {
str(s['name']) : s['id']
for s in systems
}
# Hack - ensure duplicate system names are pointing at the more interesting system
system_ids['Amo'] = 866
system_ids['K Carinae'] = 375886 # both unpopulated
with open('systems.p', 'wb') as h:
cPickle.dump(system_ids, h, protocol = cPickle.HIGHEST_PROTOCOL)
print '\n%d saved systems' % len(system_ids)
# station_id by (system_id, station_name)
stations = json.loads(download('stations.json').content) # let json do the utf-8 decode
station_ids = {
(x['system_id'], str(x['name'])) : x['id']
for x in stations if x['max_landing_pad_size']
}
with open('stations.p', 'wb') as h:
cPickle.dump(station_ids, h, protocol = cPickle.HIGHEST_PROTOCOL)
print '\n%d saved stations' % len(station_ids)