web.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/usr/bin/env python3
  2. import datetime
  3. import json
  4. import urllib
  5. from db import db
  6. from flask import Flask, abort, jsonify, request
  7. import time
  8. import tasks
  9. from rq import Queue
  10. from rq.job import Job
  11. from worker import conn
  12. q = Queue(connection=conn)
  13. PORT = 8981
  14. BASE_PATH="/back" #changes based on webserver
  15. app = Flask(__name__)
  16. @app.route(BASE_PATH + '/')
  17. def index():
  18. return "Hello world"
  19. @app.route(BASE_PATH + '/raw')
  20. def raw_list():
  21. ret={'list':
  22. [{'file':'movie-1231547519.flv', 'length':'1:14:32', 'date': "2016,7,13"},
  23. {'file':'movie-1231111111.flv', 'length':'0:14:32', 'date': "2016-7-12"} ]
  24. }
  25. return jsonify(ret)
  26. @app.route(BASE_PATH + '/job')
  27. def job():
  28. # func=tasks.cut_video , args=("/home/david/movie-1467033043.flv","0:45","1:48:00","/home/david/salida-cortada.mp4",), result_ttl=5000
  29. job = q.enqueue_call(
  30. func=tasks.upload_video,
  31. args=("titulo","/home/david/photo_2016-07-10_13-49-56.jpg","/home/david/movie-1467033043.flv",),
  32. timeout=3600*2,
  33. result_ttl=3600*2
  34. )
  35. #con decorator seria:
  36. #tasks.upload_video.delay(..args..)
  37. ret = {"id":job.get_id()}
  38. return jsonify(ret)
  39. @app.route(BASE_PATH+"/results/<job_key>", methods=['GET'])
  40. def get_results(job_key):
  41. print(job_key)
  42. job = Job.fetch(job_key, connection=conn)
  43. if job.is_finished:
  44. return str(job.result), 200
  45. else:
  46. return "%s" % json.dumps(job.meta) , 202
  47. #return "Nay! %s - %s" % (job.meta.get('video_id'),job.meta.get('status')) , 202
  48. #return "Nay! %s - %s" % (job.meta.get('video_id'),job.meta.get('status')) , 202
  49. @app.route(BASE_PATH + '/cut')
  50. def cut_list():
  51. ret=[]
  52. return jsonify(ret)
  53. @app.route(BASE_PATH + '/uploaded')
  54. def uploaded_list():
  55. ret=[]
  56. return jsonify(ret)
  57. if __name__ == '__main__':
  58. app.run(host="0.0.0.0",port=PORT, debug=True)