微信机器人自动回复插件,vx自动回复机器人脚本助手,python框架分享

简介: 这个微信机器人系统包含三个主要模块:主程序基于itchat实现微信消息监听和自动回复功能

下载地址:https://www.pan38.com/yun/share.php?code=JCnzE 提取密码:8872

代码说明:这个微信机器人系统包含三个主要模块:主程序基于itchat实现微信消息监听和自动回复功能,支持文本、图片等多种消息类型;增强功能模块提供消息日志、好友管理和规则配置等高级功能;配置文件集中管理各项参数。系统整合了图灵机器人API实现智能对话,并支持关键词触发和定时任务。

import itchat
from itchat.content import TEXT, PICTURE, MAP, CARD, NOTE, SHARING
import requests
import time
import threading

图灵机器人配置

TULING_API_KEY = "485712b8079e44e1bc4af10872b08319" # 替换为你的API KEY
TULING_URL = "http://www.tuling123.com/openapi/api"

登录状态回调

def login_callback():
print("微信登录成功!")
itchat.send("微信机器人已启动", toUserName="filehelper")

def exit_callback():
print("微信已退出登录")

获取图灵机器人回复

def get_tuling_response(msg):
data = {
'key': TULING_API_KEY,
'info': msg,
'userid': 'wechat-robot'
}
try:
r = requests.post(TULING_URL, data=data).json()
return r.get('text', '我听不懂你在说什么')
except Exception as e:
print("图灵API请求失败:", e)
return "网络开小差了,请稍后再试"

关键词自动回复配置

REPLY_RULES = {
"你好": ["你好呀!", "嗨~", "您好!"],
"在吗": ["我在呢", "随时为您服务"],
"谢谢": ["不客气~", "这是我的荣幸"],
"再见": ["再见,祝您愉快", "下次再见哦"]
}

消息处理函数

@itchat.msg_register([TEXT, PICTURE, MAP, CARD, NOTE, SHARING])
def handle_message(msg):

# 消息类型判断
if msg['Type'] == TEXT:
    content = msg['Text']
    sender = msg['User']['NickName']
    print(f"收到{sender}的文本消息: {content}")

    # 关键词匹配回复
    for keyword in REPLY_RULES:
        if keyword in content:
            return random.choice(REPLY_RULES[keyword])

    # 图灵机器人回复
    return get_tuling_response(content)

elif msg['Type'] == PICTURE:
    return "[自动回复]收到图片,稍后查看"
elif msg['Type'] == SHARING:
    return "[自动回复]收到分享链接,感谢分享"
else:
    return "[自动回复]暂不支持此类型消息"

定时任务

def schedule_task():
while True:

    # 每小时发送一次提醒
    current_hour = time.localtime().tm_hour
    if 9 <= current_hour <= 18:
        itchat.send("工作时段自动提醒:记得喝水休息哦", toUserName="filehelper")
    time.sleep(3600)

if name == 'main':

# 登录微信(热登录模式)
itchat.auto_login(
    hotReload=True,
    loginCallback=login_callback,
    exitCallback=exit_callback,
    statusNotify=True
)

# 启动定时任务线程
threading.Thread(target=schedule_task, daemon=True).start()

# 保持运行
itchat.run()

sqlite3
from datetime import datetime

class MessageLogger:
def init(self):
self.conn = sqlite3.connect('wechat_msg.db')
self.create_table()

def create_table(self):
    cursor = self.conn.cursor()
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS messages (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            sender TEXT NOT NULL,
            content TEXT,
            msg_type TEXT,
            create_time DATETIME DEFAULT CURRENT_TIMESTAMP
        )
    ''')
    self.conn.commit()

def log_message(self, sender, content, msg_type):
    cursor = self.conn.cursor()
    cursor.execute('''
        INSERT INTO messages (sender, content, msg_type)
        VALUES (?, ?, ?)
    ''', (sender, content, msg_type))
    self.conn.commit()

def get_message_count(self, sender=None):
    cursor = self.conn.cursor()
    if sender:
        cursor.execute('SELECT COUNT(*) FROM messages WHERE sender=?', (sender,))
    else:
        cursor.execute('SELECT COUNT(*) FROM messages')
    return cursor.fetchone()[0]

class AutoReplyManager:
def init(self):
self.rules = {}
self.load_rules()

def add_rule(self, keyword, replies):
    self.rules[keyword] = replies
    self.save_rules()

def remove_rule(self, keyword):
    if keyword in self.rules:
        del self.rules[keyword]
        self.save_rules()

def load_rules(self):
    # 从文件或数据库加载规则
    self.rules = REPLY_RULES  # 示例中使用内存规则

def save_rules(self):
    # 保存规则到文件或数据库
    pass

class FriendManager:
@staticmethod
def get_friends():
return itchat.get_friends(update=True)

@staticmethod
def search_friend(name):
    return itchat.search_friends(name=name)

@staticmethod
def send_to_friend(name, content):
    friend = itchat.search_friends(name=name)
    if friend:
        itchat.send(content, toUserName=friend[0]['UserName'])
        return True
    return False

微信机器人配置
CONFIG = {
"auto_reply": {
"enable": True,
"reply_delay": 1.5, # 回复延迟(秒)
"night_mode": {
"enable": True,
"start_time": "23:00",
"end_time": "08:00",
"reply_msg": "夜间模式自动回复:我已休息,明天回复您"
}
},
"tuling": {
"api_key": "your_api_key_here",
"timeout": 10
},
"database": {
"path": "wechat_data.db",
"backup_interval": 86400 # 每天备份一次
}
}

关键词回复规则

KEYWORD_REPLIES = {
"你好": ["你好!", "Hi~", "您好"],
"帮助": ["输入以下关键词获取帮助:\n1. 天气\n2. 新闻\n3. 笑话"],
"时间": lambda: f"当前时间:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"
}

相关文章
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
847 0
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
859 1
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
871 0
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
567 0
|
机器学习/深度学习 编解码 算法
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
852 4
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
1316 4
|
算法 机器人 定位技术
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
656 4
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
533 3
|
机器人 iOS开发 索引
“企业微信iPad协议”凌晨 2:24:一句自动回复把投诉率从 8% 拉到 0.3%
凌晨1:05,客服告急:发错货、优惠券失效、机器人失灵。问题源于关键词严格匹配机制。我调用企业微信iPad协议的模糊搜索接口,用40行Python实现语义向量匹配,支持错别字与口语化提问。热更新后,响应仅420ms,投诉率降至0.3%,人工接入降62%。一夜改写服务体验,KPI稳了。
617 0
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
504 0

推荐镜像

更多