#!/usr/bin/python3
import os
import time
from flask import Flask, request, abort
app = Flask(__name__)

token = "<REDACTED>"

# Built static sites, NEEDS AUTH AND PAYLOAD

@app.route("/.update/wikyll.swee.codes", methods=['POST'])
def wikyll_swee_codes():
    print(request.form.get("token"))
    if request.form.get("token").strip() != token:
        abort(403)
    timee = time.time()
    file = request.files["tarball"]
    file.save("/tmp/wikyllsweecodes.tar.xz")
    os.system("cd /var/www/wikyll.swee.codes; rm -rf /var/www/wikyll.swee.codes/*; tar -xJvf /tmp/wikyllsweecodes.tar.xz; rm /tmp/wikyllsweecodes.tar.xz")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

@app.route("/.update/blogs.swee.codes", methods=['POST'])
def blogs_swee_codes():
    print(request.form.get("token"))
    if request.form.get("token").strip() != token:
        abort(403)
    timee = time.time()
    file = request.files["tarball"]
    file.save("/tmp/blogssweecodes.tar.xz")
    os.system("mkdir /var/www/swee.codes/blogs.new; tar -C /var/www/swee.codes/blogs.new -xJvf /tmp/blogssweecodes.tar.xz; rm /tmp/blogssweecodes.tar.xz; mv /var/www/swee.codes/blogs /var/www/swee.codes/blogs.old; mv /var/www/swee.codes/blogs.new /var/www/swee.codes/blogs; rm -rf /var/www/swee.codes/blogs.old")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

@app.route("/.update/recaman.swee.codes", methods=['POST'])
def recaman_swee_codes():
    print(request.form.get("token"))
    if request.form.get("token").strip() != token:
        abort(403)
    timee = time.time()
    file = request.files["tarball"]
    file.save("/tmp/recaman.tar.xz")
    os.system("cd /var/www/recaman.swee.codes; rm -rf /var/www/recaman.swee.codes/*; tar -xJvf /tmp/recaman.tar.xz; rm /tmp/recaman.tar.xz")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

# Git tasks - Does not need auth as it only syncs

@app.route("/.update/swee.codes", methods=["POST"])
def swee_codes():
    timee = time.time()
    os.system("cd /var/www/swee.codes; git fetch; git reset --hard origin/main")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

@app.route("/.update/peppermint.node.swee.codes", methods=["POST"])
def peppermint_node_swee_codes():
    timee = time.time()
    os.system("cd /var/www/peppermint.node.swee.codes; git fetch; git reset --hard origin/main")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

@app.route("/.update/zero.swee.codes", methods=["POST"])
def zero_swee_codes():
    timee = time.time()
    os.system("cd /var/www/zero.swee.codes; git fetch; git reset --hard origin/main")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

@app.route("/.update/ircat.xyz", methods=["POST"])
def ircat_xyz():
    timee = time.time()
    os.system("cd /var/www/ircat.xyz; git fetch; git reset --hard origin/main")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

@app.route("/.update/2022.swee.codes", methods=["POST"])
def legacy_swee_codes():
    timee = time.time()
    os.system("cd /var/www/2022.swee.codes; git fetch; git reset --hard origin/main")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

@app.route("/.update/2023.swee.codes", methods=["POST"])
def legacy2_swee_codes():
    timee = time.time()
    os.system("cd /var/www/2023.swee.codes; git fetch; git reset --hard origin/main")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

@app.route("/.update/sweeux.org", methods=["POST"])
def sweeux_org():
    timee = time.time()
    os.system("cd /var/www/sweeux.org; git fetch; git reset --hard origin/main")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

@app.route("/.update/depresst0.sweeux.org", methods=["POST"])
def depresst0_sweeux_org():
    timee = time.time()
    os.system("cd /var/www/depresst0.sweeux.org; git fetch; git reset --hard origin/main")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

@app.route("/.update/mathmodels.sweeux.org", methods=["POST"])
def mathmodels_sweeux_org():
    timee = time.time()
    os.system("cd /var/www/mathmodels.sweeux.org; git fetch; git reset --hard origin/main")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

@app.route("/.update/admin.swee.codes", methods=["POST"])
def admin_swee_codes():
    timee = time.time()
    os.system("cd /var/www/admin.swee.codes; git fetch; git reset --hard origin/main")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

@app.route("/.update/znc.swee.codes", methods=["POST"])
def znc_swee_codes():
    timee = time.time()
    os.system("cd /var/www/znc.swee.codes; git fetch; git reset --hard origin/main")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

@app.route("/.update/svc.swee.codes", methods=["POST"])
def svc_swee_codes():
    timee = time.time()
    os.system("cd /var/www/svc.swee.codes; git fetch; git reset --hard origin/main")
    elapsed = round(time.time() - timee, 3)
    return f"complete ({elapsed}s)"

app.run(host='127.0.0.1',port=4328)