Ajout des catégories
This commit is contained in:
parent
60c79a05a9
commit
3c7b14685e
7 changed files with 219 additions and 12 deletions
27
app.py
27
app.py
|
@ -1,5 +1,5 @@
|
||||||
from flask import Flask, render_template, request, redirect, make_response, \
|
from flask import Flask, render_template, request, redirect, make_response, \
|
||||||
Markup
|
Markup
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
import re
|
import re
|
||||||
|
@ -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
54
static/autres.html
Normal 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>
|
|
@ -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
54
static/informatique.html
Normal 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
54
static/musique.html
Normal 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>
|
|
@ -45,4 +45,4 @@ header a:hover {
|
||||||
#lienAccueil {
|
#lienAccueil {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 {
|
||||||
|
@ -28,4 +45,16 @@
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
background-color: dimgray;
|
background-color: dimgray;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.informatique {
|
||||||
|
background-color: #3A506B;
|
||||||
|
}
|
||||||
|
|
||||||
|
.musique {
|
||||||
|
background-color: #A4036F;
|
||||||
|
}
|
||||||
|
|
||||||
|
.autres {
|
||||||
|
background-color: #388659;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue