def receive_events(ctx: dict): if ctx['CurrentPacket']['Data']['EventName'] == "ON_EVENT_GROUP_JOIN" and\ ctx['CurrentPacket']['Data']['EventData']['UserID'] == configuration.qq: action = Action(configuration.qq) plugins = PluginControl() msg_group_id = ctx['CurrentPacket']['Data']['EventMsg']['FromUin'] msg = "爷来啦!\n\n默认开启插件:\n" for plugin_default in configuration.keywords_default: print(plugin_default) msg += plugins.add(plugin_default, msg_group_id)["content"] + '\n' msg.rstrip('\n') results = plugins.find_all(msg_group_id) content = "插件列表:\n" for key in plugins.keywords: flag = 0 for result in results: if key == result["plugin"]: flag = 1 is_opened = '(√) ' if flag else '(×) ' content += is_opened + key + "\n" msg += "\n" + content action.send_group_text_msg(msg_group_id, msg)
def admin_plugins(flag, content, fromId): content = content.lstrip('.') if content.split(' ', 1)[0] == 'plugins': commands = content.split(' ') plugins = PluginControl() # open命令 if len(commands) == 3 and commands[1] == "open": if commands[2] in plugins.keywords: res = plugins.add(commands[2], fromId) return action_in_type(fromId, res["content"], flag, res["result"]) elif commands[2] == "all": false_set = plugins.add_all(fromId) if false_set == []: return action_in_type(fromId, "插件全部开启成功", flag, True) else: content = "插件 " for plugin in false_set: content += plugin + " , " content += "开启失败" return action_in_type(fromId, content, flag, False) else: return action_in_type(fromId, commands[2] + "不是可开启的插件", flag, False) # close命令 elif len(commands) == 3 and commands[1] == "close": if commands[2] == "all": false_set = plugins.delete_all(fromId) if false_set == []: return action_in_type(fromId, "插件全部关闭成功", flag, True) else: content = "插件 " for plugin in false_set: content += plugin + " , " content += "关闭失败" return action_in_type(fromId, content, flag, False) else: res = plugins.delete(commands[2], fromId) return action_in_type(fromId, res["content"], flag, res["result"]) # list命令 elif len(commands) == 2 and commands[1] == "list": results = plugins.find_all(fromId) content = "插件列表:\n" for key in plugins.keywords: new_flag = 0 for result in results: if key == result["plugin"]: new_flag = 1 is_opened = '(√) ' if new_flag else '(×) ' content += is_opened + key + "\n" return action_in_type(fromId, content, flag, False)