from flask import Flask, render_template, redirect, request
import random, os
import sys
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, BASE_DIR)
app = Flask(__name__)

@app.route('/')
def main():
    fact = "failed"
    with open(os.path.join(BASE_DIR, "gourdfacts.txt"), 'r') as file:
            data = file.read()
            facts = data.split("\n")
            fact = random.choice(facts)
    return render_template('home.html', logo="/static/logo.png", fact=fact)

@app.route('/nigeria')
def nigeria():
    return render_template('nigeria.html', image="/static/nigeria.png", logo="/static/logo.png")

@app.route('/slope-37')
def slope37():
    return render_template('slope-37.html', logo="/static/logo.png")

@app.route('/repository')
def repository():
    return render_template('repository.html', logo="/static/logo.png")

@app.route('/repository/words')
def words():
    list=""
    with open(os.path.join(BASE_DIR, "words.txt"), 'r') as file:
            data = file.read()
            list = data.split("\n")
    return render_template('repo-list.html', logo="/static/logo.png", list=list, title="Words", category="words")

@app.route('/repository/kid-words')
def kidWords():
    list=""
    with open(os.path.join(BASE_DIR, "kid-words.txt"), 'r') as file:
            data = file.read()
            list = data.split("\n")
    return render_template('repo-list.html', logo="/static/logo.png", list=list, title="Kid Ahh Words", category="kid-words")

@app.route('/repository/phrases')
def phrases():
    list=""
    with open(os.path.join(BASE_DIR, "phrases.txt"), 'r') as file:
            data = file.read()
            list = data.split("\n")
    return render_template('repo-list.html', logo="/static/logo.png", list=list, title="Phrases", category="phrases")

@app.route("/repository/add", methods=["POST", "GET"])
def add():
     if request.method == 'POST':
        PASSWORD = os.environ.get("APP_PASSWORD", "fallback123")
        if request.form.get("password") == PASSWORD:
            item = request.form.get("item")
            category = request.form.get("category")
            if category == "Words":
                with open(os.path.join(BASE_DIR, "words.txt"), 'a') as file:
                    file.write("\n" + item)
                return redirect("/repository/words")
            elif category == "Kid Ahh Words":
                with open(os.path.join(BASE_DIR, "kid-words.txt"), 'a') as file:
                    file.write("\n" + item)
                return redirect("/repository/kid-words")
            elif category == "Phrases":
                with open(os.path.join(BASE_DIR, "phrases.txt"), 'a') as file:
                    file.write("\n" + item)
                return redirect("/repository/phrases")
            else:
                return render_template("add.html", logo="/static/logo.png", message="invalid category")
        else:
             return render_template("add.html", logo="/static/logo.png", message="Incorrect Password")
     else:
          return render_template("add.html", logo="/static/logo.png")
     
@app.route("/repository/words/delete/<string:item>")
def deleteWord(item):
    with open(os.path.join(BASE_DIR, "words.txt"), "r") as f:
        data = f.read()
        lines = data.split("\n")
    with open(os.path.join(BASE_DIR, "words.txt"), "w") as f:
        for line in lines:
            if line != item and line != "":
                if lines.index(line)!=0:
                    f.write("\n")
                f.write(line)
    return redirect("/repository/words")

@app.route("/repository/kid-words/delete/<string:item>")
def deleteKidWord(item):
    with open(os.path.join(BASE_DIR, "kid-words.txt"), "r") as f:
        data = f.read()
        lines = data.split("\n")
    with open(os.path.join(BASE_DIR, "kid-words.txt"), "w") as f:
        for line in lines:
            if line != item and line != "":
                if lines.index(line)!=0:
                    f.write("\n")
                f.write(line)
    return redirect("/repository/kid-words")

@app.route("/repository/phrases/delete/<string:item>")
def deletePhrase(item):
    with open(os.path.join(BASE_DIR, "phrases.txt"), "r") as f:
        data = f.read()
        lines = data.split("\n")
    with open(os.path.join(BASE_DIR, "phrases.txt"), "w") as f:
        for line in lines:
            if line != item and line != "":
                if lines.index(line)!=0:
                    f.write("\n")
                f.write(line)
    return redirect("/repository/phrases")

if __name__ == '__main__':
    app.run(debug=True)