|
|
|
|
|
|
|
|
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 * |
|
|
|
|
|
|
|
|
@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") |
|
|
|
|
|
def on_handle_context(self, e_context: EventContext): |
|
|
if e_context["context"].type not in [ |
|
|
ContextType.TEXT, |
|
|
ContextType.JOIN_GROUP, |
|
|
ContextType.PATPAT, |
|
|
]: |
|
|
return |
|
|
|
|
|
if e_context["context"].type == ContextType.JOIN_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 |
|
|
|
|
|
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 |
|
|
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 |
|
|
|