Files
youtube-dl/lib/framework/init_route.py

131 lines
3.7 KiB
Python
Raw Normal View History

2022-10-02 20:18:05 +09:00
import os
import traceback
2022-10-15 03:42:52 +09:00
from flask import (jsonify, redirect, render_template, request,
send_from_directory)
2022-10-03 03:15:05 +09:00
from flask_login import login_required
2022-10-02 20:18:05 +09:00
2022-10-14 14:49:10 +09:00
from framework import F
2022-10-02 20:18:05 +09:00
@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:
2022-10-12 10:07:36 +09:00
if F.PluginManager.all_package_list['flaskcode']['loading']:
PP = F.PluginManager.all_package_list['flaskcode']['P']
#import flaskcode
#from flaskcode.setup import P as PP
ret = {'ret':True, 'target':PP.ModelSetting.get('setting_open_target')}
return jsonify(ret)
else:
return jsonify({'ret':False})
2022-10-02 20:18:05 +09:00
except:
2022-10-07 15:11:05 +09:00
return jsonify({'ret':False})
2022-10-12 01:32:51 +09:00
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('')
2022-10-02 20:18:05 +09:00
2022-10-03 03:04:09 +09:00
@F.app.route('/robots.txt')
2022-10-02 20:18:05 +09:00
def robot_to_root():
return send_from_directory('', 'static/file/robots.txt')
2022-10-03 03:04:09 +09:00
@F.app.route("/")
@F.app.route("/None")
@F.app.route("/home")
2022-10-02 20:18:05 +09:00
def home():
return redirect('/system/home')
2022-10-03 03:04:09 +09:00
@F.app.route("/version")
2022-10-02 20:18:05 +09:00
def get_version():
2022-10-14 14:49:10 +09:00
from .version import VERSION
2022-10-02 20:18:05 +09:00
return VERSION
2022-10-03 03:04:09 +09:00
@F.app.route("/open/<path:path>")
2022-10-02 20:18:05 +09:00
@login_required
def open_file(path):
return send_from_directory('/', path)
2022-10-03 03:04:09 +09:00
@F.app.route("/file/<path:path>")
@F.check_api
2022-10-02 20:18:05 +09:00
def file2(path):
2022-10-18 10:31:15 +09:00
# 윈도우 drive 필요 없음
return send_from_directory('/', path, as_attachment=True)
2022-10-02 20:18:05 +09:00
2022-10-07 15:11:05 +09:00
@F.app.route("/upload", methods=['GET', 'POST'])
2022-10-02 20:18:05 +09:00
def upload():
try:
if request.method == 'POST':
f = request.files['file']
from werkzeug import secure_filename
2022-10-07 15:11:05 +09:00
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)))
2022-10-02 20:18:05 +09:00
return jsonify('success')
except Exception as exception:
2022-10-03 03:04:09 +09:00
F.logger.error('Exception:%s', exception)
F.logger.error(traceback.format_exc())
2022-10-02 20:18:05 +09:00
return jsonify('fail')
2022-10-14 15:38:44 +09:00
2022-10-15 03:42:52 +09:00
@F.app.route("/videojs", methods=['GET', 'POST'])
def videojs():
data = {}
data['play_title'] = request.form['play_title']
data['play_source_src'] = request.form['play_source_src']
data['play_source_type'] = request.form['play_source_type']
if 'play_subtitle_src' in request.form:
data['play_subtitle_src'] = request.form['play_subtitle_src']
return render_template('videojs.html', data=data)
2022-10-14 15:38:44 +09:00
# 3.10에서 이거 필수
@F.socketio.on('connect', namespace=f'/framework')
def connect():
pass
2022-10-15 03:42:52 +09:00