feat: add subscribe_msg option for wechatmp, wechatmp_service, and wechatcom_app channels

This commit is contained in:
lanvent
2023-04-25 23:58:46 +08:00
parent 73c87d5959
commit 20b71f206b
7 changed files with 37 additions and 48 deletions

View File

@@ -10,7 +10,7 @@ from channel.wechatmp.common import *
from channel.wechatmp.wechatmp_channel import WechatMPChannel
from channel.wechatmp.wechatmp_message import WeChatMPMessage
from common.log import logger
from config import conf
from config import conf, subscribe_msg
# This class is instantiated once per query
@@ -66,13 +66,14 @@ class Query:
logger.info("[wechatmp] Event {} from {}".format(msg.event, msg.source))
if msg.event in ["subscribe", "subscribe_scan"]:
reply_text = subscribe_msg()
replyPost = create_reply(reply_text, msg)
return encrypt_func(replyPost.render())
if reply_text:
replyPost = create_reply(reply_text, msg)
return encrypt_func(replyPost.render())
else:
return "success"
else:
logger.info("暂且不处理")
return "success"
return "success"
except Exception as exc:
logger.exception(exc)
return exc

View File

@@ -1,5 +1,3 @@
import textwrap
import web
from wechatpy.crypto import WeChatCrypto
from wechatpy.exceptions import InvalidSignatureException
@@ -27,19 +25,3 @@ def verify_server(data):
raise web.Forbidden("Invalid signature")
except Exception as e:
raise web.Forbidden(str(e))
def subscribe_msg():
trigger_prefix = conf().get("single_chat_prefix", [""])[0]
msg = textwrap.dedent(
f"""\
感谢您的关注!
这里是ChatGPT可以自由对话。
资源有限,回复较慢,请勿着急。
支持语音对话。
支持图片输入。
支持图片输出,画字开头的消息将按要求创作图片。
支持tool、角色扮演和文字冒险等丰富的插件。
输入'{trigger_prefix}#帮助' 查看详细指令。"""
)
return msg

View File

@@ -12,7 +12,7 @@ from channel.wechatmp.wechatmp_channel import WechatMPChannel
from channel.wechatmp.wechatmp_message import WeChatMPMessage
from common.log import logger
from common.utils import split_string_by_utf8_length
from config import conf
from config import conf, subscribe_msg
# This class is instantiated once per query
@@ -200,14 +200,14 @@ class Query:
logger.info("[wechatmp] Event {} from {}".format(msg.event, msg.source))
if msg.event in ["subscribe", "subscribe_scan"]:
reply_text = subscribe_msg()
replyPost = create_reply(reply_text, msg)
return encrypt_func(replyPost.render())
if reply_text:
replyPost = create_reply(reply_text, msg)
return encrypt_func(replyPost.render())
else:
return "success"
else:
logger.info("暂且不处理")
return "success"
return "success"
except Exception as exc:
logger.exception(exc)
return exc