update
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
path_data: "."
|
path_data: "."
|
||||||
#path_plugins_dev:
|
#path_dev:
|
||||||
|
|
||||||
|
|
||||||
# 데이터 폴더 루트 경로
|
# 데이터 폴더 루트 경로
|
||||||
@@ -7,11 +7,11 @@ path_data: "."
|
|||||||
# 예) data_folder: "C:\\work\\data"
|
# 예) data_folder: "C:\\work\\data"
|
||||||
# 현재 폴더인 경우 .
|
# 현재 폴더인 경우 .
|
||||||
#path_data: "."
|
#path_data: "."
|
||||||
#path_data: "/mnt/c/work/FlaskFarm/working"
|
|
||||||
|
|
||||||
# 개발용 플러그인 경로
|
# 개발용 플러그인 경로
|
||||||
#path_plugins_dev:
|
#path_dev:
|
||||||
#path_data: "/mnt/c/work/FlaskFarm/working"
|
|
||||||
|
|
||||||
# gevent 사용여부
|
# gevent 사용여부
|
||||||
# 플러그인 개발이나 termux 환경에서의 실행 같이 특수한 경우에만 false로 사용.
|
# 플러그인 개발이나 termux 환경에서의 실행 같이 특수한 경우에만 false로 사용.
|
||||||
|
|||||||
71
files/freeze.txt
Normal file
71
files/freeze.txt
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
amqp==5.1.1
|
||||||
|
APScheduler==3.9.1
|
||||||
|
async-generator==1.10
|
||||||
|
async-timeout==4.0.2
|
||||||
|
attrs==22.1.0
|
||||||
|
bidict==0.22.0
|
||||||
|
billiard==3.6.4.0
|
||||||
|
celery==5.2.7
|
||||||
|
certifi==2022.9.24
|
||||||
|
cffi==1.15.1
|
||||||
|
charset-normalizer==2.1.1
|
||||||
|
click==8.1.3
|
||||||
|
click-didyoumean==0.3.0
|
||||||
|
click-plugins==1.1.1
|
||||||
|
click-repl==0.2.0
|
||||||
|
colorama==0.4.5
|
||||||
|
Deprecated==1.2.13
|
||||||
|
discord-webhook==0.17.0
|
||||||
|
exceptiongroup==1.0.0rc9
|
||||||
|
Flask==2.2.2
|
||||||
|
Flask-Cors==3.0.10
|
||||||
|
Flask-Dropzone==1.6.0
|
||||||
|
Flask-Login==0.6.2
|
||||||
|
Flask-Markdown==0.3
|
||||||
|
Flask-SocketIO==5.3.1
|
||||||
|
Flask-SQLAlchemy==3.0.1
|
||||||
|
gevent==22.8.0
|
||||||
|
gevent-websocket==0.10.1
|
||||||
|
greenlet==1.1.3.post0
|
||||||
|
h11==0.14.0
|
||||||
|
idna==3.4
|
||||||
|
itsdangerous==2.1.2
|
||||||
|
Jinja2==3.1.2
|
||||||
|
kombu==5.2.4
|
||||||
|
lxml==4.9.1
|
||||||
|
Markdown==3.4.1
|
||||||
|
MarkupSafe==2.1.1
|
||||||
|
outcome==1.2.0
|
||||||
|
packaging==21.3
|
||||||
|
Pillow==9.2.0
|
||||||
|
prompt-toolkit==3.0.31
|
||||||
|
psutil==5.9.2
|
||||||
|
pycparser==2.21
|
||||||
|
pycryptodome==3.15.0
|
||||||
|
pyparsing==3.0.9
|
||||||
|
PySocks==1.7.1
|
||||||
|
python-engineio==4.3.4
|
||||||
|
python-socketio==5.7.1
|
||||||
|
pytz==2022.4
|
||||||
|
pytz-deprecation-shim==0.1.0.post0
|
||||||
|
PyYAML==6.0
|
||||||
|
redis==4.3.4
|
||||||
|
requests==2.28.1
|
||||||
|
selenium==4.5.0
|
||||||
|
six==1.16.0
|
||||||
|
sniffio==1.3.0
|
||||||
|
sortedcontainers==2.4.0
|
||||||
|
SQLAlchemy==1.4.41
|
||||||
|
telepot-mod==0.0.1
|
||||||
|
trio==0.22.0
|
||||||
|
trio-websocket==0.9.2
|
||||||
|
tzdata==2022.4
|
||||||
|
tzlocal==4.2
|
||||||
|
urllib3==1.26.12
|
||||||
|
vine==5.0.0
|
||||||
|
wcwidth==0.2.5
|
||||||
|
Werkzeug==2.2.2
|
||||||
|
wrapt==1.14.1
|
||||||
|
wsproto==1.2.0
|
||||||
|
zope.event==4.5.0
|
||||||
|
zope.interface==5.5.0
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
#flask
|
#flask
|
||||||
Flask==1.1.1
|
Flask
|
||||||
Flask-SQLAlchemy==2.5.1
|
Flask-SQLAlchemy
|
||||||
Flask-Login==0.4.1
|
Flask-Login
|
||||||
Flask-Cors==3.0.8
|
Flask-Cors
|
||||||
Flask-Markdown
|
Flask-Markdown
|
||||||
Flask-SocketIO==4.3.1
|
Flask-SocketIO
|
||||||
python-engineio==3.13.2
|
python-engineio
|
||||||
python-socketio==4.6.0
|
python-socketio
|
||||||
#Werkzeug==2.0.1
|
#Werkzeug==2.0.1
|
||||||
Werkzeug==0.16.1
|
Werkzeug
|
||||||
Jinja2==2.10.1
|
Jinja2
|
||||||
markupsafe==2.0.1
|
markupsafe
|
||||||
itsdangerous==2.0.1
|
itsdangerous
|
||||||
|
|
||||||
# common util
|
# common util
|
||||||
apscheduler
|
apscheduler
|
||||||
pytz
|
pytz
|
||||||
requests==2.26.0
|
requests
|
||||||
discord-webhook
|
discord-webhook
|
||||||
pyyaml
|
pyyaml
|
||||||
telepot-mod
|
telepot-mod
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
psutil
|
psutil
|
||||||
gevent
|
gevent
|
||||||
gevent-websocket
|
gevent-websocket
|
||||||
celery==5.0.5
|
#celery==5.0.5
|
||||||
|
celery
|
||||||
redis
|
redis
|
||||||
lxml
|
lxml
|
||||||
pillow
|
pillow
|
||||||
selenium==3.141.0
|
#selenium==3.141.0
|
||||||
|
selenium
|
||||||
pycryptodome
|
pycryptodome
|
||||||
@@ -112,8 +112,8 @@ class Framework:
|
|||||||
if os.path.exists(_):
|
if os.path.exists(_):
|
||||||
plugins = os.listdir(_)
|
plugins = os.listdir(_)
|
||||||
|
|
||||||
if self.config['path_plugins_dev'] != None and os.path.exists(self.config['path_plugins_dev']):
|
if self.config['path_dev'] != None and os.path.exists(self.config['path_dev']):
|
||||||
plugins += os.listdir(self.config['path_plugins_dev'])
|
plugins += os.listdir(self.config['path_dev'])
|
||||||
|
|
||||||
for package_name in plugins:
|
for package_name in plugins:
|
||||||
db_path = os.path.join(self.config['path_data'], 'db', f'{package_name}.db')
|
db_path = os.path.join(self.config['path_data'], 'db', f'{package_name}.db')
|
||||||
@@ -346,8 +346,8 @@ class Framework:
|
|||||||
self.config['plugin_loading_list'] = []
|
self.config['plugin_loading_list'] = []
|
||||||
if self.config.get('plugin_except_list') == None:
|
if self.config.get('plugin_except_list') == None:
|
||||||
self.config['plugin_except_list'] = []
|
self.config['plugin_except_list'] = []
|
||||||
if self.config.get('path_plugins_dev') == None:
|
if self.config.get('path_dev') == None:
|
||||||
self.config['path_plugins_dev'] = None
|
self.config['path_dev'] = None
|
||||||
|
|
||||||
|
|
||||||
def __make_default_dir(self):
|
def __make_default_dir(self):
|
||||||
|
|||||||
@@ -7,10 +7,6 @@ from .setup import *
|
|||||||
name = 'plugin'
|
name = 'plugin'
|
||||||
|
|
||||||
class ModulePlugin(PluginModuleBase):
|
class ModulePlugin(PluginModuleBase):
|
||||||
db_default = {
|
|
||||||
'plugin_dev_path': os.path.join(F.config['path_data'], 'dev'),
|
|
||||||
}
|
|
||||||
|
|
||||||
def __init__(self, P):
|
def __init__(self, P):
|
||||||
super(ModulePlugin, self).__init__(P, name=name, first_menu='list')
|
super(ModulePlugin, self).__init__(P, name=name, first_menu='list')
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ __menu = {
|
|||||||
'uri': 'plugin',
|
'uri': 'plugin',
|
||||||
'name': '플러그인',
|
'name': '플러그인',
|
||||||
'list': [
|
'list': [
|
||||||
{'uri': 'setting', 'name': '설정'},
|
#{'uri': 'setting', 'name': '설정'},
|
||||||
{'uri': 'list', 'name': '로딩 플러그인'},
|
{'uri': 'list', 'name': '로딩 플러그인'},
|
||||||
{'uri': 'all', 'name': '플러그인 목록'},
|
{'uri': 'all', 'name': '플러그인 목록'},
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div>
|
<div>
|
||||||
|
{{ macros.setting_input_text_and_buttons('_plugin_git', '플러그인 설치', [['plugin_install_btn', '설치']], value='https://github.com/', desc=None) }}
|
||||||
{{ macros.m_hr_head_top() }}
|
{{ macros.m_hr_head_top() }}
|
||||||
{{ macros.m_row_start('0') }}
|
{{ macros.m_row_start('0') }}
|
||||||
{{ macros.m_col_wide(1, macros.m_strong('Idx'), 'center') }}
|
{{ macros.m_col_wide(1, macros.m_strong('Idx'), 'center') }}
|
||||||
@@ -23,6 +24,11 @@ $(document).ready(function(){
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$("body").on('click', '#plugin_install_btn', function(e){
|
||||||
|
e.preventDefault();
|
||||||
|
globalSendCommand('plugin_install', $('#_plugin_git').val());
|
||||||
|
});
|
||||||
|
|
||||||
function make_plugin_list(data) {
|
function make_plugin_list(data) {
|
||||||
current_data = data;
|
current_data = data;
|
||||||
console.log(data);
|
console.log(data);
|
||||||
@@ -72,19 +78,6 @@ $("body").on('click', '#json_btn', function(e){
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$("body").on('click', '#uninstall_btn', function(e){
|
$("body").on('click', '#uninstall_btn', function(e){
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
$("#confirm_title").html("삭제 확인");
|
$("#confirm_title").html("삭제 확인");
|
||||||
@@ -97,12 +90,10 @@ $("body").on('click', '#uninstall_btn', function(e){
|
|||||||
|
|
||||||
function uninstall(package_name) {
|
function uninstall(package_name) {
|
||||||
globalSendCommand('uninstall', package_name, null, null, null, function(ret) {
|
globalSendCommand('uninstall', package_name, null, null, null, function(ret) {
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$("body").on('click', '#plugin_uninstall_btn', function(e){
|
$("body").on('click', '#plugin_uninstall_btn', function(e){
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
plugin_name = $(this).data('plugin_name')
|
plugin_name = $(this).data('plugin_name')
|
||||||
@@ -126,7 +117,5 @@ $("body").on('click', '#plugin_uninstall_btn', function(e){
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
{% extends "base.html" %}
|
|
||||||
{% block content %}
|
|
||||||
|
|
||||||
<div>
|
|
||||||
{{ macros.m_button_group([['globalSettingSaveBtn', '설정 저장']])}}
|
|
||||||
{{ macros.m_row_start('5') }}
|
|
||||||
{{ macros.m_row_end() }}
|
|
||||||
{{ macros.m_hr() }}
|
|
||||||
<form id='setting' name='setting'>
|
|
||||||
{{ macros.setting_input_text_and_buttons('plugin_dev_path', '개발용 플러그인 경로', [['select_btn', '폴더 선택']], value=arg['plugin_dev_path'], desc=['개발용 플러그인 패키지 폴더가 있는 경로']) }}
|
|
||||||
{{ macros.m_hr() }}
|
|
||||||
{{ macros.setting_input_text_and_buttons('_plugin_git', '플러그인 설치', [['plugin_install_btn', '설치']], value='https://github.com/', desc=['플러그인 Git 주소']) }}
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
|
|
||||||
$("body").on('click', '#select_btn', function(e){
|
|
||||||
e.preventDefault();
|
|
||||||
globalSelectLocalFolder("폴더 선택", $('#plugin_dev_path').val(), function(ret) {
|
|
||||||
$('#plugin_dev_path').val(ret);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
$("body").on('click', '#plugin_install_btn', function(e){
|
|
||||||
e.preventDefault();
|
|
||||||
globalSendCommand('plugin_install', $('#_plugin_git').val());
|
|
||||||
});
|
|
||||||
|
|
||||||
</script>
|
|
||||||
{% endblock %}
|
|
||||||
@@ -11,6 +11,7 @@
|
|||||||
'App을 재시작 해야 적용됩니다.',
|
'App을 재시작 해야 적용됩니다.',
|
||||||
'',
|
'',
|
||||||
'path_data : 필수. 데이터 폴더 경로. 윈도우의 경우 폴더 구분 기호 \ 를 두개 사용',
|
'path_data : 필수. 데이터 폴더 경로. 윈도우의 경우 폴더 구분 기호 \ 를 두개 사용',
|
||||||
|
'path_dev : 개발용 플러그인 폴더',
|
||||||
'use_gevent : 생략시 true',
|
'use_gevent : 생략시 true',
|
||||||
'use_celery : 생략시 true',
|
'use_celery : 생략시 true',
|
||||||
'redis_port : 생략시 6379',
|
'redis_port : 생략시 6379',
|
||||||
|
|||||||
Reference in New Issue
Block a user