feat(群级配置): 新增MySQL+Redis持久缓存并接入进群欢迎差异化配置
新增群级插件配置表与服务层,采用MySQL持久化+Redis长期缓存(TTL=-1);后台新增群级插件配置管理页面与API,支持按群按插件维护JSON配置并在修改后同步回填MySQL和刷新Redis;已将群成员变更监控插件接入该配置,支持欢迎文案与卡片URL等按群差异化。
This commit is contained in:
11
robot.py
11
robot.py
@@ -17,10 +17,12 @@ from base.plugin_common.plugin_registry import PluginRegistry
|
||||
from configuration import Config
|
||||
from db.connection import DBConnectionManager
|
||||
from db.contacts_db import ContactsDBOperator
|
||||
from db.group_plugin_config_db import GroupPluginConfigDBOperator
|
||||
from db.plugin_schedule_db import PluginScheduleDBOperator
|
||||
from db.system_job_db import SystemJobDBOperator
|
||||
from utils.system_jobs import SystemJobLoader
|
||||
from utils.email_util import EmailSender
|
||||
from utils.group_plugin_config_service import GroupPluginConfigService
|
||||
from utils.plugin_schedule_manager import PluginScheduleManager
|
||||
from utils.revoke.message_auto_revoke import MessageAutoRevoke
|
||||
from utils.robot_cmd.robot_command import GroupBotManager, Feature, PermissionStatus
|
||||
@@ -68,8 +70,14 @@ class Robot:
|
||||
self.redis_pool = self.db_manager.redis_pool
|
||||
|
||||
self.contacts_db = ContactsDBOperator(self.db_manager)
|
||||
self.group_plugin_config_db = GroupPluginConfigDBOperator(self.db_manager)
|
||||
self.plugin_schedule_db = PluginScheduleDBOperator(self.db_manager)
|
||||
self.system_job_db = SystemJobDBOperator(self.db_manager)
|
||||
self.group_plugin_config_db.init_tables()
|
||||
self.group_plugin_config_service = GroupPluginConfigService(
|
||||
db_operator=self.group_plugin_config_db,
|
||||
redis_client=self.db_manager.get_redis_connection(),
|
||||
)
|
||||
# 初始化联系人管理器
|
||||
self.contact_manager = ContactManager.get_instance()
|
||||
self.allContacts = {} # 将在登录后填充
|
||||
@@ -89,7 +97,8 @@ class Robot:
|
||||
"plugin_registry": self.plugin_registry,
|
||||
"db_manager": self.db_manager,
|
||||
"db_pool": self.db_pool,
|
||||
"redis_pool": self.redis_pool
|
||||
"redis_pool": self.redis_pool,
|
||||
"group_plugin_config_service": self.group_plugin_config_service,
|
||||
}
|
||||
|
||||
self.plugin_manager = PluginManager(plugin_dir=getattr(self.config, "plugin_dir", "plugins"))
|
||||
|
||||
Reference in New Issue
Block a user