Files
youtube-dl/lib/framework/init_route.py
flaskfarm 751adbbedc update
2022-10-12 01:32:51 +09:00

123 lines
3.0 KiB
Python

import os
import traceback
from flask import jsonify, redirect, request, send_from_directory
from flask_login import login_required
from framework import VERSION, F
@F.app.route('/global/ajax/<sub>', methods=['GET', 'POST'])
@login_required
def global_ajax(sub):
#logger.debug('/global/ajax/%s', sub)
if sub == 'listdir':
if 'path' in request.form:
#if os.path.isfile(request.form['path']):
# return jsonify('')
path = request.form['path']
if os.path.isfile(path):
path = os.path.dirname(path)
result_list = os.listdir(path)
if 'only_dir' in request.form and request.form['only_dir'].lower() == 'true':
result_list = [name for name in result_list if os.path.isdir(os.path.join(path, name))]
result_list.sort()
result_list = [f"{x}|{os.path.join(path,x)}" for x in result_list]
tmp = os.path.dirname(path)
if path != tmp:
result_list = [f'..|{tmp}'] + result_list
return jsonify(result_list)
else:
return jsonify(None)
elif sub == 'is_available_edit':
# globalEditBtn
try:
import flaskcode
from flaskcode.setup import P as PP
ret = {'ret':True, 'target':PP.ModelSetting.get('setting_open_target')}
return jsonify(ret)
except:
return jsonify({'ret':False})
elif sub == 'command_modal_hide':
from tool import ToolModalCommand
ToolModalCommand.modal_close()
return jsonify('')
elif sub == 'command_modal_input':
from tool import ToolModalCommand
cmd = request.form['cmd']
ToolModalCommand.input_command(cmd)
return jsonify('')
@F.app.route('/robots.txt')
def robot_to_root():
return send_from_directory('', 'static/file/robots.txt')
@F.app.route("/")
@F.app.route("/None")
@F.app.route("/home")
def home():
return redirect('/system/home')
@F.app.route("/version")
def get_version():
return VERSION
@F.app.route("/open/<path:path>")
@login_required
def open_file(path):
return send_from_directory('/', path)
@F.app.route("/file/<path:path>")
@F.check_api
def file2(path):
F.logger.debug('file2 :%s', path)
return send_from_directory('/', path)
@F.app.route("/upload", methods=['GET', 'POST'])
def upload():
# curl -F file=@downloader_video.tar https://dev.soju6jan.com/up
#
try:
if request.method == 'POST':
f = request.files['file']
from werkzeug import secure_filename
upload_path = F.SystemModelSetting.get('path_upload')
os.makedirs(upload_path, exist_ok=True)
f.save(os.path.join(upload_path, secure_filename(f.filename)))
return jsonify('success')
except Exception as exception:
F.logger.error('Exception:%s', exception)
F.logger.error(traceback.format_exc())
return jsonify('fail')