67 lines
1.6 KiB
Python
67 lines
1.6 KiB
Python
|
#!/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)
|