web.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. app = Flask(__name__)
  10. d=db()
  11. @app.route(BASE_PATH + '/')
  12. def index():
  13. return "Hello world"
  14. @app.route(BASE_PATH + '/raw')
  15. def raw_list():
  16. ret={'list': d.raw() }
  17. return jsonify(ret)
  18. @app.route(BASE_PATH + '/raw/<video_id>')
  19. def raw_file(video_id):
  20. ret=d.raw(video_id)
  21. ret["file"]=ret["file"].split("front")[1] #FIXME, path relativo al webserver
  22. return jsonify(ret)
  23. @app.route(BASE_PATH + '/cut/', methods=["POST"])
  24. def cut():
  25. ret={"status":"Procesando"}
  26. today=datetime.date.today()
  27. data = request.get_json()
  28. video=d.raw(data["id"])
  29. out_filename="%s_%s_%s.mp4" % (data["curso"],
  30. today.strftime('%Y%m%d'),
  31. data["desc"])
  32. job = tasks.cut_video.delay(video["file"],
  33. str(data["inicio"]),
  34. str(data["fin"]),
  35. out_filename)
  36. ret["job_id"]=job.get_id()
  37. return jsonify(ret)
  38. @app.route(BASE_PATH + '/jobs/')
  39. def jobs():
  40. working = tasks.jobs()
  41. finished = d.getJobs()
  42. return json.dumps({"working":working, "finished":finished})
  43. @app.route(BASE_PATH + '/job')
  44. def job():
  45. job = tasks.jobrunner(tasks.long_job, ("test",))
  46. #job = tasks.long_job.delay("test")
  47. # job = tasks.upload_video.delay("titulo","/home/david/photo_2016-07-10_13-49-56.jpg","/home/david/movie-1467033043.flv")
  48. ret = {"id":job.get_id()}
  49. return jsonify(ret)
  50. @app.route(BASE_PATH+"/results/<job_key>", methods=['GET'])
  51. def get_results(job_key):
  52. try:
  53. ret=tasks.result(job_key)
  54. except Exception as e:
  55. print(e)
  56. return "Error. Probablemente job_key es invalido", 400
  57. return ret
  58. @app.route(BASE_PATH + '/uploaded')
  59. def uploaded_list():
  60. ret=[]
  61. return jsonify(ret)
  62. if __name__ == '__main__':
  63. app.run(host="0.0.0.0",port=PORT, debug=True)