Skip to content

Commit ff9bcac

Browse files
committed
migrate main code to blueprint
1 parent 4ae8f44 commit ff9bcac

File tree

2 files changed

+106
-88
lines changed

2 files changed

+106
-88
lines changed

app.py

Lines changed: 19 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,12 @@
1111

1212
from tools.utils import redirect
1313
from lightdb import LightDB
14+
15+
# Blueprints
1416
from tools.geo_loc import geo_loc_bp
1517
from tools.auth import auth_bp
18+
from tools.index import index_bp
19+
1620
from tools.db_auth import is_admin_user
1721

1822
from werkzeug.exceptions import RequestEntityTooLarge
@@ -32,12 +36,14 @@
3236
app.config['MAX_CONTENT_LENGTH'] = 1000000 * 1024 * 1024
3337
app.config['SECRET_KEY'] = str(random.randint(99999, 9999999))
3438
app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1)
39+
3540
app.register_blueprint(geo_loc_bp)
3641
app.register_blueprint(auth_bp)
42+
app.register_blueprint(index_bp)
3743

3844
@app.route('/')
3945
def index():
40-
# return redirect(url_for('upload'))
46+
# return redirect(url_for('index.upload'))
4147
return render_template('index.html')
4248

4349
@app.route('/dashboard')
@@ -47,7 +53,7 @@ def dashboard():
4753

4854
if session.get('loggedIn', False) == False:
4955
flash('You must be signed in to view the dashboard!', 'error')
50-
return redirect(url_for('upload'))
56+
return redirect(url_for('index.upload'))
5157

5258
username = session.get('username')
5359
userfiles = []
@@ -57,7 +63,7 @@ def dashboard():
5763
flash('An error occurred. Please sign in again.', 'error')
5864
session['loggedIn'] = False
5965
session.pop('username', None)
60-
return redirect(url_for('upload'))
66+
return redirect(url_for('index.upload'))
6167

6268
for file in db:
6369
if db[file].get('owner') == username:
@@ -82,81 +88,6 @@ def dashboard():
8288
quota_usage=quota_usage_gb,
8389
is_admin=is_admin_user(username)
8490
)
85-
86-
@app.route('/upload')
87-
def upload():
88-
db = l_db['files']
89-
udb = l_db['users']
90-
loggedIn = session.get('loggedIn', False)
91-
username = session.get('username', '')
92-
quota_gb = None
93-
quota_usage_gb = 0.0
94-
try:
95-
if loggedIn and username:
96-
user_rec = None
97-
for u in udb:
98-
if u.get('username') == username:
99-
user_rec = u
100-
break
101-
if user_rec:
102-
quota_gb = user_rec.get('quota_gb', 0)
103-
else:
104-
quota_gb = 0
105-
userfiles = []
106-
for file in db:
107-
if db[file].get('owner') == username:
108-
userfiles.append(db[file])
109-
for userfile in userfiles:
110-
usf_mb = userfile.get('size_megabytes', 0)
111-
if usf_mb:
112-
quota_usage_gb += usf_mb / 1024
113-
quota_usage_gb = round(quota_usage_gb, 1)
114-
else:
115-
quota_gb = 5.0
116-
quota_usage_gb = 0.0
117-
except Exception:
118-
quota_gb = quota_gb or 0
119-
quota_usage_gb = quota_usage_gb or 0.0
120-
121-
return render_template('upload.html', loggedIn=loggedIn, username=username, quota_gb=quota_gb, quota_usage=quota_usage_gb)
122-
123-
@app.route('/upload_kr')
124-
def upload_kr():
125-
db = l_db['files']
126-
udb = l_db['users']
127-
loggedIn = session.get('loggedIn', False)
128-
username = session.get('username', '')
129-
quota_gb = None
130-
quota_usage_gb = 0.0
131-
try:
132-
if loggedIn and username:
133-
user_rec = None
134-
for u in udb:
135-
if u.get('username') == username:
136-
user_rec = u
137-
break
138-
if user_rec:
139-
quota_gb = user_rec.get('quota_gb', 0)
140-
else:
141-
quota_gb = 0
142-
userfiles = []
143-
for file in db:
144-
if db[file].get('owner') == username:
145-
userfiles.append(db[file])
146-
for userfile in userfiles:
147-
usf_mb = userfile.get('size_megabytes', 0)
148-
if usf_mb:
149-
quota_usage_gb += usf_mb / 1024
150-
quota_usage_gb = round(quota_usage_gb, 1)
151-
else:
152-
quota_gb = 5.0
153-
quota_usage_gb = 0.0
154-
except Exception:
155-
quota_gb = quota_gb or 0
156-
quota_usage_gb = quota_usage_gb or 0.0
157-
158-
return render_template('upload_kr.html', loggedIn=loggedIn, username=username, quota_gb=quota_gb, quota_usage=quota_usage_gb)
159-
16091
@app.route('/sendfile', methods=['POST'])
16192
def sendfile():
16293
db = l_db['files']
@@ -226,7 +157,7 @@ def sendfile():
226157
else:
227158
flash('1-Time Download code: ' + fileid, 'info')
228159

229-
return redirect(url_for('upload'))
160+
return redirect(url_for('index.upload'))
230161

231162
except RequestEntityTooLarge:
232163
return 'File is larger than the size limit.'
@@ -239,7 +170,7 @@ def delete(code):
239170
if file.split('_')[-1] == code:
240171
if db[file].get('owner') != session.get('username'):
241172
flash('You do not own this file and cannot delete it.', 'error')
242-
return redirect(url_for('upload'))
173+
return redirect(url_for('index.upload'))
243174
try:
244175
os.remove('uploads/' + file)
245176
except FileNotFoundError:
@@ -255,7 +186,7 @@ def delete(code):
255186
@app.route('/download')
256187
def download_without_code():
257188
flash('No code provided!', 'error')
258-
return redirect(url_for('upload'))
189+
return redirect(url_for('index.upload'))
259190

260191
@app.route('/download/<code>', methods=['GET', 'POST'])
261192
def download(code):
@@ -281,7 +212,7 @@ def download(code):
281212
print(f"Deleted! DB now has {len(db)} files")
282213
break
283214
flash('Invalid code! Check if you typed the correct code, and for one-time codes, make sure nobody else entered the code before you did.', 'error')
284-
return redirect(url_for('upload'))
215+
return redirect(url_for('index.upload'))
285216
else:
286217
# Get original filename from database if it exists
287218
original_filename = db[filename].get('original_filename', filename.replace(f'_{code}', ''))
@@ -307,18 +238,18 @@ def backRename():
307238
import traceback
308239
traceback.print_exc()
309240
flash('Invalid code! Check if you typed the correct code, and for one-time codes, make sure nobody else entered the code before you did.', 'error')
310-
return redirect(url_for('upload'))
241+
return redirect(url_for('index.upload'))
311242

312243
@app.route('/admin')
313244
def admin():
314245
if not session.get('loggedIn', False):
315246
flash('You must be signed in to access the admin panel!', 'error')
316-
return redirect(url_for('upload'))
247+
return redirect(url_for('index.upload'))
317248

318249
username = session.get('username')
319250
if not is_admin_user(username):
320251
flash('Access denied. Admin privileges required.', 'error')
321-
return redirect(url_for('upload'))
252+
return redirect(url_for('index.upload'))
322253

323254
db = l_db['files']
324255
udb = l_db['users']
@@ -366,7 +297,7 @@ def admin():
366297
def admin_update_quota():
367298
if not session.get('loggedIn', False) or not is_admin_user(session.get('username')):
368299
flash('Access denied.', 'error')
369-
return redirect(url_for('upload'))
300+
return redirect(url_for('index.upload'))
370301

371302
target = request.form.get('username')
372303
try:
@@ -392,7 +323,7 @@ def admin_update_quota():
392323
def admin_delete_user():
393324
if not session.get('loggedIn', False) or not is_admin_user(session.get('username')):
394325
flash('Access denied.', 'error')
395-
return redirect(url_for('upload'))
326+
return redirect(url_for('index.upload'))
396327

397328
target = request.form.get('username')
398329
if target == session.get('username'):
@@ -424,7 +355,7 @@ def admin_delete_user():
424355
def admin_toggle_admin():
425356
if not session.get('loggedIn', False) or not is_admin_user(session.get('username')):
426357
flash('Access denied.', 'error')
427-
return redirect(url_for('upload'))
358+
return redirect(url_for('index.upload'))
428359

429360
target = request.form.get('username')
430361
if target == session.get('username'):

tools/index.py

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
from flask import (
2+
Blueprint, render_template, session
3+
)
4+
5+
from ..lightdb import LightDB
6+
7+
index_bp = Blueprint('index', __name__)
8+
l_db = LightDB()
9+
10+
@index_bp.route('/')
11+
def index():
12+
# return redirect(url_for('upload'))
13+
return render_template('index.html')
14+
15+
@index_bp.route('/upload')
16+
def upload():
17+
db = l_db['files']
18+
udb = l_db['users']
19+
loggedIn = session.get('loggedIn', False)
20+
username = session.get('username', '')
21+
quota_gb = None
22+
quota_usage_gb = 0.0
23+
try:
24+
if loggedIn and username:
25+
user_rec = None
26+
for u in udb:
27+
if u.get('username') == username:
28+
user_rec = u
29+
break
30+
if user_rec:
31+
quota_gb = user_rec.get('quota_gb', 0)
32+
else:
33+
quota_gb = 0
34+
userfiles = []
35+
for file in db:
36+
if db[file].get('owner') == username:
37+
userfiles.append(db[file])
38+
for userfile in userfiles:
39+
usf_mb = userfile.get('size_megabytes', 0)
40+
if usf_mb:
41+
quota_usage_gb += usf_mb / 1024
42+
quota_usage_gb = round(quota_usage_gb, 1)
43+
else:
44+
quota_gb = 5.0
45+
quota_usage_gb = 0.0
46+
except Exception:
47+
quota_gb = quota_gb or 0
48+
quota_usage_gb = quota_usage_gb or 0.0
49+
50+
return render_template('upload.html', loggedIn=loggedIn, username=username, quota_gb=quota_gb, quota_usage=quota_usage_gb)
51+
52+
@app.route('/upload_kr')
53+
def upload_kr():
54+
db = l_db['files']
55+
udb = l_db['users']
56+
loggedIn = session.get('loggedIn', False)
57+
username = session.get('username', '')
58+
quota_gb = None
59+
quota_usage_gb = 0.0
60+
try:
61+
if loggedIn and username:
62+
user_rec = None
63+
for u in udb:
64+
if u.get('username') == username:
65+
user_rec = u
66+
break
67+
if user_rec:
68+
quota_gb = user_rec.get('quota_gb', 0)
69+
else:
70+
quota_gb = 0
71+
userfiles = []
72+
for file in db:
73+
if db[file].get('owner') == username:
74+
userfiles.append(db[file])
75+
for userfile in userfiles:
76+
usf_mb = userfile.get('size_megabytes', 0)
77+
if usf_mb:
78+
quota_usage_gb += usf_mb / 1024
79+
quota_usage_gb = round(quota_usage_gb, 1)
80+
else:
81+
quota_gb = 5.0
82+
quota_usage_gb = 0.0
83+
except Exception:
84+
quota_gb = quota_gb or 0
85+
quota_usage_gb = quota_usage_gb or 0.0
86+
87+
return render_template('upload_kr.html', loggedIn=loggedIn, username=username, quota_gb=quota_gb, quota_usage=quota_usage_gb)

0 commit comments

Comments
 (0)