Spaces:
Runtime error
Runtime error
import os | |
import time | |
from flask import Flask, jsonify, request, send_from_directory, send_file | |
from beta.api.task_manager import TaskManager # Assuming the TaskManager class is in task_manager.py | |
from mainLogic.main import Main | |
from mainLogic.startup.checkup import CheckState | |
from mainLogic.utils.glv import Global | |
from mainLogic.utils.basicUtils import BasicUtils | |
app = Flask(__name__) | |
task_manager = TaskManager() | |
OUT_DIR = Global.api_webdl_directory | |
try: | |
if not os.path.exists(OUT_DIR): os.makedirs(OUT_DIR) | |
except Exception as e: | |
Global.errprint(f"Could not create output directory {OUT_DIR}") | |
Global.sprint(f"Defaulting to './' ") | |
Global.errprint(f"Error: {e}") | |
OUT_DIR = './' | |
def setup_directory(): | |
pass | |
def download_pw_video(task_id, id, name, out_dir, progress_callback): | |
print(f"Downloading {name} with id {id} to {out_dir}") | |
ch = CheckState() | |
prefs = ch.checkup(Global.EXECUTABLES, directory="./", verbose=True) | |
nm3 = prefs['nm3'] | |
ffmpeg = prefs['ffmpeg'] | |
mp4d = prefs['mp4decrypt'] | |
verbose = True | |
Main(id=id, name=f"{name}-{task_id}", directory=out_dir, tmpDir="/*auto*/", nm3Path=nm3, ffmpeg=ffmpeg, mp4d=mp4d, verbose=verbose, progress_callback=progress_callback).process() | |
def create_task(): | |
data = request.json | |
id = data.get('id') | |
name = data.get('name') | |
if not id or not name: | |
return jsonify({'error': 'id and name are required'}), 400 | |
task_id = task_manager.create_task(download_pw_video, id, name, OUT_DIR) | |
return jsonify({'task_id': task_id}), 202 | |
def get_progress(task_id): | |
progress = task_manager.get_progress(task_id) | |
return jsonify(progress), 200 | |
def get_file(task_id,name): | |
file = BasicUtils.abspath(f"{OUT_DIR}/{name}-{task_id}.mp4") | |
if not os.path.exists(file): | |
return jsonify({'error': 'file not found'}), 404 | |
return send_file( f"{file}", as_attachment=True), 200 | |
def index(): | |
return jsonify({'message': 'Hello, World!'}), 200 | |
# if __name__ == '__main__': | |
# app.run(debug=True) | |