Python使用wxpy模块实现微信两两群组消息同步
python使用wxpy模块提供的微信API接口实现两两群组的消息同步
安装模块: pip install wxpy
注意:需要同步的微信群需要保存到通讯录中
以下是自己闲来无事写的代码,暂时还存在以下几个问题,有能优化的大佬可以讨论下:
1.暂时同步不了大文件,测试发现超过40M的文件无法同步;
2.频发发送消息时可能导致有的消息丢失;
3.项目不稳定,有时会掉线,脚本需要重启后重新登录微信
直接上代码
import time
from wxpy import * # 用同步的微信群,为双重列表,最里层列表为要同步的微信群,可以有多个
need_group = [['客户1群', '技术1群'],
['客户2群', '技术2群'],
['客户3群', '技术3群'],
] # 需要屏蔽的人
except_list = ["张三", "李四"] # 保存搜索结果的对象双重列表
group_obj_list = [[] for _ in range(len(need_group))] # 初始化机器人,电脑弹出二维码,用手机微信扫码登陆
bot = Bot() # 微信登陆后,更新微信群列表(包括未保存到通讯录的群)
bot.groups(update=True, contact_only=False) # 往微信助手发消息
bot.file_helper.send('wechat bot login success.') # 查找群
try:
for i in range(len(need_group)):
# 注意: 暂时发现需要搜索的群需要保存到通讯录中
my_groups_Q1 = bot.groups().search(need_group[i][0])[0]
my_groups_Q2 = bot.groups().search(need_group[i][1])[0] # 更新群消息
my_groups_Q1.update_group(members_details=True)
my_groups_Q2.update_group(members_details=True) group_obj_list[i].append(my_groups_Q1)
group_obj_list[i].append(my_groups_Q2) except:
pass def send_message(msg, group_list):
try:
# 屏蔽某人
if msg.member.name not in except_list:
# 使用API提供的函数同步消息
sync_message_in_groups(msg, group_list, prefix="")
except:
pass # 暂时发现绑定监听事件是阻塞事件,需要一个一个帮忙,用循环绑定的话只能绑定第一个 # 同步1群
@bot.register(group_obj_list[0], except_self=False)
def sync_my_groups_00(msg): send_message(msg, group_obj_list[0]) # 同步2群
@bot.register(group_obj_list[1], except_self=False)
def sync_my_groups_01(msg): send_message(msg, group_obj_list[1]) # 同步3群
@bot.register(group_obj_list[2], except_self=False)
def sync_my_groups_02(msg): send_message(msg, group_obj_list[2]) # 每过30min往微信助手发送消息,不发则说明程序崩溃
while True:
DATE = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
bot.file_helper.send('程序运行中', DATE)
time.sleep(1800)
embed()
# 堵塞线程,让机器人保持运行
bot.join() 同步微信群时默认的前缀为表情加微信名,如果想去掉的话,点击进入sync_message_in_groups函数修改下源码,如下图
Python使用wxpy模块实现微信两两群组消息同步的更多相关文章
- python 使用wxpy实现获取微信好友列表 头像 群成员
最近在学习 python 突然想要试试能不能把微信里面的微信群和好友取出来 结果百度了一下 找到了 wxpy 这怎么能不试一下呢 用到 wxpy.threading.os.time 四个库 第一步 判 ...
- 使用wxpy模块了解微信好友
网上看了一篇python文章,内容简单有趣,正好可以练习一下.原文连接:http://mp.weixin.qq.com/s/oI2pH8uvq4kwYqc4kLMjuA 一.环境:Windows+py ...
- [LeetCode] Couples Holding Hands 两两握手
N couples sit in 2N seats arranged in a row and want to hold hands. We want to know the minimum numb ...
- python模块的导入的两种方式区别详解
Python 有两种导入模块的方法.两种都有用,你应该知道什么时候使用哪一种方法.一种方法,import module,另一种是from module import,下面是 from module i ...
- 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(上)
一.本程序的起源 当我决定去中科院实习的时候,我给刘奎恩老师发了封邮件.我对此事是非常看重的,因此经常使用浏览器,打开gmail去查看刘老师有没有给我回复.因为gmail的新邮件推送的功能仅限于打开浏 ...
- 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(下)
一.我的需求 我希望做成具有以下功能的软件:1. 间隔一段时间登录我的邮箱查看是否有未读邮件 如果不断的运行查看是否有新邮件确实没多大必要. 另外如果这个客户端登录我的邮箱,那么我可能就不能用浏览器登 ...
- 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(中)
这篇博客,主要讲解用Python实现邮箱服务的几个需要学习的模块:E-mail Compotion and Decoding(邮件生成和解析).SMTP.POP.IMAP 如上篇博客所讲,我学习过程参 ...
- iOS不得姐项目--推荐关注模块(一个控制器控制两个tableView),数据重复请求的问题,分页数据的加载,上拉下拉刷新(MJRefresh)
一.推荐关注模块(一个控制器控制两个tableView) -- 数据的显示 刚开始加载数据值得注意的有以下几点 导航控制器会自动调整scrollView的contentInset,最好是取消系统的设置 ...
- 利用python实现两个文件夹的同步
其实无论windows还是Linux,简单地去实现两个两个文件夹的同步只需系统自带的复制命令加参数就可以了. WINDOWS : xcopy 源文件夹\* 目标文件夹 /s /e /y Linux : ...
随机推荐
- 团队作业-Beta冲刺 (第一天)
这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 团队名称 RTD <团队博客链接> 这个作业的目标 剩余任务预估,分配任务(开发,测试 ...
- BZOJ1018线段树
1018: [SHOI2008]堵塞的交通traffic Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 3489 Solved: 1168[Submi ...
- .Net基础之1——学前入门
1..Net平台 2.C#编程语言 3..Net都能做什么 Winform桌面应用程序.Internet应用程序——ASP.Net(京东.淘宝.携程网)(主推). WP8手机开发.Unity 3D游戏 ...
- 杨辉三角(hdu2032)——有待完善
思考:杨辉三角形 #include<stdio.h> #include<cstring> int main() { int n; char d; ][] = {}; while ...
- Pyqt5_QComboBox
QComboBox 是一个集按钮和下拉选项于一体的控件,也称做下拉列表框 方法 addItem() 添加一个下拉选项 addItems() 从列表中添加下拉选项 Clear() 删除下拉选项集合中的所 ...
- 【半译】扩展shutdown超时设置以保证IHostedService正常关闭
我最近发现一个问题,当应用程序关闭时,我们的应用程序没有正确执行在IHostedService中的StopAsync方法.经过反复验证发现,这是由于某些服务对关闭信号做出响应所需的时间太长导致的.在这 ...
- 12.Java连接Redis_Jedis_常用API
上一篇总结我们使用我们本地的Eclipse中创建的jedis工程,链接到了我们处于VMware虚拟机上的Linux系统上的Redis服务,我们接下来讲一下jedis的一些常用的API. (1)jedi ...
- 【QT】QT资料集锦
欢迎来到我的博客! 以下链接均是日常学习,偶然得之,并加以收集整理,感兴趣的朋友可以多多访问和学习.如果以下内容对你有所帮助,不妨转载和分享.(Update on 30,November,2019) ...
- hashMap探析
本篇文章包括: 数据结构 各个参数 为什么数组的长度是2的整数次方 为什么要将装载因子定义为0.75 为什么链表转红黑树的阈值为8 hash碰撞 put方法 resize方法 jdk7中数组扩容产生环 ...
- Rocket - tilelink - first
https://mp.weixin.qq.com/s/0nzkV4K1osNEQzrtITYxmw 介绍Edges中first/last/done的实现. 1. firstlastH ...