Initial commit
This commit is contained in:
64
web/app.py
Normal file
64
web/app.py
Normal file
@@ -0,0 +1,64 @@
|
||||
import os
|
||||
from redis import Redis
|
||||
import rq
|
||||
from rq.job import Job
|
||||
import tasks
|
||||
from flask import Flask, request, jsonify
|
||||
|
||||
app = Flask(__name__)
|
||||
queue = rq.Queue("motus", connection=Redis.from_url("redis://"))
|
||||
redis = Redis()
|
||||
|
||||
|
||||
@app.route("/")
|
||||
@app.route("/index")
|
||||
def index():
|
||||
return jsonify({"message": "OK: Hello"}), 200
|
||||
|
||||
|
||||
@app.route("/check")
|
||||
def check():
|
||||
headers = request.headers
|
||||
auth = headers.get("X-Api-Key")
|
||||
if auth != "fbdhjsbf43443refdsafa":
|
||||
return jsonify({"message": "ERROR: Unauthorized"}), 401
|
||||
|
||||
algorithm = request.args.get("type", default="sha256", type=str)
|
||||
filename = request.args.get("filename", default="", type=str)
|
||||
hashval = request.args.get("hash", default="", type=str)
|
||||
|
||||
if filename == "" or hashval == "":
|
||||
return jsonify({"message": "ERROR: Invalid Arguments"}), 400
|
||||
|
||||
if algorithm == "sha256":
|
||||
pass
|
||||
else:
|
||||
return jsonify({"message": "ERROR: Unknown Algorithm"}), 400
|
||||
|
||||
try:
|
||||
filesize = os.path.getsize(filename)
|
||||
except:
|
||||
return jsonify({"message": "ERROR: Unable to Access File"}), 400
|
||||
|
||||
job = queue.enqueue(tasks.check_hash, algorithm, filename, hashval)
|
||||
job.meta["status"] = "Processing: 0%".format(filesize)
|
||||
job.save_meta()
|
||||
|
||||
return jsonify({"message": "OK: Job Submitted", "jobid": job.get_id()}), 200
|
||||
|
||||
|
||||
@app.route("/status")
|
||||
def status():
|
||||
headers = request.headers
|
||||
auth = headers.get("X-Api-Key")
|
||||
if auth != "fbdhjsbf43443refdsafa":
|
||||
return jsonify({"message": "ERROR: Unauthorized"}), 401
|
||||
|
||||
jobid = request.args.get("jobid", type=str)
|
||||
job = Job.fetch(jobid, connection=redis)
|
||||
|
||||
try:
|
||||
meta = job.get_meta()
|
||||
return jsonify({"status": meta}), 200
|
||||
except:
|
||||
return jsonify({"status": "Failed"}), 400
|
||||
Reference in New Issue
Block a user