summaryrefslogtreecommitdiff
path: root/app.py
blob: 806280bf600f901d24ce5a32d699268cacba8e9a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Jul 26 17:31:48 2021

@author: sekhmet
"""

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import flask

import data_textes as data
#from data_textes import tabletextes, tablecomplete, extraire_textes_par_cat
import gere_grille as g
import gere_erreurs as e
from config import DEFAUT, CONFIG


def initialise_mode_beta():
    global beta
    hote = flask.request.host
    if hote[:4] == "beta":
        print("** Mode bêta !**")
        return True
    else:
        return False


app = flask.Flask(__name__)


@app.route('/', methods=["GET", "POST"])
def index():
    liste_err = e.initialise_erreurs()
    tablecomplete = data.lire_fichier_csv_simple(CONFIG["fichier_bingo"])

    conf = DEFAUT.copy()
    idg = flask.request.args.get("grille", "") # Id de grille passée en param (ou pas)
    if idg != "": # Si on a mis un url de grille
        
        confimport = g.decode_grille(idg, liste_err)
        if confimport == {}: # Erreur à la génération
             #tabletextes = data.extraire_qr(tablecomplete, categ) # Toutes les remarques
             bingo = g.genere_grille(DEFAUT, tablecomplete, liste_err)
             e.erreur("L'url de la grille n'est pas valide...", liste_err)
        else:
            conf.update(confimport)
            bingo=conf["grille"]
    else:
        # On récupère les données post (et ça sera défaut si y'a rien)
        if flask.request.method == "POST":
            e.debug("avant utilisation post : "+str(conf), liste_err)
            conf.update(g.gere_donnees_custom(flask.request.form, liste_err))
            e.debug("après utilisation post : "+str(conf), liste_err)

        #tabletextes = data.extraire_qr(tablecomplete, conf["categories"])
        bingo = g.genere_grille(conf, tablecomplete, liste_err) # aléatoire avec la config donnée
        
    chainecode = g.encode_grille(conf, bingo, liste_err)
    
    # Récupérer la partie sauvegardée si il y a
    sauvegarde = flask.request.args.get("sauv","")
    return flask.render_template("index.html", bingo=bingo, chainecode=chainecode, conf=conf, sauv=sauvegarde, e=liste_err[0]+liste_err[1]+liste_err[2])
 
    
@app.route('/custom')
def custom():
    liste_err = e.initialise_erreurs()

    tablecomplete = data.lire_fichier_csv_simple(CONFIG["fichier_bingo"])
    categ, tableqr = data.extraire_textes_par_cat(tablecomplete)

    nombre_categ = [len(elt) for elt in tableqr]
    nbdata = len(tablecomplete)
    print(nombre_categ)
    return flask.render_template("custom.html", DEFAUT=DEFAUT,CONFIG=CONFIG, nbdata=nbdata, categ=categ, nbparcat = nombre_categ, e=liste_err[0]+liste_err[1]+liste_err[2])

@app.route('/apropos')
def apropos():
    #liste_err = e.initialise_erreurs()
    table_version = data.lire_fichier_csv_simple(CONFIG["fichier_changelog"])

    
    return flask.render_template("apropos.html", version = table_version)

# Liste de toutes les répliques
@app.route('/liste')
def liste():
    #liste_err = e.initialise_erreurs()
    tablecomplete = data.lire_fichier_csv_simple(CONFIG["fichier_bingo"])
    categ, tableqr = data.extraire_textes_par_cat(tablecomplete)
    
    return flask.render_template("liste.html", lcateg = categ, tableqr=tableqr)

if __name__ == "__main__":
 #   print("Mode debug maison : "+str(niveau_debug))
    app.run(host='0.0.0.0',debug=True)