微信&微信群关键词自动回复
评论
收藏

微信&微信群关键词自动回复

经验分享
蕾恩恩
2025-06-11 11:29·浏览量:1675
蕾恩恩
影刀专家
影刀认证工程师
发布于 2025-06-11 09:10更新于 2025-06-11 11:291675浏览

1、响应速度快、准确无遗漏

2、包含关键字的发言都可以自动回复,也可以设置超过多少长度不回复

3、也可以接入AI大模型

视频很长 但是很简单

傻瓜式教学视频-----bilibili

以下是文档教程

https://zcns66o1v3jj.feishu.cn/docx/L5I4ddJW4ot272xIrOwcUgQOnzf   这个文档有关键词和回复内容的表格  也可以自己创建

第一步、先去文档

先准备好关键词表格和数据库

第二步、新建三个全局变量

第三步、复制以下流程到主流程里边

其中并发调用是调用监控的子流程不需要传入参数

连接数据库参数是全局变量database

查询数据表的sql是

select * from messages where state is null and sender_name <> "Self" limit 1

第四步、复制以下到子流程

第五步、安装wxauto库,复制下载代码到module1

import sqlite3
import time
from wxauto import WeChat
from xbot import print, sleep

def main():
    pass
# 配置部分
CHECK_INTERVAL = 1       # 检查消息间隔(秒)
import re

def extract_group_name(chat_window_str):
    """
    从聊天窗口字符串中提取群聊名称
    示例输入: "<wxauto Chat Window at 0x142b6c98050 for 群聊1>"
    返回: "群聊1"
    """
    match = re.search(r'for (.+?)>$', str(chat_window_str))
    if match:
        return match.group(1)
    return None

# 初始化数据库
def init_db(db):
    conn = sqlite3.connect(db)
    cursor = conn.cursor()
    cursor.execute('''
    CREATE TABLE IF NOT EXISTS messages (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        group_name TEXT,
        sender_name TEXT,
        content TEXT,
        city TEXT,
        timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
        state TEXT
    )
    ''')
    conn.commit()
    conn.close()

# 写入数据库
def save_message(group_name, sender_name, content,city,db):
    conn = sqlite3.connect(db)
    cursor = conn.cursor()
    cursor.execute('''
    INSERT INTO messages (group_name, sender_name, content,city)
    VALUES (?, ?, ?, ?)
    ''', (group_name, sender_name, content,city))
    conn.commit()
    conn.close()

# 获取所有监听消息
def monitor_groups(db,TARGET_GROUPS,city_set):
    wx = WeChat()
    processed_msg_ids = set()
    
    print("正在初始化监听...")
    
    # 添加监听群聊
    for group in TARGET_GROUPS:
        wx.AddListenChat(who=group)

    while True:
        try:         
            # 获取所有监听消息
            all_msgs = wx.GetListenMessage()
            if all_msgs:
                print(all_msgs)
                for chat_wnd, messages in all_msgs.items():
                    group_name=extract_group_name(chat_wnd)
                    print(messages)
                    for msg in messages:
                        sender_name=msg[0]
                        content=msg[1]
                        
                        # 第一个关键词就匹配(最快)
                        city = next((keyword for keyword in city_set if keyword in content),None)
                        if city:
                            save_message(group_name, sender_name, content,city,db)
            time.sleep(CHECK_INTERVAL)
            
        except Exception as e:
            print(f"! 发生错误: {str(e)}")
            time.sleep(1)
            continue

# 更新表
def update_message(db,sql):

    conn = sqlite3.connect(db)
    cursor = conn.cursor()
    cursor.execute(sql)
    conn.commit()
    conn.close()

def send_massage(msg,who,at):
    wx = WeChat()
    wx.SendMsg(msg=msg, who=who, at=at)

最后直接运行,填入一下参数

最后提醒一下   如果回复太频繁会让微信自动退出登录


收藏13
全部评论1
最新
发布评论
评论