a wechat adapter for nonebot2
Project description
Nonebot Adapter Ntchat
简介
nonebot2的ntchat适配器,配合 ntchat-client 可以实现与微信对接。
已实现连接方式
- 反向ws
-
http -
正向ws
其他的感觉用处不大就...
配置
与原nonebot2的配置一样,但是由于拓展了send_image
接口,所以会有一个缓存图片的文件夹,默认是在./image_cache
,如需更改,请修改以下配置:
chache_path = "./image_cache"
注意:目前这个文件夹不会自动清理,如需自动清理,请使用定时插件写一个定时清理程序,比如:
from nonebot import get_driver
from nonebot.log import logger
from nonebot import require
require("nonebot_plugin_apscheduler")
from nonebot_plugin_apscheduler import scheduler
@scheduler.scheduled_job(trigger="cron", hour=0, minute=0)
async def clean_cache():
"""清理图片缓存"""
logger.info("正在清理图片缓存...")
config = get_driver().config
path = Path(config.chache_path)
files = path.rglob("*.image")
count = 0
for one in files:
count += 1
one.unlink()
logger.info(f"图片清理完毕,共清理:{count} 个...")
这样每天0点就会自动清理图片缓存了
已实现事件
普通事件
-
TextMessageEvent:文本消息,事件
type
为:"message",可用于触发on_message等 -
FriendRquestEvent:好友请求消息,事件
type
为:"request",可触发on_request -
RevokeMessageEvent:撤回消息通知,事件
type
为:"notice",可触发on_notice -
PictureMessageEvent:图片消息,事件
type
为:"WX_MSG_PICTURE" -
VoiceMessageEvent:语音消息,事件
type
为:"WX_MSG_VOICE" -
CardMessageEvent:名片消息,事件
type
为:"WX_MSG_CARD" -
ViedeoMessageEvent:视频消息,事件
type
为:"WX_MSG_VIDEO" -
EmojiMessageEvent:表情消息,事件
type
为:"WX_MSG_EMOJI" -
LocationMessageEvent:位置消息,事件
type
为:"WX_MSG_LOCATION" -
SystemMessageEvent:系统消息,事件
type
为:"WX_MSG_SYSTEM" -
OtherMessageEvent:其他消息,事件
type
未知
APP事件
事件type为:app
- LinkMessageEvent:链接消息,字段
wx_sub_type
为:"WX_APPMSG_LINK" - FileMessageEvent:文件消息,字段
wx_sub_type
为:"WX_APPMSG_FILE" - MiniAppMessageEvent:小程序消息,字段
wx_sub_type
为:"WX_APPMSG_MINIAPP" - WcpayMessageEvent:转账消息,字段
wx_sub_type
为:"WX_APPMSG_WCPAY" - OtherAppMessageEvent:其他应用消息,字段
wx_sub_type
未知
监听事件
除了通用的on_message,on_notice等一般行为,想要监听单独某个事件时,可以使用on
来注册一个matcher,此函数第一个参数为事件type
,比如:
from nonebot.plugin import on
from nonebot.adapter.ntchat import PictureMessageEvent
mather = on("WX_MSG_PICTURE") # rule,permission等参数同样可以加入
@matcher.handle()
async def _(event:PictureMessageEvent):
pass
上述例子会监听所有的图片消息事件。
Permission
内置2个Permission,为:
- PRIVATE:匹配任意私聊消息类型事件
- GROUP:匹配任意群聊消息类型事件
已实现api
- get_login_info:获取登录信息
- get_self_info:获取自己个人信息跟登录信息类似
- get_contacts:获取联系人列表
- get_publics:获取关注公众号列表
- get_contact_detail:获取联系人详细信息
- search_contacts:根据wxid、微信号、昵称和备注模糊搜索联系人
- get_rooms:获取群列表
- get_room_detail:获取指定群详细信息
- get_room_members:获取群成员列表
- send_text:发送文本消息
- send_room_at_msg:发送群@消息,需要注意:
- 假如文本为:"test,你好{$@},你好{$@}.早上好"
- 文本消息的content的内容中设置占位字符串 {$@},这些字符的位置就是最终的@符号所在的位置
- 假设这两个被@的微信号的群昵称分别为aa,bb
- 则实际发送的内容为 "test,你好@ aa,你好@ bb.早上好"(占位符被替换了)
- 占位字符串的数量必须和at_list中的微信数量相等.
- send_card:发送名片
- send_link_card:发送链接卡片
- send_image:发送图片接口,对原有接口进行封装,方便发送,注意:
- 由于ntchat接口只支持本地路径发送,所以adapter做了一些封装
- 目前支持str路径,Path路径,url路径,bytes
- 由于是本地路径,所以nb2和ntchat-client必须在同一台机器上
- send_file:发送文件
- send_video:发送视频
- send_gif:发送gif图片
- send_xml:发送xml
- send_pat:发送拍一拍
- accept_friend_request:同意加好友请求
- create_room:创建群
- add_room_member:添加好友入群
- invite_room_member:邀请好友入群
- del_room_member:删除群成员
- modify_room_name:修改群名
- modify_room_notice:修改群公告
- add_room_friend:添加群成员为好友
- quit_room:退出群
- modify_friend_remark:修改好友备注
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nonebot-adapter-ntchat-0.1.0.tar.gz
.
File metadata
- Download URL: nonebot-adapter-ntchat-0.1.0.tar.gz
- Upload date:
- Size: 15.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2723b6c5ef8736cdd23080e4927909e9244a1ad9ff959e65297711d56867beff |
|
MD5 | 55893dd718e92545e79ec5a7c70d9fce |
|
BLAKE2b-256 | b97d3b7591204d632e520ff554cdd60545d95bd5e0b12d1a12c4f1aa6efae3d6 |
File details
Details for the file nonebot_adapter_ntchat-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: nonebot_adapter_ntchat-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f010fa565ebb5d1ccdab4ef6c8fc5c18f874f85276090f21ea0142eef22ac81 |
|
MD5 | ce14ad45810aaf57a533eedc3e5b63a1 |
|
BLAKE2b-256 | d7b20a50fa4b97451601a9a1bddbe86db91c48706bb50cf5c884f5f1c9b1cc04 |