update
This commit is contained in:
@@ -38,7 +38,7 @@ class PluginBase(object):
|
||||
self.logger = F.get_logger(self.package_name)
|
||||
self.blueprint = Blueprint(self.package_name, self.package_name, url_prefix=f'/{self.package_name}', template_folder=os.path.join(os.path.dirname(setting['filepath']), 'templates'), static_folder=os.path.join(os.path.dirname(setting['filepath']), 'static'))
|
||||
self.menu = setting['menu']
|
||||
self.setting_menu = setting['setting_menu']
|
||||
self.setting_menu = setting.get('setting_menu', None)
|
||||
|
||||
self.ModelSetting = None
|
||||
if setting.get('use_db', True):
|
||||
|
||||
@@ -17,10 +17,14 @@ class Logic(object):
|
||||
|
||||
def plugin_load(self):
|
||||
try:
|
||||
#self.P.logger.debug('%s plugin_load', self.P.package_name)
|
||||
self.P.logger.debug('%s plugin_load', self.P.package_name)
|
||||
self.db_init()
|
||||
for module in self.P.module_list:
|
||||
module.migration()
|
||||
if module.page_list is not None:
|
||||
for page_instance in module.page_list:
|
||||
page_instance.migration()
|
||||
|
||||
for module in self.P.module_list:
|
||||
module.plugin_load()
|
||||
if module.page_list is not None:
|
||||
@@ -154,7 +158,7 @@ class Logic(object):
|
||||
except Exception as e:
|
||||
self.P.logger.error(f'Exception:{str(e)}')
|
||||
self.P.logger.error(traceback.format_exc())
|
||||
ret = {'ret' : 'danger', 'msg':str(exception)}
|
||||
ret = {'ret' : 'danger', 'msg':str(e)}
|
||||
return ret
|
||||
|
||||
def get_module(self, sub):
|
||||
@@ -239,5 +243,5 @@ class Logic(object):
|
||||
except Exception as e:
|
||||
self.P.logger.error(f'Exception:{str(e)}')
|
||||
self.P.logger.error(traceback.format_exc())
|
||||
ret = {'ret' : 'danger', 'msg':str(exception)}
|
||||
ret = {'ret' : 'danger', 'msg':str(e)}
|
||||
return ret
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import traceback
|
||||
|
||||
from flask import render_template
|
||||
|
||||
|
||||
class PluginModuleBase(object):
|
||||
db_default = None
|
||||
|
||||
@@ -33,8 +36,12 @@ class PluginModuleBase(object):
|
||||
self.P.logger.error(traceback.format_exc())
|
||||
|
||||
|
||||
def process_menu(self, sub):
|
||||
pass
|
||||
def process_menu(self, page, req):
|
||||
if self.page_list is not None:
|
||||
page_ins = self.get_page(page)
|
||||
if page_ins != None:
|
||||
return page_ins.process_menu(req)
|
||||
return render_template('sample.html', title=f"PluginModuleBase-process_menu{self.P.package_name}/{self.name}/{page}")
|
||||
|
||||
def process_ajax(self, sub, req):
|
||||
pass
|
||||
@@ -96,6 +103,26 @@ class PluginModuleBase(object):
|
||||
def socketio_disconnect(self):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class PluginPageBase(object):
|
||||
db_default = None
|
||||
@@ -107,19 +134,42 @@ class PluginPageBase(object):
|
||||
self.scheduler_desc = scheduler_desc
|
||||
self.socketio_list = None
|
||||
|
||||
def process_menu(self, req):
|
||||
try:
|
||||
arg = {}
|
||||
if self.P.ModelSetting != None:
|
||||
arg = self.P.ModelSetting.to_dict()
|
||||
return render_template(f'{__package__}_{self.parent.name}_{self.name}.html', arg=arg)
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
return render_template('sample.html', title=f"PluginPageBase-process_menu {self.P.package_name}/{self.parent.name}/{self.name}")
|
||||
|
||||
|
||||
def process_ajax(self, sub, req):
|
||||
pass
|
||||
|
||||
def process_api(self, sub, req):
|
||||
pass
|
||||
|
||||
def process_normal(self, sub, req):
|
||||
pass
|
||||
|
||||
def process_command(self, command, arg1, arg2, arg3, req):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
# logic
|
||||
def plugin_load(self):
|
||||
pass
|
||||
|
||||
# logic
|
||||
def plugin_unload(self):
|
||||
pass
|
||||
|
||||
def scheduler_function(self):
|
||||
pass
|
||||
|
||||
def plugin_load(self):
|
||||
pass
|
||||
|
||||
def plugin_unload(self):
|
||||
pass
|
||||
|
||||
|
||||
def get_scheduler_desc(self):
|
||||
return self.scheduler_desc
|
||||
@@ -132,40 +182,16 @@ class PluginPageBase(object):
|
||||
return f'{self.P.package_name}_{self.parent.name}_{self.name}'
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def process_api(self, sub, req):
|
||||
pass
|
||||
|
||||
def process_normal(self, sub, req):
|
||||
# logic
|
||||
def migration(self):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
def reset_db(self):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
# route
|
||||
def setting_save_after(self, change_list):
|
||||
pass
|
||||
|
||||
def process_telegram_data(self, data, target=None):
|
||||
pass
|
||||
|
||||
def migration(self):
|
||||
pass
|
||||
|
||||
#################################################################
|
||||
|
||||
|
||||
def process_menu(self, sub):
|
||||
pass
|
||||
|
||||
|
||||
@@ -158,6 +158,8 @@ def default_route(P):
|
||||
elif command == 'immediately_execute':
|
||||
ret = P.logic.immediately_execute_sub(module_name, page_name)
|
||||
return jsonify(ret)
|
||||
elif command == 'command':
|
||||
return ins_page.process_command(request.form['command'], request.form.get('arg1'), request.form.get('arg2'), request.form.get('arg3'), request)
|
||||
else:
|
||||
return ins_page.process_ajax(command, request)
|
||||
P.logger.error(f"not process ajax : {P.package_name} {module_name} {page_name} {command}")
|
||||
@@ -251,6 +253,9 @@ def default_route_single_module(P):
|
||||
ret, change_list = P.ModelSetting.setting_save(request)
|
||||
if ret:
|
||||
P.module_list[0].setting_save_after(change_list)
|
||||
if P.module_list[0].page_list is not None:
|
||||
for page_ins in P.module_list[0].page_list:
|
||||
page_ins.setting_save_after(change_list)
|
||||
return jsonify(ret)
|
||||
elif sub == 'scheduler':
|
||||
sub = request.form['sub']
|
||||
@@ -384,32 +389,32 @@ def default_route_socketio_page(page):
|
||||
if page.socketio_list is None:
|
||||
page.socketio_list = []
|
||||
|
||||
@socketio.on('connect', namespace=f'/{P.package_name}/{module.name}/{page.name}')
|
||||
def connect():
|
||||
@F.socketio.on('connect', namespace=f'/{P.package_name}/{module.name}/{page.name}')
|
||||
def page_socketio_connect():
|
||||
try:
|
||||
P.logger.debug(f'socket_connect : {P.package_name}/{module.name}/{page.name}')
|
||||
page.socketio_list.append(request.sid)
|
||||
socketio_callback('start', '')
|
||||
except Exception as exception:
|
||||
P.logger.error(f'Exception:{str(exception)}', exception)
|
||||
page_socketio_socketio_callback('start', '')
|
||||
except Exception as e:
|
||||
P.logger.error(f'Exception:{str(e)}')
|
||||
P.logger.error(traceback.format_exc())
|
||||
|
||||
|
||||
@socketio.on('disconnect', namespace=f'/{P.package_name}/{module.name}/{page.name}')
|
||||
def disconnect():
|
||||
@F.socketio.on('disconnect', namespace=f'/{P.package_name}/{module.name}/{page.name}')
|
||||
def page_socketio_disconnect():
|
||||
try:
|
||||
P.logger.debug(f'socket_disconnect : {P.package_name}/{module.name}/{page.name}')
|
||||
page.socketio_list.remove(request.sid)
|
||||
except Exception as exception:
|
||||
P.logger.error(f'Exception:{str(exception)}', exception)
|
||||
except Exception as e:
|
||||
P.logger.error(f'Exception:{str(e)}')
|
||||
P.logger.error(traceback.format_exc())
|
||||
|
||||
|
||||
def socketio_callback(cmd, data, encoding=True):
|
||||
def page_socketio_socketio_callback(cmd, data, encoding=True):
|
||||
if page.socketio_list:
|
||||
if encoding:
|
||||
data = json.dumps(data, cls=AlchemyEncoder)
|
||||
data = json.loads(data)
|
||||
socketio.emit(cmd, data, namespace=f'/{P.package_name}/{module.name}/{page.name}', broadcast=True)
|
||||
F.socketio.emit(cmd, data, namespace=f'/{P.package_name}/{module.name}/{page.name}', broadcast=True)
|
||||
|
||||
page.socketio_callback = socketio_callback
|
||||
page.socketio_callback = page_socketio_socketio_callback
|
||||
|
||||
Reference in New Issue
Block a user