aboutsummaryrefslogtreecommitdiff
path: root/app/views/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/views/api.py')
-rw-r--r--app/views/api.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/app/views/api.py b/app/views/api.py
new file mode 100644
index 0000000..277b94e
--- /dev/null
+++ b/app/views/api.py
@@ -0,0 +1,35 @@
+from flask import *
+from flask_user import *
+from flask.ext import menu
+from app import app
+from app.models import *
+from app.tasks import celery
+from app.tasks.importtasks import getMeta
+# from celery.result import AsyncResult
+
+from .utils import *
+
+@app.route("/tasks/getmeta/new/")
+def new_getmeta_page():
+ aresult = getMeta.delay(request.args.get("url"))
+ return jsonify({
+ "poll_url": url_for("check_task", id=aresult.id),
+ })
+
+@app.route("/tasks/<id>/")
+def check_task(id):
+ result = celery.AsyncResult(id)
+ status = result.status
+ traceback = result.traceback
+ result = result.result
+ if isinstance(result, Exception):
+ return jsonify({
+ 'status': status,
+ 'error': str(result),
+ # 'traceback': traceback,
+ })
+ else:
+ return jsonify({
+ 'status': status,
+ 'result': result,
+ })