자막 다운로드 기능(+API) 추가
This commit is contained in:
68
plugin.py
68
plugin.py
@@ -41,7 +41,8 @@ if ModelSetting.get_bool('activate_cors'):
|
||||
menu = {
|
||||
'main': [package_name, 'youtube-dl'],
|
||||
'sub': [
|
||||
['setting', '설정'], ['download', '다운로드'], ['thumbnail', '썸네일 다운로드'], ['list', '목록'], ['log', '로그']
|
||||
['setting', '설정'], ['download', '다운로드'], ['thumbnail', '썸네일 다운로드'], ['sub', '자막 다운로드'], ['list', '목록'],
|
||||
['log', '로그']
|
||||
],
|
||||
'category': 'vod'
|
||||
}
|
||||
@@ -103,6 +104,11 @@ def first_menu(sub):
|
||||
arg['filename'] = default_filename if default_filename else LogicNormal.get_default_filename()
|
||||
return render_template('%s_%s.html' % (package_name, sub), arg=arg)
|
||||
|
||||
elif sub == 'sub':
|
||||
default_filename = ModelSetting.get('default_filename')
|
||||
arg['filename'] = default_filename if default_filename else LogicNormal.get_default_filename()
|
||||
return render_template('%s_%s.html' % (package_name, sub), arg=arg)
|
||||
|
||||
elif sub == 'list':
|
||||
return render_template('%s_%s.html' % (package_name, sub), arg=arg)
|
||||
|
||||
@@ -175,6 +181,21 @@ def ajax(sub):
|
||||
socketio_emit('add', youtube_dl)
|
||||
return jsonify([])
|
||||
|
||||
elif sub == 'sub':
|
||||
youtube_dl = LogicNormal.sub(plugin=package_name,
|
||||
url=request.form['url'],
|
||||
filename=request.form['filename'],
|
||||
temp_path=ModelSetting.get('temp_path'),
|
||||
save_path=ModelSetting.get('save_path'),
|
||||
all_subs=request.form['all_subs'],
|
||||
sub_lang=request.form['sub_lang'],
|
||||
auto_sub=request.form['auto_sub'],
|
||||
proxy=ModelSetting.get('proxy'),
|
||||
ffmpeg_path=ModelSetting.get('ffmpeg_path'))
|
||||
youtube_dl.start()
|
||||
socketio_emit('add', youtube_dl)
|
||||
return jsonify([])
|
||||
|
||||
elif sub == 'list':
|
||||
ret = []
|
||||
for i in LogicNormal.youtube_dl_list:
|
||||
@@ -316,6 +337,51 @@ def api(sub):
|
||||
socketio_emit('add', youtube_dl)
|
||||
return jsonify(ret)
|
||||
|
||||
# 자막 다운로드 준비를 요청하는 API
|
||||
elif sub == 'sub':
|
||||
key = request.values.get('key')
|
||||
url = request.values.get('url')
|
||||
filename = request.values.get('filename', ModelSetting.get('default_filename'))
|
||||
save_path = request.values.get('save_path', ModelSetting.get('save_path'))
|
||||
all_subs = request.values.get('all_subs', False)
|
||||
sub_lang = request.values.get('sub_lang', 'ko')
|
||||
auto_sub = request.values.get('all_subs', False)
|
||||
dateafter = request.values.get('dateafter', None)
|
||||
archive = request.values.get('archive', None)
|
||||
start = request.values.get('start', False)
|
||||
cookiefile = request.values.get('cookiefile', None)
|
||||
ret = {
|
||||
'errorCode': 0,
|
||||
'index': None
|
||||
}
|
||||
if None in (key, url):
|
||||
return LogicNormal.abort(ret, 1) # 필수 요청 변수가 없음
|
||||
if not url.startswith('http'):
|
||||
return LogicNormal.abort(ret, 2) # 잘못된 동영상 주소
|
||||
if not filename:
|
||||
filename = LogicNormal.get_default_filename()
|
||||
youtube_dl = LogicNormal.sub(plugin=plugin,
|
||||
url=url,
|
||||
filename=filename,
|
||||
temp_path=ModelSetting.get('temp_path'),
|
||||
save_path=save_path,
|
||||
all_subs=all_subs,
|
||||
sub_lang=sub_lang,
|
||||
auto_sub=auto_sub,
|
||||
dateafter=dateafter,
|
||||
archive=archive,
|
||||
proxy=ModelSetting.get('proxy'),
|
||||
ffmpeg_path=ModelSetting.get('ffmpeg_path'),
|
||||
key=key,
|
||||
cookiefile=cookiefile)
|
||||
if youtube_dl is None:
|
||||
return LogicNormal.abort(ret, 10) # 실패
|
||||
ret['index'] = youtube_dl.index
|
||||
if start:
|
||||
youtube_dl.start()
|
||||
socketio_emit('add', youtube_dl)
|
||||
return jsonify(ret)
|
||||
|
||||
# 다운로드 시작을 요청하는 API
|
||||
elif sub == 'start':
|
||||
index = request.values.get('index')
|
||||
|
||||
Reference in New Issue
Block a user