#!/usr/bin/env python3 from constants import BASE_PATH,PORT import datetime import json import tasks from db import db from flask import Flask, jsonify, request from rq import Queue app = Flask(__name__) d=db() @app.route(BASE_PATH + '/') def index(): return "Hello world" @app.route(BASE_PATH + '/list/raw') def raw_list(): ret={'list': d.raw() } return jsonify(ret) @app.route(BASE_PATH + '/raw/') def raw_file(video_id): ret=d.raw(video_id) ret["file"]=ret["file"].split("front")[1] #FIXME, path relativo al webserver return jsonify(ret) @app.route(BASE_PATH + '/list/processed/') def processed_list(): ret={'list': d.processed() } return jsonify(ret) @app.route(BASE_PATH + '/cut/', methods=["POST"]) def cut(): ret={"status":"Procesando"} today=datetime.date.today() data = request.get_json() video=d.raw(data["id"]) out_filename="%s_%s_%s.mp4" % (data["curso"], today.strftime('%Y%m%d'), data["desc"]) job = tasks.cut_video.delay(video["file"], str(data["inicio"]), str(data["fin"]), out_filename) ret["job_id"]=job.get_id() return jsonify(ret) @app.route(BASE_PATH + '/jobs/') def jobs(): working = tasks.jobs() finished = d.getJobs() return json.dumps({"working":working, "finished":finished}) @app.route(BASE_PATH + '/job') def job(): job = tasks.jobrunner(tasks.long_job, ("test",)) #job = tasks.long_job.delay("test") # job = tasks.upload_video.delay("titulo","/home/david/photo_2016-07-10_13-49-56.jpg","/home/david/movie-1467033043.flv") ret = {"id":job.get_id()} return jsonify(ret) @app.route(BASE_PATH+"/results/", methods=['GET']) def get_results(job_key): try: ret=tasks.result(job_key) except Exception as e: print(e) return "Error. Probablemente job_key es invalido", 400 return ret @app.route(BASE_PATH + '/uploaded') def uploaded_list(): ret=[] return jsonify(ret) if __name__ == '__main__': app.run(host="0.0.0.0",port=PORT, debug=True)