diff --git a/logic.py b/logic.py index e96dd3f..0c97271 100644 --- a/logic.py +++ b/logic.py @@ -22,7 +22,8 @@ class Logic(object): 'db_version': '1', 'temp_path': os.path.join(path_data, 'download_tmp'), 'save_path': os.path.join(path_data, 'download'), - 'default_filename': '%(title)s-%(id)s.%(ext)s' + 'default_filename': '%(title)s-%(id)s.%(ext)s', + 'activate_cors': True } @staticmethod @@ -49,6 +50,11 @@ class Logic(object): # glob2 설치 logger.debug('glob2 install') logger.debug(subprocess.check_output([sys.executable, '-m', 'pip', 'install', 'glob2'], universal_newlines=True)) + try: + import flask_cors + except Exception as e: + logger.debug('flask_cors install') + logger.debug(subprocess.check_output([sys.executable, '-m', 'pip', 'install', 'flask_cors'], universal_newlines=True)) # youtube-dl 업데이트 logger.debug('youtube-dl upgrade') diff --git a/plugin.py b/plugin.py index 47c4766..cab0f97 100644 --- a/plugin.py +++ b/plugin.py @@ -7,6 +7,7 @@ import traceback # third-party from flask import Blueprint, request, render_template, redirect, jsonify, abort from flask_login import login_required +import flask_cors # sjva 공용 from framework.logger import get_logger @@ -24,7 +25,8 @@ from .my_youtube_dl import Youtube_dl # 플러그인 공용 ######################################################### blueprint = Blueprint(package_name, package_name, url_prefix='/%s' % package_name, template_folder=os.path.join(os.path.dirname(__file__), 'templates')) - +if ModelSetting.get_bool('activate_cors') == True: + flask_cors.CORS(blueprint) menu = { 'main': [package_name, 'youtube-dl'], 'sub': [ diff --git a/templates/youtube-dl_setting.html b/templates/youtube-dl_setting.html index 4820480..b2cce24 100644 --- a/templates/youtube-dl_setting.html +++ b/templates/youtube-dl_setting.html @@ -7,6 +7,7 @@ {{ macros.setting_input_text('temp_path', '임시 폴더', value=arg['temp_path'], placeholder='임시 폴더 경로', desc='다운로드 파일이 임시로 저장될 폴더 입니다.') }} {{ macros.setting_input_text('save_path', '저장 폴더', value=arg['save_path'], placeholder='저장 폴더 경로', desc='정상적으로 완료된 파일이 이동할 폴더 입니다.') }} {{ macros.setting_input_text('default_filename', '기본 파일명', value=arg['default_filename'], placeholder='저장 폴더 경로', desc=['템플릿 규칙은 https://github.com/ytdl-org/youtube-dl/blob/master/README.md#output-template 참고', '기본값은 "%(title)s-%(id)s.%(ext)s"입니다.']) }} + {{ macros.setting_checkbox('activate_cors', 'CORS 허용', value=arg['activate_cors'], desc='api로의 크로스 도메인요청 허용 유무 입니다. 설정 저장후 재시작이 필요합니다.') }} {{ macros.setting_button([['setting_save', '저장']]) }}