-
Notifications
You must be signed in to change notification settings - Fork 1
/
photo.py
168 lines (125 loc) · 4.68 KB
/
photo.py
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
from flask import Flask
from flask import sessions
from flask import request
from flask import render_template
from flask import redirect, url_for
from werkzeug.utils import secure_filename
import json
import os
from modules.Login import Login
from modules.Gallery import Gallery
from modules.Photos import Photos
from definition import *
app = Flask(__name__)
ALLOWED_EXTENSIONS = set(['jpg', 'jpeg'])
session = {}
'''
for int routes
@app.route('/<int:id>')
def func(id):
print(id)
'''
photos_obj = Photos()
@app.route('/')
@app.route('/index')
def index():
if 'type' in session:
return redirect(url_for('galleries'))
return render_template("index.html")
@app.route('/login', methods=['POST'])
def do_login():
if request.method == "POST":
user_name = request.form['username']
password = request.form['password']
login_obj = Login()
result = login_obj.login(user_name, password)
print(result['type'])
if result['result']:
session['type'] = result['type']
response = {'success': result}
return json.dumps(response)
@app.route('/logout')
def do_logout():
session.pop('type', None)
return redirect(url_for('index'))
# -------------- Gallery Routes ----------------
@app.route('/galleries')
def galleries():
if 'type' in session:
gallery_obj = Gallery()
galleries = gallery_obj.get_all_gallery()
return render_template("gallery.html", galleries=galleries, session=session)
else:
return redirect(url_for("index"))
@app.route('/galleries/add', methods=['POST'])
def add_galleries():
if 'type' in session:
if request.method == "POST":
gallery_name = request.form['galleryName']
gallery_obj = Gallery()
result = gallery_obj.add_gallery(gallery_name)
response = {'success':result}
return json.dumps(response)
else:
response = {'success': False}
return json.dumps(response)
@app.route('/galleries/edit', methods=['POST'])
def edit_galleries():
if request.method == "POST":
new_name = request.form['newName']
gallery_name = request.form['galleryName']
gallery_obj = Gallery()
result = gallery_obj.edit_gallery_name(gallery_name, new_name)
response = {'success': result}
return json.dumps(response)
@app.route('/galleries/delete', methods=['POST'])
def delete_galleries():
if request.method == "POST":
gallery_name = request.form['galleryName']
gallery_obj = Gallery()
result = gallery_obj.delete_gallery(gallery_name)
response = {'success': result}
return json.dumps(response)
# -------------- Gallery Routes ----------------
# -------------- Gallery Photos Routes ----------------
@app.route('/galleries/album/<gallery_name>', methods=['GET'])
def gallery(gallery_name):
if 'type' in session:
photos_obj = Photos()
photos = photos_obj.get_all_gallery_photos(gallery_name)
return render_template("photos.html", photos=photos, gallery_folder=Gallery_Folder,gallery_name=gallery_name, session=session)
else:
return redirect(url_for("index"))
@app.route('/galleries/album/photos/delete', methods=['POST'])
def delete_gallery_photo():
if request.method == "POST":
gallery_name = request.form['galleryName']
photo_name = request.form['photoName']
result = photos_obj.delete_gallery_photos(gallery_name, photo_name)
response = {'success': result}
return json.dumps(response)
@app.route('/galleries/album/<gallery_name>/upload', methods=['GET','POST'])
def upload_gallery_photo(gallery_name):
app.config['UPLOAD_FOLDER'] = Gallery_Folder+gallery_name
if request.method == 'POST':
# check if the post request has the file part
if 'file' not in request.files:
return redirect(url_for('gallery', gallery_name=gallery_name))
file = request.files['file']
# if user does not select file, browser also
# submit a empty part without filename
if file.filename == '':
msg = 'No selected file'
return redirect(request.url)
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return redirect(url_for('gallery', gallery_name=gallery_name))
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
# -------------- Gallery Photos Routes ----------------
#if __name__ == "__main__":
# app.run(port=8118, debug=False)
#else:
# application = app.server