Ajout des catégories

This commit is contained in:
Rick 2020-10-01 00:55:37 +02:00
parent 60c79a05a9
commit 3c7b14685e
Signed by: Rick
GPG key ID: 9570A7DB7CB2F436
7 changed files with 219 additions and 12 deletions

25
app.py
View file

@ -17,9 +17,10 @@ class Status(Enum):
class Manip(): class Manip():
def ecritureFichierHtml(nouvLien, cheminFichier): def ecritureFichierHtml(nouvLien, cheminFichier):
nouvLienHtml = BeautifulSoup(nouvLien, "html.parser")
with open(cheminFichier, 'r+') as file: with open(cheminFichier, 'r+') as file:
soup = BeautifulSoup(file, 'html.parser') soup = BeautifulSoup(file, 'html.parser')
soup.find("hr").insert_after("", nouvLien) soup.find("hr").insert_after("", nouvLienHtml)
file.seek(0) file.seek(0)
file.write(soup.prettify()) file.write(soup.prettify())
@ -42,6 +43,10 @@ def slash():
response.headers["Content-Security-Policy"] = "default-src 'self'" response.headers["Content-Security-Policy"] = "default-src 'self'"
return response return response
@app.route("/categories/<path:subpath>")
def categories(subpath):
return app.send_static_file(subpath + ".html")
@app.route("/ajout") @app.route("/ajout")
def ajout(): def ajout():
return render_template("ajout.html") return render_template("ajout.html")
@ -56,25 +61,27 @@ def bizutage_redirect():
@app.route("/bizutage", methods=["POST"]) @app.route("/bizutage", methods=["POST"])
def bizutage(): def bizutage():
lien = request.values['lien'] lien = request.values["lien"]
if not valideUrl(lien): if not Manip.valideUrl(lien):
return render_template( return render_template(
"ajout.html", "ajout.html",
erreur=Status.ERREUR_LIEN.value erreur=Status.ERREUR_LIEN.value
) )
titre = Markup.escape(request.values['titre']) titre = Markup.escape(request.values["titre"])
desc = Markup.escape(request.values['desc']) desc = Markup.escape(request.values["desc"])
nouvLien = f"""<div class="elem"> categorie = Markup.escape(request.values["categories"])
nouvLien = f"""<div class="elem {categorie}">
<h2>{titre}</h2> <h2>{titre}</h2>
<p><a href=\"{lien}\">Lien</a></p> <p><a href=\"{lien}\">Lien</a></p>
<hr> <hr>
<p>{desc}</p> <p>{desc}</p>
</div>""" </div>"""
nouvLienHtml = BeautifulSoup(nouvLien, "html.parser")
ecritureFichierHtml(nouvLienHtml, "static/index.html") Manip.ecritureFichierHtml(nouvLien, "static/index.html")
ecritureFichierHtml(nouvLienHtml, "lite/index.html") Manip.ecritureFichierHtml(nouvLien, "static/" + categorie + ".html")
Manip.ecritureFichierHtml(nouvLien, "lite/index.html")
Manip.ecritureFichierHtml(nouvLien, "lite/" + categorie + ".html")
return render_template("ajout.html", reussi=Status.BON.value) return render_template("ajout.html", reussi=Status.BON.value)
if __name__ == "__main__": if __name__ == "__main__":

54
static/autres.html Normal file
View file

@ -0,0 +1,54 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<link href="/static/styles/base.css" rel="stylesheet"/>
<link href="/static/styles/index.css" rel="stylesheet"/>
<title>
Autre
</title>
</head>
<body>
<div id="menu">
<h1>
Liens
</h1>
<header>
<!-- <a href="recherche/">
Recherche
</a> -->
<a href="/ajout">
Ajout
</a>
<a href="/apropos">
A propos
</a>
</header>
</div>
<div id="categories">
<ul>
<li>
<a href="/">
Toutes catégories
</a>
</li>
<li>
<a href="/categories/informatique" class="informatique">
Informatique
</a>
</li>
<li>
<a href="/categories/musique" class="musique">
Musique
</a>
</li>
<li>
<a href="/categories/autres" class="autres">
Autres
</a>
</li>
</ul>
</div>
<hr/>
</body>
</html>

View file

@ -10,10 +10,19 @@
<div id="menu"> <div id="menu">
<h1>Liens</h1> <h1>Liens</h1>
<header> <header>
<!-- <a href="recherche/">Recherche</a> -->
<a href="ajout">Ajout</a> <a href="ajout">Ajout</a>
<a href="apropos">A propos</a> <a href="apropos">A propos</a>
</header> </header>
</div> </div>
<div id="categories">
<ul>
<li><a href="/">Toutes catégories</a></li>
<li><a href="/categories/informatique" class="informatique">Informatique</a></li>
<li><a href="/categories/musique" class="musique">Musique</a></li>
<li><a href="/categories/autres" class="autres">Autres</a></li>
</ul>
</div>
<p>Rafraichissez la page pour voir les derniers liens ajoutés.</p> <p>Rafraichissez la page pour voir les derniers liens ajoutés.</p>
<hr> <hr>

54
static/informatique.html Normal file
View file

@ -0,0 +1,54 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<link href="/static/styles/base.css" rel="stylesheet"/>
<link href="/static/styles/index.css" rel="stylesheet"/>
<title>
Informatique
</title>
</head>
<body>
<div id="menu">
<h1>
Liens
</h1>
<header>
<!-- <a href="/recherche">
Recherche
</a> -->
<a href="/ajout">
Ajout
</a>
<a href="/apropos">
A propos
</a>
</header>
</div>
<div id="categories">
<ul>
<li>
<a href="/">
Toutes catégories
</a>
</li>
<li>
<a href="/categories/informatique" class="informatique">
Informatique
</a>
</li>
<li>
<a href="/categories/musique" class="musique">
Musique
</a>
</li>
<li>
<a href="/categories/autres" class="autres">
Autres
</a>
</li>
</ul>
</div>
<hr/>
</body>
</html>

54
static/musique.html Normal file
View file

@ -0,0 +1,54 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<link href="/static/styles/base.css" rel="stylesheet"/>
<link href="/static/styles/index.css" rel="stylesheet"/>
<title>
Musique
</title>
</head>
<body>
<div id="menu">
<h1>
Liens
</h1>
<header>
<!-- <a href="recherche/">
Recherche
</a> -->
<a href="/ajout">
Ajout
</a>
<a href="/apropos">
A propos
</a>
</header>
</div>
<div id="categories">
<ul>
<li>
<a href="/">
Toutes catégories
</a>
</li>
<li>
<a href="/categories/informatique" class="informatique">
Informatique
</a>
</li>
<li>
<a href="/categories/musique" class="musique">
Musique
</a>
</li>
<li>
<a href="/categories/autres" class="autres">
Autres
</a>
</li>
</ul>
</div>
<hr/>
</body>
</html>

View file

@ -1,7 +1,24 @@
#categories {
height: 3em;
}
#categories ul { #categories ul {
list-style-type: none; list-style-type: none;
display: flex; display: flex;
justify-content:space-around; justify-content:space-around;
height: 100%;
}
#categories li {
padding-top: 1em;
}
#categories a {
color: white;
text-decoration: none;
padding: 2em;
padding-top: 1em;
padding-bottom: 1em;
} }
.elem { .elem {
@ -29,3 +46,15 @@
padding: 5px; padding: 5px;
background-color: dimgray; background-color: dimgray;
} }
.informatique {
background-color: #3A506B;
}
.musique {
background-color: #A4036F;
}
.autres {
background-color: #388659;
}