You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.7 KiB
56 lines
1.7 KiB
import sqlite3 as sql |
|
import subprocess |
|
|
|
def getmaps(database): |
|
output = [] |
|
con = sql.connect(database) |
|
with con: |
|
cursor = con.cursor() |
|
try: |
|
# get all maps in database |
|
cursor.execute("select distinct mapid from Cts_times;") |
|
output = cursor.fetchall() |
|
except sql.Error: |
|
print("Shit is fucked.") |
|
return output |
|
|
|
# if there is no query then it outputs the index file. |
|
def getcontent(query=None): |
|
cmd = [("./cts")] |
|
proc = subprocess.Popen(cmd, env=query, stdout=subprocess.PIPE, shell=True) |
|
# communicate returns 'bytes' class with function 'decode' |
|
return proc.communicate()[0].decode('utf-8') |
|
|
|
def renderindex(template): |
|
# no env variable |
|
table = getcontent() |
|
filename = "./output/index.html" |
|
with open(filename, 'w+') as fout: |
|
fout.write(template % (table)) |
|
fout.close |
|
pass |
|
|
|
def main(): |
|
template = "" |
|
with open("template.html", 'r') as fin: |
|
template = fin.read() |
|
renderindex(template) |
|
maps = getmaps("db/cts.db") |
|
with open("template_map.html", 'r') as fin: |
|
template = fin.read() |
|
# for each map generate an html file. |
|
for game_map in maps: |
|
# game_map is a tuple obj. |
|
map_name = game_map[0] |
|
query = {"QUERY_STRING" : ("map=%s" % map_name)} |
|
table = getcontent(query) |
|
filename = ("./output/maps/%s.html" % map_name) |
|
with open(filename, 'w+') as fout: |
|
title = map_name |
|
fout.write(template % (title, map_name, table)) |
|
pass |
|
|
|
if __name__ == "__main__": |
|
print("allmaps.py - Generating .html files for all maps.") |
|
main() |
|
pass
|
|
|