Ajout de la gallerie et et envoie de fichiers
This commit is contained in:
parent
b2c4dc780e
commit
318ab80dc8
146
pywallter.py
Executable file
146
pywallter.py
Executable file
@ -0,0 +1,146 @@
|
||||
#!/usr/local/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
from flask import Flask, request, flash, render_template, url_for, session, redirect, abort, make_response, send_file, escape, send_from_directory
|
||||
from werkzeug.utils import secure_filename
|
||||
from wand.image import Image
|
||||
from wtforms import BooleanField, StringField, IntegerField, PasswordField, validators
|
||||
import sqlite3
|
||||
from flask_bcrypt import Bcrypt
|
||||
|
||||
|
||||
|
||||
from views.blog import blog
|
||||
from views.filesupload import filesupload
|
||||
from views.inscription import inscription
|
||||
from views.profil import profil
|
||||
from views.logs import logs
|
||||
from views.loginlogout import loginlogout
|
||||
|
||||
from tools.databaseinit import init_db, init_dir
|
||||
|
||||
import glob, os, sys, time
|
||||
|
||||
app = Flask( 'pywallter' )
|
||||
bcrypt = Bcrypt(app)
|
||||
|
||||
if init_db():
|
||||
print ("La base de données a été créer")
|
||||
exit()
|
||||
|
||||
if init_dir():
|
||||
print ("Le repertoire des utilisateurs a été créer")
|
||||
exit()
|
||||
|
||||
|
||||
|
||||
# Set the secret key. Keep this really secret
|
||||
app.secret_key = 'klfkdlfkdslfkln234325;cx!' # Chiffre les cookies si j'ai bien capté.
|
||||
# À générer aléatoirement impérativement avant de mettre en ligne.
|
||||
|
||||
#### Variables ####################################################################################
|
||||
|
||||
|
||||
DOSSIER_PERSO='users/'
|
||||
|
||||
extensionimg = {'.jpg', '.JPG', '.png', '.PNG', '.gif', '.GIF', '.bmp', '.BMP', '.jpeg', '.JPEG' }
|
||||
|
||||
##################################################################################################
|
||||
|
||||
app.register_blueprint(inscription)
|
||||
app.register_blueprint(blog)
|
||||
app.register_blueprint(filesupload)
|
||||
app.register_blueprint(profil)
|
||||
app.register_blueprint(logs)
|
||||
app.register_blueprint(loginlogout)
|
||||
|
||||
@app.route( '/gallery/')
|
||||
def gallery():
|
||||
if 'username' in session :
|
||||
UTILISATEUR='%s' % escape(session['username'])
|
||||
THUMBNAILS=DOSSIER_PERSO + UTILISATEUR + '/images/thumbnails/'
|
||||
fichiers = [fich for fich in os.listdir(THUMBNAILS)]
|
||||
return render_template('gallery.html', THUMBNAILS=THUMBNAILS, fichiers=fichiers)
|
||||
else :
|
||||
return redirect(url_for('login'))
|
||||
|
||||
@app.route( '/parametres/', methods=['GET','POST'] )
|
||||
def parametres() :
|
||||
if 'username' in session :
|
||||
return render_template('parametres.html')
|
||||
else:
|
||||
return redirect(url_for('login'))
|
||||
|
||||
@app.route('/up/view/<nom>')
|
||||
def download(nom):
|
||||
if 'username' in session :
|
||||
UTILISATEUR='%s' % escape(session['username'])
|
||||
nom = secure_filename(nom)
|
||||
if os.path.isfile(DOSSIER_PERSO + UTILISATEUR + '/files/' + nom): # si le fichier existe
|
||||
return send_file(DOSSIER_PERSO + UTILISATEUR + '/files/' + nom, as_attachment=True) # on l'envoie
|
||||
else:
|
||||
flash(u'Fichier {nom} inexistant.'.format(nom=nom), 'error')
|
||||
return redirect(url_for('list')) # sinon on redirige vers la liste, avec un message d'erreur
|
||||
else :
|
||||
return redirect(url_for('login'))
|
||||
|
||||
@app.route('/remove/<nom>')
|
||||
def remove(nom):
|
||||
if 'username' in session :
|
||||
UTILISATEUR='%s' % escape(session['username'])
|
||||
nom = secure_filename(nom)
|
||||
if os.path.isfile(DOSSIER_PERSO + UTILISATEUR + '/files/' + nom): # si le fichier existe
|
||||
os.remove(DOSSIER_PERSO + UTILISATEUR + '/files/' + nom) # on le supprime
|
||||
return redirect(url_for('filesupload.list', _external=True))
|
||||
else:
|
||||
if os.path.isfile(DOSSIER_PERSO + UTILISATEUR + '/images/thumbnails/' + nom): # si le fichier existe
|
||||
os.remove(DOSSIER_PERSO + UTILISATEUR + '/images/thumbnails/' + nom) # on le supprime
|
||||
os.remove(DOSSIER_PERSO + UTILISATEUR + '/images/' + nom) # on le supprime
|
||||
return redirect(url_for('gallery'))
|
||||
else:
|
||||
flash(u'Fichier {nom} inexistant.'.format(nom=nom), 'error')
|
||||
return redirect(url_for('filesupload.list', _external=True)) # sinon on redirige vers la liste, avec un message d'erreur
|
||||
|
||||
else :
|
||||
return redirect(url_for('login'))
|
||||
|
||||
|
||||
@app.route('/myfiles/<filename>')
|
||||
def myfiles(filename):
|
||||
if 'username' in session :
|
||||
UTILISATEUR='%s' % escape(session['username'])
|
||||
return send_from_directory(
|
||||
os.path.join(DOSSIER_PERSO, UTILISATEUR, 'files'), filename )
|
||||
else :
|
||||
return 403
|
||||
|
||||
|
||||
@app.route('/myfiles/images/<filename>')
|
||||
def myimg(filename):
|
||||
if 'username' in session :
|
||||
UTILISATEUR='%s' % escape(session['username'])
|
||||
return send_from_directory(
|
||||
os.path.join(DOSSIER_PERSO, UTILISATEUR, 'images'), filename )
|
||||
else :
|
||||
return 403
|
||||
|
||||
@app.route('/myfiles/images/thumbnails/<filename>')
|
||||
def mythumbnails(filename):
|
||||
if 'username' in session :
|
||||
UTILISATEUR='%s' % escape(session['username'])
|
||||
return send_from_directory(
|
||||
os.path.join(DOSSIER_PERSO, UTILISATEUR, 'images/thumbnails'), filename )
|
||||
else :
|
||||
return 403
|
||||
|
||||
@app.route( '/' )
|
||||
def index():
|
||||
if 'username' in session :
|
||||
return redirect(url_for('filesupload.uploadfiles'))
|
||||
else :
|
||||
return redirect(url_for('loginlogout.login', _external=True))
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__' :
|
||||
app.run(host='127.0.0.1', port=8080, debug=True)
|
Loading…
Reference in New Issue
Block a user