mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-14 00:07:14 +03:00
42 lines
1.3 KiB
Python
Executable File
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)
|