|
@@ -46,6 +46,23 @@ def parse_data_uri(content):
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+def parse_upload_placeholder(rowid):
|
|
|
|
+ rowid = int(rowid)
|
|
|
|
+ con = connect('util.db')
|
|
|
|
+ content = None
|
|
|
|
+ try:
|
|
|
|
+ content = con.cursor().execute("""
|
|
|
|
+SELECT content FROM upload_temp WHERE rowid = ? LIMIT 1;
|
|
|
|
+""", (rowid,)).fetchall()[0][0]
|
|
|
|
+ finally:
|
|
|
|
+ con.close()
|
|
|
|
+
|
|
|
|
+ data = parse_data_uri(content)
|
|
|
|
+ assert data['encoding'] == 'base64', f"unsupported encoding: {data['encoding']}"
|
|
|
|
+ data = b64decode(data['data'] + '==')
|
|
|
|
+ return data
|
|
|
|
+
|
|
|
|
+
|
|
@route('/goto/preview', method=['GET'])
|
|
@route('/goto/preview', method=['GET'])
|
|
def get_goto_preview():
|
|
def get_goto_preview():
|
|
link = request.params.link
|
|
link = request.params.link
|
|
@@ -81,9 +98,7 @@ def get_hash(route):
|
|
data = body['data']
|
|
data = body['data']
|
|
person = body.get('person', None)
|
|
person = body.get('person', None)
|
|
if route == 'upload':
|
|
if route == 'upload':
|
|
- data = parse_data_uri(data)
|
|
+ data = parse_upload_placeholder(data)
|
|
- assert data['encoding'] == 'base64', f"unsupported encoding: {data['encoding']}"
|
|
|
|
- data = b64decode(data['data'] + '==')
|
|
|
|
elif route == 'code':
|
|
elif route == 'code':
|
|
data = dumps(loads(body['data']), sort_keys=True).encode('utf-8')
|
|
data = dumps(loads(body['data']), sort_keys=True).encode('utf-8')
|
|
else:
|
|
else:
|
|
@@ -107,9 +122,7 @@ def get_qr(route):
|
|
data = body['data']
|
|
data = body['data']
|
|
fallback = body.get('fallback', None)
|
|
fallback = body.get('fallback', None)
|
|
if route == 'upload':
|
|
if route == 'upload':
|
|
- data = parse_data_uri(data)
|
|
+ data = parse_upload_placeholder(data)
|
|
- assert data['encoding'] == 'base64', f"unsupported encoding: {data['encoding']}"
|
|
|
|
- data = b64decode(data['data'] + '==')
|
|
|
|
else:
|
|
else:
|
|
data = data.encode('utf-8')
|
|
data = data.encode('utf-8')
|
|
|
|
|
|
@@ -140,12 +153,9 @@ def get_upload(hash):
|
|
con = connect('util.db')
|
|
con = connect('util.db')
|
|
fname, mimetype, content = (None, None, None)
|
|
fname, mimetype, content = (None, None, None)
|
|
try:
|
|
try:
|
|
- fname, mimetype, content, created = con.cursor().execute(f"""
|
|
+ fname, mimetype, content, created = con.cursor().execute("""
|
|
-SELECT name, mime, content, created
|
|
+SELECT name, mime, content, created FROM upload WHERE hash = ? LIMIT 1;
|
|
-FROM upload
|
|
+""", (hash,)).fetchall()[0]
|
|
-WHERE hash = '{hash}'
|
|
|
|
-LIMIT 1;
|
|
|
|
-""").fetchall()[0]
|
|
|
|
finally:
|
|
finally:
|
|
con.close()
|
|
con.close()
|
|
|
|
|