Modifications mineures

This commit is contained in:
Rick 2020-09-29 11:28:56 +02:00
parent 6320b99070
commit 60c79a05a9
Signed by: Rick
GPG key ID: 9570A7DB7CB2F436

78
app.py
View file

@ -12,27 +12,29 @@ app.config['TEMPLATES_AUTO_RELOAD'] = True
class Status(Enum): class Status(Enum):
ERREUR_LIEN = "Le lien doit être en http ou https et valide !" ERREUR_LIEN = "Le lien doit être en http ou https et valide !"
ERREUR_INCONNUE = "Une erreur inconnue a été rencontrée !"
BON = "Lien ajouté !" BON = "Lien ajouté !"
def ecritureFichierHtml(nouvLien, cheminFichier): class Manip():
with open(cheminFichier, 'r+') as file: def ecritureFichierHtml(nouvLien, cheminFichier):
soup = BeautifulSoup(file, 'html.parser') with open(cheminFichier, 'r+') as file:
soup.find("hr").insert_after("", nouvLien) soup = BeautifulSoup(file, 'html.parser')
file.seek(0) soup.find("hr").insert_after("", nouvLien)
file.write(soup.prettify()) file.seek(0)
file.write(soup.prettify())
def valideUrl(url: str) -> bool:
# thx django def valideUrl(url: str) -> bool:
regex = re.compile( # thx django
r'^(?:http|ftp)s?://' # http:// or https:// regex = re.compile(
r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' # domain... r'^(?:http|ftp)s?://' # http:// or https://
r'localhost|' # localhost... r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' # domain...
r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|' # ...or ipv4 r'localhost|' # localhost...
r'\[?[A-F0-9]*:[A-F0-9:]+\]?)' # ...or ipv6 r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|' # ...or ipv4
r'(?::\d+)?' # optional port r'\[?[A-F0-9]*:[A-F0-9:]+\]?)' # ...or ipv6
r'(?:/?|[/?]\S+)$', re.IGNORECASE) r'(?::\d+)?' # optional port
r'(?:/?|[/?]\S+)$', re.IGNORECASE)
return bool(re.search(regex, url))
return bool(re.search(regex, url))
@app.route('/') @app.route('/')
def slash(): def slash():
@ -54,29 +56,25 @@ def bizutage_redirect():
@app.route("/bizutage", methods=["POST"]) @app.route("/bizutage", methods=["POST"])
def bizutage(): def bizutage():
if request.method == "POST": lien = request.values['lien']
lien = request.values['lien'] if not valideUrl(lien):
if not 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"> nouvLien = f"""<div class="elem">
<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") nouvLienHtml = BeautifulSoup(nouvLien, "html.parser")
ecritureFichierHtml(nouvLienHtml, "static/index.html") ecritureFichierHtml(nouvLienHtml, "static/index.html")
ecritureFichierHtml(nouvLienHtml, "lite/index.html") ecritureFichierHtml(nouvLienHtml, "lite/index.html")
else:
print("error")
return render_template("ajout.html", reussi=Status.BON.value) return render_template("ajout.html", reussi=Status.BON.value)
if __name__ == "__main__": if __name__ == "__main__":