Files
youtube-dl/lib/system/mod_plugin.py

78 lines
2.9 KiB
Python
Raw Normal View History

2022-10-10 11:40:10 +09:00
import shutil
2022-10-07 01:48:42 +09:00
from support import SupportFile
from .setup import *
name = 'plugin'
class ModulePlugin(PluginModuleBase):
def __init__(self, P):
super(ModulePlugin, self).__init__(P, name=name, first_menu='list')
def process_menu(self, page, req):
arg = P.ModelSetting.to_dict()
try:
return render_template(f'{__package__}_{name}_{page}.html', arg=arg)
except Exception as e:
P.logger.error(f'Exception:{str(e)}')
P.logger.error(traceback.format_exc())
return render_template('sample.html', title=f"{__package__}/{name}/{page}")
def process_command(self, command, arg1, arg2, arg3, req):
ret = {'ret':'success'}
if command == 'plugin_install':
ret = F.PluginManager.plugin_install(arg1)
2022-10-10 11:40:10 +09:00
elif command == 'get_plugin_list':
data = []
"""
for name, entity in F.PluginManager.plugin_list.items():
if entity['version'] == '3':
data.append({'package_name':name})
else:
data.append(entity['P'].plugin_info)
"""
for name, entity in F.PluginManager.all_package_list.items():
2022-10-10 13:37:15 +09:00
try:
if entity.get('version') == '3':
#data.append(entity)
data.append({'package_name':name})
else:
data.append(entity['P'].plugin_info)
data[-1]['loading'] = entity.get('loading')
data[-1]['status'] = entity.get('status')
data[-1]['log'] = entity.get('log')
except Exception as e:
2022-10-10 11:40:10 +09:00
data.append({'package_name':name})
2022-10-10 13:37:15 +09:00
P.logger.error(f'Exception:{str(e)}')
P.logger.error(traceback.format_exc())
2022-10-10 11:40:10 +09:00
ret['data'] = data
#P.logger.debug(data)
elif command == 'uninstall':
info = F.PluginManager.all_package_list[arg1]
if os.path.exists(info['path']):
try:
shutil.rmtree(info['path'])
ret['msg'] = '삭제하였습니다.<br>재시작시 적용됩니다.'
except Exception as e:
P.logger.error(f'Exception:{str(e)}')
P.logger.error(traceback.format_exc())
ret['msg'] = info['path'] + "<br>삭제에 실패하였습니다.<br>" + str(e)
ret['ret'] = 'danger'
else:
ret['msg'] = info['path'] + "<br>폴더가 없습니다."
ret['ret'] = 'danger'
2022-10-07 01:48:42 +09:00
return jsonify(ret)
def plugin_load(self):
try:
pass
except Exception as e:
P.logger.error(f'Exception:{str(e)}')
P.logger.error(traceback.format_exc())