nonebot2 QQ防撤回插件

代码如下:

import json
from nonebot import on_notice, Bot
from nonebot.adapters.onebot.v11 import GroupRecallNoticeEvent, FriendRecallNoticeEvent

def extract_message_info(message_list):
    extracted_messages = []
    
    for msg in message_list:
        if msg['type'] == 'text':
            extracted_messages.append(f"文本: {msg['data']['text']}")
        elif msg['type'] == 'image':
            extracted_messages.append(f"图片: {msg['data']['url']}")
    
    return "\n".join(extracted_messages)

group_recall = on_notice(rule=lambda bot, event: isinstance(event, GroupRecallNoticeEvent), priority=50)
friend_recall = on_notice(rule=lambda bot, event: isinstance(event, FriendRecallNoticeEvent), priority=50)

@group_recall.handle()
async def handle_group_recall(bot: Bot, event: GroupRecallNoticeEvent):
    msg = await bot.call_api('get_msg', **{"message_id": event.message_id})
    mesg = msg['message']
    extracted_mesg = extract_message_info(mesg)
    # await bot.call_api('send_group_msg', **{"group_id": event.group_id,
    #                                         "message": f"{event.user_id} 撤回了一条消息:\n{extracted_mesg}"})
    await bot.call_api('send_private_msg', **{"user_id": 你的QQ号,
                                              "message": f"群 {event.group_id} 的 {event.user_id} 撤回了一条消息:\n{extracted_mesg}"})

@friend_recall.handle()
async def handle_friend_recall(bot: Bot, event: FriendRecallNoticeEvent):
    msg = await bot.call_api('get_msg', **{"message_id": event.message_id})
    mesg = msg['message']
    extracted_mesg = extract_message_info(mesg)
    await bot.call_api('send_private_msg', **{"user_id": event.user_id,
                                              "message": f"你撤回了一条消息:\n{extracted_mesg}"})

注释部分为直接在群里发出撤回信息,不太好,还是偷偷转发给某人吧。

效果如下:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python的watchdog是一个用于监视文件系统事件的库。它可以监听文件的创建、修改、删除和移动等事件。要安装watchdog包,你可以使用pip命令进行安装。在Python 3.9版本的环境中,可以通过以下命令安装watchdog包:pip install watchdog。 使用watchdog包可以实现撤回功能,通过监听文件的创建事件可以实现该功能。当有新文件被创建时,你可以编写代码来实现相应的操作,例如阻止文件被删除或移动。 watchdog是一个Python库,可以在官方资源中找到。你可以通过链接https://lanzao.blog.csdn.net/article/details/101784059找到watchdog的安装方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [微信图片撤回](https://blog.csdn.net/m0_60961651/article/details/131365539)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Python库 | watchdog-2.1.3-py3-none-manylinux2014_ppc64.whl](https://download.csdn.net/download/qq_38161040/85346079)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值