common.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import textwrap
  2. import web
  3. from wechatpy.crypto import WeChatCrypto
  4. from wechatpy.exceptions import InvalidSignatureException
  5. from wechatpy.utils import check_signature
  6. from config import conf
  7. MAX_UTF8_LEN = 2048
  8. class WeChatAPIException(Exception):
  9. pass
  10. def verify_server(data):
  11. try:
  12. signature = data.signature
  13. timestamp = data.timestamp
  14. nonce = data.nonce
  15. echostr = data.get("echostr", None)
  16. token = conf().get("wechatmp_token") # 请按照公众平台官网\基本配置中信息填写
  17. check_signature(token, signature, timestamp, nonce)
  18. return echostr
  19. except InvalidSignatureException:
  20. raise web.Forbidden("Invalid signature")
  21. except Exception as e:
  22. raise web.Forbidden(str(e))
  23. def subscribe_msg():
  24. trigger_prefix = conf().get("single_chat_prefix", [""])[0]
  25. msg = textwrap.dedent(
  26. f"""\
  27. 感谢您的关注!
  28. 这里是ChatGPT,可以自由对话。
  29. 资源有限,回复较慢,请勿着急。
  30. 支持语音对话。
  31. 支持图片输入。
  32. 支持图片输出,画字开头的消息将按要求创作图片。
  33. 支持tool、角色扮演和文字冒险等丰富的插件。
  34. 输入'{trigger_prefix}#帮助' 查看详细指令。"""
  35. )
  36. return msg