|
@@ -1,4 +1,5 @@
|
1
|
1
|
from typing import List
|
|
2
|
+import json
|
2
|
3
|
|
3
|
4
|
import requests
|
4
|
5
|
from flask import Blueprint, Response, g, jsonify, request, session
|
|
@@ -7,7 +8,7 @@ import simplecrypt
|
7
|
8
|
from cache import cache
|
8
|
9
|
from constant import HEADERS, Sites
|
9
|
10
|
from description import parse_description
|
10
|
|
-from models import Account, SavedTemplate, db
|
|
11
|
+from models import Account, SavedTemplate, SavedSubmission, User, db
|
11
|
12
|
from simplecrypt import decrypt
|
12
|
13
|
from sites.deviantart import DeviantArt
|
13
|
14
|
from sites.known import known_list
|
|
@@ -27,9 +28,14 @@ def sites():
|
27
|
28
|
|
28
|
29
|
|
29
|
30
|
@app.route('/whoami')
|
30
|
|
-@login_required
|
31
|
31
|
def whoami():
|
32
|
|
- return jsonify({'id': g.user.id, 'username': g.user.username})
|
|
32
|
+ session_id = session.get('id')
|
|
33
|
+ if session_id:
|
|
34
|
+ user: User = User.query.get(session['id'])
|
|
35
|
+ if user:
|
|
36
|
+ return jsonify({'id': user.id, 'username': user.username})
|
|
37
|
+
|
|
38
|
+ return jsonify({'id': None, 'username': None})
|
33
|
39
|
|
34
|
40
|
|
35
|
41
|
@app.route('/accounts')
|
|
@@ -49,6 +55,28 @@ def accounts():
|
49
|
55
|
return jsonify({'accounts': accts})
|
50
|
56
|
|
51
|
57
|
|
|
58
|
+@app.route('/submissions')
|
|
59
|
+@login_required
|
|
60
|
+def submissions():
|
|
61
|
+ subs = SavedSubmission.query.filter_by(user_id=g.user.id).all()
|
|
62
|
+
|
|
63
|
+ subs = list(map(lambda sub: {
|
|
64
|
+ 'id': sub.id,
|
|
65
|
+ 'title': sub.title,
|
|
66
|
+ 'description': sub.description,
|
|
67
|
+ 'tags': sub.tags,
|
|
68
|
+ 'original_filename': sub.original_filename,
|
|
69
|
+ 'image_filename': sub.image_filename,
|
|
70
|
+ 'image_mimetype': sub.image_mimetype,
|
|
71
|
+ 'account_ids': sub.account_ids,
|
|
72
|
+ 'site_data': json.loads(sub.site_data),
|
|
73
|
+ 'group_id': sub.group_id,
|
|
74
|
+ 'master': sub.master,
|
|
75
|
+ }, subs))
|
|
76
|
+
|
|
77
|
+ return jsonify(subs)
|
|
78
|
+
|
|
79
|
+
|
52
|
80
|
@app.route('/description', methods=['POST'])
|
53
|
81
|
@login_required
|
54
|
82
|
def description():
|