微信机器人自动回复插件,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')}"
}

相关文章
|
11月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
774 0
|
11月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
800 1
|
11月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
825 0
|
11月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
492 0
|
域名解析 人工智能 机器人
AppFlow:企业微信支持流式群聊机器人
企业微信近日更新,新增群聊机器人功能,支持与自定义大模型对话。通过@机器人,可实现流式输出,提升交互效率。只需简单配置,即可将AI能力集成至群聊,完成即时消息解析与业务联动。
3626 1
AppFlow:企业微信支持流式群聊机器人
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
331 1
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
472 0
|
测试技术 索引 Python
Python接口自动化测试框架(练习篇)-- 数据类型及控制流程(一)
本文提供了Python接口自动化测试中的编程练习,包括计算器、猜数字、猜拳和九九乘法表等经典问题,涵盖了数据类型、运算、循环、条件控制等基础知识的综合应用。
466 1
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
1465 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路

推荐镜像

更多