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("templates/overview.html", 'r') as fin: template = fin.read() renderindex(template) maps = getmaps("db/cts.db") with open("templates/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