mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-07-21 14:17:11 +08:00
Plugins: register function add namecn
This commit is contained in:
@@ -10,7 +10,7 @@ from common.log import logger
|
|||||||
from .WordsSearch import WordsSearch
|
from .WordsSearch import WordsSearch
|
||||||
|
|
||||||
|
|
||||||
@plugins.register(name="Banwords", desc="判断消息中是否有敏感词、决定是否回复。", version="1.0", author="lanvent", desire_priority= 100)
|
@plugins.register(name="Banwords", desire_priority=100, hidden=True, desc="判断消息中是否有敏感词、决定是否回复。", version="1.0", author="lanvent")
|
||||||
class Banwords(Plugin):
|
class Banwords(Plugin):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ from uuid import getnode as get_mac
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
@plugins.register(name="BDunit", desc="Baidu unit bot system", version="0.1", author="jackson", desire_priority=0)
|
@plugins.register(name="BDunit", desire_priority=0, desc="Baidu unit bot system", version="0.1", author="jackson")
|
||||||
class BDunit(Plugin):
|
class BDunit(Plugin):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ class StoryTeller():
|
|||||||
return prompt
|
return prompt
|
||||||
|
|
||||||
|
|
||||||
@plugins.register(name="文字冒险", desc="A plugin to play dungeon game", version="1.0", author="lanvent", desire_priority= 0)
|
@plugins.register(name="Dungeon", desire_priority=0, namecn="文字冒险", desc="A plugin to play dungeon game", version="1.0", author="lanvent")
|
||||||
class Dungeon(Plugin):
|
class Dungeon(Plugin):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from plugins import *
|
|||||||
from common.log import logger
|
from common.log import logger
|
||||||
|
|
||||||
|
|
||||||
@plugins.register(name="Finish", desc="A plugin that check unknow command", version="1.0", author="js00000", desire_priority= -999)
|
@plugins.register(name="Finish", desire_priority=-999, hidden=True, desc="A plugin that check unknow command", version="1.0", author="js00000")
|
||||||
class Finish(Plugin):
|
class Finish(Plugin):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ ADMIN_COMMANDS = {
|
|||||||
def get_help_text(isadmin, isgroup):
|
def get_help_text(isadmin, isgroup):
|
||||||
help_text = "通用指令:\n"
|
help_text = "通用指令:\n"
|
||||||
for cmd, info in COMMANDS.items():
|
for cmd, info in COMMANDS.items():
|
||||||
if cmd=="auth": # 隐藏认证指令
|
if cmd=="auth": #不提示认证指令
|
||||||
continue
|
continue
|
||||||
|
|
||||||
alias=["#"+a for a in info['alias']]
|
alias=["#"+a for a in info['alias']]
|
||||||
@@ -116,10 +116,11 @@ def get_help_text(isadmin, isgroup):
|
|||||||
# 插件指令
|
# 插件指令
|
||||||
plugins = PluginManager().list_plugins()
|
plugins = PluginManager().list_plugins()
|
||||||
for plugin in plugins:
|
for plugin in plugins:
|
||||||
if plugin != 'GODCMD' and plugin != 'BANWORDS' and plugin != 'FINISH' and plugins[plugin].enabled:
|
if plugins[plugin].enabled and not plugins[plugin].hidden:
|
||||||
print(plugin)
|
namecn = plugins[plugin].namecn
|
||||||
help_text += "\n%s:\n"%plugin
|
print(namecn)
|
||||||
help_text += "#帮助 %s: 关于%s的详细帮助\n"%(plugin,plugin)
|
help_text += "\n%s:\n"%namecn
|
||||||
|
help_text += "#帮助 %s: 关于%s的详细帮助\n"%(namecn,namecn)
|
||||||
help_text += PluginManager().instances[plugin].get_help_text(verbose=False)
|
help_text += PluginManager().instances[plugin].get_help_text(verbose=False)
|
||||||
|
|
||||||
if ADMIN_COMMANDS and isadmin:
|
if ADMIN_COMMANDS and isadmin:
|
||||||
@@ -130,7 +131,7 @@ def get_help_text(isadmin, isgroup):
|
|||||||
help_text += f": {info['desc']}\n"
|
help_text += f": {info['desc']}\n"
|
||||||
return help_text
|
return help_text
|
||||||
|
|
||||||
@plugins.register(name="Godcmd", desc="为你的机器人添加指令集,有用户和管理员两种角色,加载顺序请放在首位,初次运行后插件目录会生成配置文件, 填充管理员密码后即可认证", version="1.0", author="lanvent", desire_priority= 999)
|
@plugins.register(name="Godcmd", desire_priority=999, hidden=True, desc="为你的机器人添加指令集,有用户和管理员两种角色,加载顺序请放在首位,初次运行后插件目录会生成配置文件, 填充管理员密码后即可认证", version="1.0", author="lanvent")
|
||||||
class Godcmd(Plugin):
|
class Godcmd(Plugin):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@@ -188,12 +189,16 @@ class Godcmd(Plugin):
|
|||||||
if len(args) == 0:
|
if len(args) == 0:
|
||||||
ok, result = True, get_help_text(isadmin, isgroup)
|
ok, result = True, get_help_text(isadmin, isgroup)
|
||||||
elif len(args) == 1:
|
elif len(args) == 1:
|
||||||
|
# This can replace the helpp command
|
||||||
plugins = PluginManager().list_plugins()
|
plugins = PluginManager().list_plugins()
|
||||||
name = args[0].upper()
|
query_name = args[0].upper()
|
||||||
if name in plugins and name != 'GODCMD' and name != 'BANWORDS' and plugins[name].enabled:
|
# search name and namecn
|
||||||
|
for name, plugincls in plugins.items():
|
||||||
|
if query_name == name or query_name == plugincls.namecn:
|
||||||
ok, result = True, PluginManager().instances[name].get_help_text(verbose=True)
|
ok, result = True, PluginManager().instances[name].get_help_text(verbose=True)
|
||||||
else:
|
break
|
||||||
ok, result = False, "unknown args"
|
if not ok:
|
||||||
|
result = "unknown args"
|
||||||
elif cmd == "set_openai_api_key":
|
elif cmd == "set_openai_api_key":
|
||||||
if len(args) == 1:
|
if len(args) == 1:
|
||||||
user_data = conf().get_user_data(user)
|
user_data = conf().get_user_data(user)
|
||||||
@@ -208,18 +213,6 @@ class Godcmd(Plugin):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
ok, result = False, "你没有设置私有api_key"
|
ok, result = False, "你没有设置私有api_key"
|
||||||
ok, result = True, "你的OpenAI私有api_key已清除"
|
ok, result = True, "你的OpenAI私有api_key已清除"
|
||||||
# elif cmd == "helpp":
|
|
||||||
# if len(args) != 1:
|
|
||||||
# ok, result = False, "请提供插件名"
|
|
||||||
# else:
|
|
||||||
# plugins = PluginManager().list_plugins()
|
|
||||||
# name = args[0].upper()
|
|
||||||
# if name in plugins and plugins[name].enabled:
|
|
||||||
# ok, result = True, PluginManager().instances[name].get_help_text(isgroup=isgroup, isadmin=isadmin)
|
|
||||||
# else:
|
|
||||||
# ok, result= False, "插件不存在或未启用"
|
|
||||||
# elif cmd == "id":
|
|
||||||
# ok, result = True, f"用户id=\n{user}"
|
|
||||||
elif cmd == "reset":
|
elif cmd == "reset":
|
||||||
if bottype in (const.CHATGPT, const.OPEN_AI):
|
if bottype in (const.CHATGPT, const.OPEN_AI):
|
||||||
bot.sessions.clear_session(session_id)
|
bot.sessions.clear_session(session_id)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from plugins import *
|
|||||||
from common.log import logger
|
from common.log import logger
|
||||||
|
|
||||||
|
|
||||||
@plugins.register(name="Hello", desc="A simple plugin that says hello", version="0.1", author="lanvent", desire_priority= -1)
|
@plugins.register(name="Hello", desire_priority=-1, hidden=True, desc="A simple plugin that says hello", version="0.1", author="lanvent")
|
||||||
class Hello(Plugin):
|
class Hello(Plugin):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@@ -18,16 +18,18 @@ class PluginManager:
|
|||||||
self.instances = {}
|
self.instances = {}
|
||||||
self.pconf = {}
|
self.pconf = {}
|
||||||
|
|
||||||
def register(self, name: str, desc: str, version: str, author: str, desire_priority: int = 0):
|
def register(self, name: str, desire_priority: int = 0, **kwargs):
|
||||||
def wrapper(plugincls):
|
def wrapper(plugincls):
|
||||||
plugincls.name = name
|
plugincls.name = name
|
||||||
plugincls.desc = desc
|
|
||||||
plugincls.version = version
|
|
||||||
plugincls.author = author
|
|
||||||
plugincls.priority = desire_priority
|
plugincls.priority = desire_priority
|
||||||
|
plugincls.desc = kwargs.get('desc')
|
||||||
|
plugincls.author = kwargs.get('author')
|
||||||
|
plugincls.version = kwargs.get('version') if kwargs.get('version') != None else "1.0"
|
||||||
|
plugincls.namecn = kwargs.get('namecn') if kwargs.get('namecn') != None else name
|
||||||
|
plugincls.hidden = kwargs.get('hidden') if kwargs.get('hidden') != None else False
|
||||||
plugincls.enabled = True
|
plugincls.enabled = True
|
||||||
self.plugins[name.upper()] = plugincls
|
self.plugins[name.upper()] = plugincls
|
||||||
logger.info("Plugin %s_v%s registered" % (name, version))
|
logger.info("Plugin %s_v%s registered" % (name, plugincls.version))
|
||||||
return plugincls
|
return plugincls
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class RolePlay():
|
|||||||
prompt = self.wrapper % user_action
|
prompt = self.wrapper % user_action
|
||||||
return prompt
|
return prompt
|
||||||
|
|
||||||
@plugins.register(name="角色扮演", desc="为你的Bot设置预设角色", version="1.0", author="lanvent", desire_priority= 0)
|
@plugins.register(name="Role", desire_priority=0, namecn="角色扮演", desc="为你的Bot设置预设角色", version="1.0", author="lanvent")
|
||||||
class Role(Plugin):
|
class Role(Plugin):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
Reference in New Issue
Block a user