| |
|
|
| import plugins |
| from bridge.context import ContextType |
| from bridge.reply import Reply, ReplyType |
| from channel.chat_message import ChatMessage |
| from common.log import logger |
| from plugins import * |
| from config import conf |
|
|
|
|
| @plugins.register( |
| name="Hello", |
| desire_priority=-1, |
| hidden=True, |
| desc="A simple plugin that says hello", |
| version="0.1", |
| author="lanvent", |
| ) |
| class Hello(Plugin): |
| def __init__(self): |
| super().__init__() |
| self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context |
| logger.info("[Hello] inited") |
| self.config = super().load_config() |
|
|
| def on_handle_context(self, e_context: EventContext): |
| if e_context["context"].type not in [ |
| ContextType.TEXT, |
| ContextType.JOIN_GROUP, |
| ContextType.PATPAT, |
| ContextType.EXIT_GROUP |
| ]: |
| return |
| if e_context["context"].type == ContextType.JOIN_GROUP: |
| if "group_welcome_msg" in conf(): |
| reply = Reply() |
| reply.type = ReplyType.TEXT |
| reply.content = conf().get("group_welcome_msg", "") |
| e_context["reply"] = reply |
| e_context.action = EventAction.BREAK_PASS |
| return |
| e_context["context"].type = ContextType.TEXT |
| msg: ChatMessage = e_context["context"]["msg"] |
| e_context["context"].content = f'请你随机使用一种风格说一句问候语来欢迎新用户"{msg.actual_user_nickname}"加入群聊。' |
| e_context.action = EventAction.BREAK |
| if not self.config or not self.config.get("use_character_desc"): |
| e_context["context"]["generate_breaked_by"] = EventAction.BREAK |
| return |
| |
| if e_context["context"].type == ContextType.EXIT_GROUP: |
| if conf().get("group_chat_exit_group"): |
| e_context["context"].type = ContextType.TEXT |
| msg: ChatMessage = e_context["context"]["msg"] |
| e_context["context"].content = f'请你随机使用一种风格跟其他群用户说他违反规则"{msg.actual_user_nickname}"退出群聊。' |
| e_context.action = EventAction.BREAK |
| return |
| e_context.action = EventAction.BREAK |
| return |
| |
| if e_context["context"].type == ContextType.PATPAT: |
| e_context["context"].type = ContextType.TEXT |
| msg: ChatMessage = e_context["context"]["msg"] |
| e_context["context"].content = f"请你随机使用一种风格介绍你自己,并告诉用户输入#help可以查看帮助信息。" |
| e_context.action = EventAction.BREAK |
| if not self.config or not self.config.get("use_character_desc"): |
| e_context["context"]["generate_breaked_by"] = EventAction.BREAK |
| return |
|
|
| content = e_context["context"].content |
| logger.debug("[Hello] on_handle_context. content: %s" % content) |
| if content == "Hello": |
| reply = Reply() |
| reply.type = ReplyType.TEXT |
| msg: ChatMessage = e_context["context"]["msg"] |
| if e_context["context"]["isgroup"]: |
| reply.content = f"Hello, {msg.actual_user_nickname} from {msg.from_user_nickname}" |
| else: |
| reply.content = f"Hello, {msg.from_user_nickname}" |
| e_context["reply"] = reply |
| e_context.action = EventAction.BREAK_PASS |
|
|
| if content == "Hi": |
| reply = Reply() |
| reply.type = ReplyType.TEXT |
| reply.content = "Hi" |
| e_context["reply"] = reply |
| e_context.action = EventAction.BREAK |
|
|
| if content == "End": |
| |
| e_context["context"].type = ContextType.IMAGE_CREATE |
| content = "The World" |
| e_context.action = EventAction.CONTINUE |
|
|
| def get_help_text(self, **kwargs): |
| help_text = "输入Hello,我会回复你的名字\n输入End,我会回复你世界的图片\n" |
| return help_text |
|
|