Files
youtube-dl/lib/system/mod_tool.py
flaskfarm 56419a8355 update
2022-10-19 19:50:38 +09:00

64 lines
2.1 KiB
Python

from support import SupportSubprocess
from tool import ToolModalCommand
from .page_command import PageCommand
from .setup import *
name = 'tool'
class ModuleTool(PluginModuleBase):
def __init__(self, P):
super(ModuleTool, self).__init__(P, name=name, first_menu='command')
self.set_page_list([PageUpload, PageCrypt, PagePython, PageCommand])
class PageUpload(PluginPageBase):
db_default = {
'path_upload': os.path.join(F.config['path_data'], 'upload'),
}
def __init__(self, P, parent):
super(PageUpload, self).__init__(P, parent, name='upload')
class PageCrypt(PluginPageBase):
def __init__(self, P, parent):
super(PageCrypt, self).__init__(P, parent, name='crypt')
self.db_default = {
f'{self.parent.name}_{self.name}_use_user_key': 'False',
f'{self.parent.name}_{self.name}_user_key': '',
f'{self.parent.name}_{self.name}_user_key': '',
}
class PagePython(PluginPageBase):
def __init__(self, P, parent):
super(PagePython, self).__init__(P, parent, name='python')
self.db_default = {
f'{self.parent.name}_{self.name}_name': '',
}
def process_command(self, command, arg1, arg2, arg3, req):
ret = {'ret':'success'}
if command == 'get_freeze':
command = ['pip', 'freeze']
result = SupportSubprocess.execute_command_return(command)
if result['status'] == 'finish':
ret['data'] = []
for tmp in result['log'].split('\n'):
ret['data'].append(tmp.split('=='))
else:
ret['ret'] = 'danger'
ret['msg'] = "실패"
elif command == 'upgrade':
P.ModelSetting.set(f'{self.parent.name}_{self.name}_name', arg1)
cmd = ['pip', 'install', '--upgrade', arg1]
ToolModalCommand.start("pip 설치", [cmd])
elif command == 'remove':
cmd = ['pip', 'uninstall', '-y', arg1]
ToolModalCommand.start("pip 삭제", [cmd])
return jsonify(ret)