diff --git a/app/callbacks.py b/app/callbacks.py new file mode 100644 index 0000000..c08a8af --- /dev/null +++ b/app/callbacks.py @@ -0,0 +1,2 @@ +class CbJob: + def status(): pass \ No newline at end of file diff --git a/app/log.py b/app/log.py new file mode 100644 index 0000000..5e1f0e9 --- /dev/null +++ b/app/log.py @@ -0,0 +1,7 @@ +class FeLog: + def _log (self, sev, msg): print("%s: %s" % (sev, msg)) + def debug (self, msg): self._log('DEBG', msg) + def verbose (self, msg): self._log('VERB', msg) + def info (self, msg): self._log('INFO', msg) + def warning (self, msg): self._log('WARN', msg) + def error (self, msg): self._log('ERR!', msg) \ No newline at end of file diff --git a/app/main.py b/app/main.py index 2a1af3c..c9c83d2 100644 --- a/app/main.py +++ b/app/main.py @@ -1,7 +1,30 @@ from flask import Flask -from flask_rq2 import RQ as Queue +from flask_rq2 import RQ as _RQ +from youtube_dl import YoutubeDL as YDL +from time import sleep +from .log import FeLog +from .callbacks import CbJob + +BaseYDLOpts={ + 'no_color': True, + 'call_home': False, + 'logger': FeLog(), + 'progress_hooks': { + 'status': CbJob.status, + }, +} app=Flask(__name__) -q=Queue(app) +RQ=_RQ(app) +@RQ.job('test', timeout=30) +def DeliberatelyTimesOut(): + sleep(35) +@app.route('/') +def index(): return 'hewwo' + +@app.route('/add/timeouttest') +def timeouttest(): + j=DeliberatelyTimesOut.queue() + return 'queued' \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..0e4cdc5 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +Flask~=1.1.2 +Flask-RQ2>=18.3 +rq~=1.5.1 +rq-dashboard>=0.6.1 +rq-scheduler>=0.10.0 +youtube-dl>=2020.7.28