96 lines
2.7 KiB
Python
96 lines
2.7 KiB
Python
from flask import Flask, render_template, request, redirect, make_response, \
|
|
Markup
|
|
from bs4 import BeautifulSoup
|
|
import json
|
|
from util.status import Status
|
|
from util.manip import Manip
|
|
#from util.genHtml import GenerationHtml
|
|
|
|
__author__ = "rick@gnous.eu | Romain"
|
|
__licence__ = "GPL3 or later"
|
|
|
|
app = Flask('ui', static_url_path="/static")
|
|
app.config['TEMPLATES_AUTO_RELOAD'] = True
|
|
|
|
fichierJson = "listeLiens.json"
|
|
listeCategorie = ["autres", "informatique", "musique"]
|
|
|
|
manip = Manip(fichierJson)
|
|
#generateurHml = GenerationHtml(fichierJson, listeCategorie)
|
|
|
|
def renderIndex(recherche=False):
|
|
with open(fichierJson, 'r') as fichier:
|
|
liens = json.load(fichier)
|
|
listeLiens = liens["liens"]
|
|
listeLiens.reverse()
|
|
response = make_response(render_template(
|
|
"index.html",
|
|
listeLiens=listeLiens,
|
|
recherche=recherche))
|
|
return response
|
|
|
|
@app.route('/')
|
|
def slash():
|
|
response = renderIndex()
|
|
response.headers["Content-Security-Policy"] = "default-src 'self'"
|
|
return response
|
|
|
|
@app.route("/categories/<path:subpath>")
|
|
def categories(subpath):
|
|
if subpath in listeCategorie:
|
|
listeLiensCategorie = []
|
|
with open(fichierJson, 'r') as fichierLiens:
|
|
listeLiens = json.load(fichierLiens)
|
|
for lien in listeLiens["liens"]:
|
|
if lien["categorie"] == subpath:
|
|
listeLiensCategorie.append(lien)
|
|
listeLiensCategorie.reverse()
|
|
return render_template("index.html", listeLiens=listeLiensCategorie)
|
|
|
|
@app.route("/ajout")
|
|
def ajout():
|
|
return render_template("ajout.html")
|
|
|
|
@app.route("/recherche")
|
|
def recherche():
|
|
return renderIndex(True)
|
|
|
|
@app.route("/apropos")
|
|
def apropos():
|
|
return app.send_static_file("apropos.html")
|
|
|
|
@app.route("/bizutage", methods=["GET"])
|
|
def bizutage_redirect():
|
|
return redirect('/')
|
|
|
|
@app.route("/bizutage", methods=["POST"])
|
|
def bizutage():
|
|
lien = request.values["lien"]
|
|
|
|
titre = Markup.escape(request.values["titre"])
|
|
desc = Markup.escape(request.values["desc"])
|
|
categorie = Markup.escape(request.values["categories"])
|
|
tagsList = request.values["tags"].split(';')
|
|
tags = []
|
|
for i in tagsList:
|
|
i.strip()
|
|
i = Markup.escape(i)
|
|
if i not in tags:
|
|
tags.append(i)
|
|
|
|
nouvLien = {"titre": titre,
|
|
"url": lien,
|
|
"desc": desc,
|
|
"categorie": categorie,
|
|
"tags": tags
|
|
}
|
|
|
|
ret = manip.ajoutLienJson(nouvLien)
|
|
if ret is Status.BON:
|
|
#generateurHml.majTousFichiers()
|
|
return render_template("ajout.html", reussi=ret.value)
|
|
else:
|
|
return render_template("ajout.html", erreur=ret.value)
|
|
|
|
if __name__ == "__main__":
|
|
app.run()
|