Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
b8b5a2518c | |||
805e545b39 | |||
9a117817f7 |
10
imgupload.py
10
imgupload.py
@ -4,7 +4,7 @@ imgupload.py
|
|||||||
|
|
||||||
Flask application for processing images uploaded through POST requests.
|
Flask application for processing images uploaded through POST requests.
|
||||||
"""
|
"""
|
||||||
from flask import Flask, request, jsonify, abort, Response
|
from flask import Flask, request, jsonify, Response
|
||||||
from flask_api import status
|
from flask_api import status
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import os
|
import os
|
||||||
@ -81,21 +81,21 @@ def upload():
|
|||||||
|
|
||||||
else: # if the extension was invalid
|
else: # if the extension was invalid
|
||||||
print("Uploaded extension is invalid!")
|
print("Uploaded extension is invalid!")
|
||||||
abort(415)
|
return jsonify({'status': 'error', 'error': 'INVALID_EXTENSION'}), status.HTTP_415_UNSUPPORTED_MEDIA_TYPE
|
||||||
|
|
||||||
else: # if the key was not valid
|
else: # if the key was not valid
|
||||||
print("Key is invalid!")
|
print("Key is invalid!")
|
||||||
print("Request key: {0}".format(request.form["uploadKey"]))
|
print("Request key: {0}".format(request.form["uploadKey"]))
|
||||||
abort(401)
|
return jsonify({'status': 'error', 'error': 'UNAUTHORIZED'}), status.HTTP_401_UNAUTHORIZED
|
||||||
|
|
||||||
else: # if uploadKey was not found in request body
|
else: # if uploadKey was not found in request body
|
||||||
print("No uploadKey found in request!")
|
print("No uploadKey found in request!")
|
||||||
abort(401)
|
return jsonify({'status': 'error', 'error': 'UNAUTHORIZED'}), status.HTTP_401_UNAUTHORIZED
|
||||||
|
|
||||||
|
|
||||||
else: # if the request method wasn't post
|
else: # if the request method wasn't post
|
||||||
print("Request method was not POST!")
|
print("Request method was not POST!")
|
||||||
abort(405)
|
return jsonify({'status': 'error', 'error': 'METHOD_NOT_ALLOWED'}), status.HTTP_405_METHOD_NOT_ALLOWED
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
print("Run with `flask` or a WSGI server!")
|
print("Run with `flask` or a WSGI server!")
|
||||||
|
54
keyctl.py
54
keyctl.py
@ -8,38 +8,43 @@ Command-line utility for easy management of the uploadkeys file.
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import argparse
|
import argparse
|
||||||
import logging
|
import logging
|
||||||
import random
|
import secrets
|
||||||
import string
|
import string
|
||||||
|
|
||||||
|
|
||||||
|
def read_keyfile():
|
||||||
|
with open("uploadkeys", "r") as keyfile: # open uploadkeys
|
||||||
|
keys = keyfile.readlines() # read all the keys
|
||||||
|
logging.debug("Read uploadkeys")
|
||||||
|
keys = [x.strip("\n") for x in keys] # strip newlines from keys
|
||||||
|
logging.debug("Stripped newlines from keys")
|
||||||
|
return keys
|
||||||
|
|
||||||
|
|
||||||
def genkey(length):
|
def genkey(length):
|
||||||
key = ''.join(random.choice(string.ascii_letters + string.digits) for x in range(length))
|
key = ''.join(secrets.choice(string.ascii_letters + string.digits) for x in range(length))
|
||||||
return key
|
return key
|
||||||
|
|
||||||
|
|
||||||
def savekey(key):
|
def savekey(key):
|
||||||
if not Path("uploadkeys").is_file():
|
if not Path("uploadkeys").is_file(): # if uploadkeys doesn't exist, log an info message
|
||||||
logging.info("uploadkeys file doesn't exist, it will be created.")
|
logging.info("uploadkeys file doesn't exist, it will be created.")
|
||||||
with open("uploadkeys", "a+") as keyfile:
|
with open("uploadkeys", "a+") as keyfile:
|
||||||
keyfile.write(str(key) + "\n")
|
keyfile.write(str(key) + "\n") # add the key
|
||||||
logging.debug("Saved a key to uploadkeys: {0}".format(key))
|
logging.debug("Saved a key to uploadkeys: {0}".format(key))
|
||||||
|
|
||||||
|
|
||||||
def rmkey(delkey):
|
def rmkey(delkey):
|
||||||
removedkey = False
|
removedkey = False
|
||||||
with open("uploadkeys", "r") as keyfile:
|
allkeys = read_keyfile()
|
||||||
allkeys = keyfile.readlines()
|
if delkey in allkeys: # if the key to remove exists
|
||||||
logging.debug("Loaded all upload keys")
|
allkeys.remove(delkey) # remove the first instance of the key
|
||||||
allkeys = [x.strip("\n") for x in allkeys]
|
|
||||||
logging.debug("Stripped keys")
|
|
||||||
if delkey in allkeys:
|
|
||||||
allkeys.remove(delkey)
|
|
||||||
removedkey = True
|
removedkey = True
|
||||||
logging.debug("Removed one instance of the key")
|
logging.debug("Removed one instance of the key")
|
||||||
|
|
||||||
with open("uploadkeys", "w") as keyfile:
|
with open("uploadkeys", "w") as keyfile:
|
||||||
for k in allkeys:
|
for k in allkeys:
|
||||||
keyfile.write(k + "\n")
|
keyfile.write(k + "\n") # write the remaining keys
|
||||||
|
|
||||||
if removedkey:
|
if removedkey:
|
||||||
return True
|
return True
|
||||||
@ -48,11 +53,8 @@ def rmkey(delkey):
|
|||||||
|
|
||||||
|
|
||||||
def find_duplicates():
|
def find_duplicates():
|
||||||
with open("uploadkeys", "r") as keyfile:
|
allkeys = read_keyfile()
|
||||||
allkeys = keyfile.readlines()
|
|
||||||
logging.debug("Read all keys")
|
|
||||||
allkeys = [x.strip("\n") for x in allkeys]
|
|
||||||
logging.debug("Stripped newlines")
|
|
||||||
seen = set()
|
seen = set()
|
||||||
ukeys = []
|
ukeys = []
|
||||||
dupkeys = []
|
dupkeys = []
|
||||||
@ -66,11 +68,7 @@ def find_duplicates():
|
|||||||
|
|
||||||
|
|
||||||
def get_keys():
|
def get_keys():
|
||||||
with open("uploadkeys", "r") as keyfile: # load valid keys
|
validkeys = read_keyfile()
|
||||||
validkeys = keyfile.readlines()
|
|
||||||
logging.debug("Read uploadkeys")
|
|
||||||
validkeys = [x.strip("\n") for x in validkeys]
|
|
||||||
logging.debug("Stripped newlines from validkeys")
|
|
||||||
while "" in validkeys:
|
while "" in validkeys:
|
||||||
validkeys.remove("")
|
validkeys.remove("")
|
||||||
logging.debug("Removed blank keys")
|
logging.debug("Removed blank keys")
|
||||||
@ -85,7 +83,7 @@ def cmd_list(args):
|
|||||||
for i in range(len(validkeys)):
|
for i in range(len(validkeys)):
|
||||||
showkey = validkeys[i][:6]
|
showkey = validkeys[i][:6]
|
||||||
if len(validkeys[i]) > 6:
|
if len(validkeys[i]) > 6:
|
||||||
showkey += "..."
|
showkey += "..." # add ellipses since the key was shortened in list
|
||||||
|
|
||||||
print(" [{0}] {1}".format(i+1, showkey))
|
print(" [{0}] {1}".format(i+1, showkey))
|
||||||
|
|
||||||
@ -121,10 +119,12 @@ def cmd_remove(args):
|
|||||||
logging.info("No key was removed.")
|
logging.info("No key was removed.")
|
||||||
|
|
||||||
def cmd_dedupe(args):
|
def cmd_dedupe(args):
|
||||||
for d in find_duplicates():
|
dupes = find_duplicates()
|
||||||
r = rmkey(d)
|
if len(dupes) > 0:
|
||||||
logging.debug(r)
|
for d in dupes:
|
||||||
logging.info("Removed duplicate key: {0}".format(d))
|
r = rmkey(d)
|
||||||
|
logging.debug(r)
|
||||||
|
logging.info("Removed duplicate key: {0}".format(d))
|
||||||
else:
|
else:
|
||||||
logging.info("[" + u"\u2713" + "] No duplicate keys found!")
|
logging.info("[" + u"\u2713" + "] No duplicate keys found!")
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user