| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #!/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/')
- @app.route(BASE_PATH + '/list/raw')
- def raw_list():
- ret={'list': d.raw() }
- return jsonify(ret)
- @app.route(BASE_PATH + '/raw/<video_id>')
- 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/')
- @app.route(BASE_PATH + '/list/processed')
- def processed_list():
- ret={'list': d.processed() }
- return jsonify(ret)
- @app.route(BASE_PATH + '/crop/', methods=["POST"])
- def crop():
- 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.jobrunner(tasks.crop_video,
- (video["file"],
- str(data["inicio"]),
- str(data["fin"]),
- out_filename,))
- #job = tasks.crop_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 + '/list/jobs/')
- @app.route(BASE_PATH + '/list/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/<job_key>", 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)
|