from flask import Flask, render_template, request
import os
import json
import mistletoe

app = Flask(__name__, static_folder='static')
contents = []
rut = "./static/assets/"
box = 'box'
showbar = 'showbar'

f = open('db.json',)
data = json.load(f,)

dictio = {}

folders = os.listdir(rut)

ii = 0
for folder in folders:
    dictio[folder] = {}
    subfolders = os.listdir(rut+folder)
    os.system("find . -name '.DS_Store' -type f -delete")
    for subfolder in subfolders:
        os.system("find . -name '.DS_Store' -type f -delete")
        if subfolder not in dictio[folder]:
            dictio[folder][subfolder] = []
        files = os.listdir(rut+folder+'/'+subfolder)
        # print(files)
        for file in files:
            # print(file)
            os.system("find . -name '.DS_Store' -type f -delete")
            if file not in dictio[folder][subfolder]:
                file_path = rut+folder+'/'+subfolder+'/'+file
                # print(file_path)
                if file.endswith("txt"):
                    with open(file_path) as txt:
                        output = txt.read()
                        dictio[folder][subfolder].append(output)
                elif file.endswith("md"):
                    with open(file_path, 'r') as md:
                        output = mistletoe.markdown(md)
                        dictio[folder][subfolder].append(output)
                else:
                    dictio[folder][subfolder].append(file)


with open("db.json", "w") as outfile:
     json.dump(dictio, outfile)

# for key in data:
#     for z in data[key][box]:
#         print(rut+key+box+z)


@app.route("/", methods=['GET', 'POST'])
def platform():
    return render_template("index.html", data=data, folder=folder, box=box, showbar=showbar, rut=rut)


@app.route('/print/', methods=['POST', 'GET'])
def dat():
    if request.method == 'GET':
        return f'nope, go back to home'
    if request.method == 'POST':
        form_data = request.form.getlist('test')
        return render_template('prin.html', form_data=form_data, data=data, folder=folder, box=box, showbar=showbar, rut=rut)
