67 lines
1.6 KiB
Python
Executable File
67 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
from jinja2 import Environment
|
|
import sqlite3
|
|
|
|
con = sqlite3.connect('new_eden.db')
|
|
cur = con.cursor()
|
|
|
|
def genLabel(name):
|
|
name = str.replace(name, "-","")
|
|
name = str.replace(name, " ","")
|
|
return name
|
|
|
|
def id2name(id):
|
|
r = cur.execute("SELECT * FROM systems WHERE id="+str(id))
|
|
row = r.fetchone()
|
|
return row[1]
|
|
|
|
systems = []
|
|
deps = []
|
|
processed = []
|
|
|
|
r = cur.execute("SELECT distinct id FROM systems WHERE region_id=10000027")
|
|
for system in r.fetchall():
|
|
|
|
processed.append(system[0])
|
|
|
|
temp_systems = {}
|
|
temp_systems['name'] = id2name(system[0])
|
|
temp_systems['label']= genLabel(id2name(system[0]))
|
|
|
|
temp_gateways = []
|
|
r = cur.execute( "SELECT systen_id_to FROM gates WHERE system_id_from="+str(system[0]) )
|
|
for gateway in r.fetchall():
|
|
temp_gateways.append(genLabel(id2name(gateway[0])))
|
|
deps.append(gateway[0])
|
|
temp_systems['gateways'] = temp_gateways
|
|
|
|
systems.append(temp_systems)
|
|
|
|
|
|
for dep in deps:
|
|
if not dep in processed:
|
|
temp_systems = {}
|
|
temp_systems['name'] = id2name(dep)
|
|
temp_systems['label']= genLabel(id2name(dep))
|
|
processed.append(dep)
|
|
systems.append(temp_systems)
|
|
|
|
con.close()
|
|
|
|
template = """
|
|
digraph {{name}} {
|
|
concentrate=true
|
|
layout=sfdp
|
|
overlap = false;
|
|
splines = true;
|
|
|
|
{% for system in systems %}
|
|
"{{system.label}}" [label="{{system.name}}", URL="https://evemaps.dotlan.net/system/{{system.name}}"]
|
|
{% for gateway in system.gateways %} "{{system.label}}" -> "{{gateway}}" [arrowhead="none"];
|
|
{% endfor %}{% endfor %}
|
|
}
|
|
"""
|
|
print(Environment().from_string(template).render(systems=systems))
|
|
# print(systems)
|