web.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/usr/bin/env python3
  2. from constants import BASE_PATH,PORT
  3. import datetime
  4. import json
  5. import tasks
  6. from db import db
  7. from flask import Flask, jsonify, request
  8. from rq import Queue
  9. from rq.job import Job
  10. from worker import conn
  11. app = Flask(__name__)
  12. d=db()
  13. @app.route(BASE_PATH + '/')
  14. def index():
  15. return "Hello world"
  16. @app.route(BASE_PATH + '/raw')
  17. def raw_list():
  18. ret={'list': d.raw() }
  19. return jsonify(ret)
  20. @app.route(BASE_PATH + '/raw/<video_id>')
  21. def raw_file(video_id):
  22. ret=d.raw(video_id)
  23. ret["file"]=ret["file"].split("front")[1] #FIXME
  24. return jsonify(ret)
  25. @app.route(BASE_PATH + '/cut/', methods=["POST"])
  26. def cut():
  27. ret={"status":"Procesando"}
  28. data = request.get_json()
  29. video=d.raw(data["id"])
  30. out_filename="%s_%s_%s.mp4" % (data["curso"], datetime.date.today().strftime('%Y%m%d'), data["desc"])
  31. job = tasks.cut_video.delay(video["file"],data["inicio"],data["fin"],out_filename)
  32. ret["job_id"]=job.get_id()
  33. return jsonify(ret)
  34. @app.route(BASE_PATH + '/job')
  35. def job():
  36. # job = tasks.long_job.delay("test")
  37. # job = tasks.upload_video.delay("titulo","/home/david/photo_2016-07-10_13-49-56.jpg","/home/david/movie-1467033043.flv")
  38. ret = {"id":job.get_id()}
  39. return jsonify(ret)
  40. @app.route(BASE_PATH+"/results/<job_key>", methods=['GET'])
  41. def get_results(job_key):
  42. print(job_key)
  43. try:
  44. job = Job.fetch(job_key, connection=conn)
  45. except:
  46. return "Error. Probablemente job_key es invalido", 400
  47. if job.is_finished:
  48. return "Result: %s" % str(job.result), 200
  49. else:
  50. return "Process: %s" % json.dumps(job.meta) , 202
  51. @app.route(BASE_PATH + '/uploaded')
  52. def uploaded_list():
  53. ret=[]
  54. return jsonify(ret)
  55. if __name__ == '__main__':
  56. app.run(host="0.0.0.0",port=PORT, debug=True)