1.运行环境

python 3+ 下载地址

需要安装itchat

pip install itchat

2.功能设计

查看群id

查看指定id群的好友

向指定群中所有自己的好友发送信息

3.使用方法

把代码复制粘贴,保存为 wxhelper.py

在当前文件目录打开cmd指令窗口输入(windows系统)

python wxhelper.py

扫码登陆

手机端向文件助手发送以下指令

群好友助手指令:

1.[SendMode]:查看群id

2.[SendMode id]:查看指定id群的好友人数

3.[SendMode 参数0(群id) text 参数a(标题) 参数b(内容)]

4.[update] or 4:更新数据

5.[help]:帮助信息\n【注意:参数间只能有一个空格】

预览效果

4.完整代码

#coding:utf-8

import itchat

import time

from itchat.content import TEXT

itchat.auto_login(hotReload=True)

dict={}

#返回最新的新字典数据

def updateRooms():

rooms=itchat.get_chatrooms(update=True)[0:]

my_rdict={}

for i,room in zip(range(0,len(rooms)),rooms[0:]):

my_rdict[i]={'roomname':room['UserName'],'nickname':room['NickName']}

if my_rdict[i]['nickname']=='':

my_rdict[i]['nickname']=('群聊(%d)'%i)

return my_rdict

#获取指定群聊的好友成员信息

def get_friendsInfo_in_room(chatRoomName,memberlist):

friendInRoom='%s(%d人)\n'%(chatRoomName,len(memberlist['MemberList']))

count=0

for user in memberlist['MemberList']:

if (user['ContactFlag']!=0):

count+=1

print("nickname:%s DisplayName:%s"%(user['NickName'],user['DisplayName']))

friendInRoom+="[好友%d]nickname:%s DisplayName:%s 备注:%s\n\n"%(count,user['NickName'],user['DisplayName'],user['RemarkName'])

friendInRoom+='该群共有%d好友'%(count)

return friendInRoom

#获取好友信息

def get_friendsInfo(memberlist):

for user in memberlist['MemberList']:

print("nickname:%s DisplayName:%s"%(user['NickName'],user['DisplayName']))

friendInRoom+="[好友%d]nickname:%s DisplayName:%s 备注:%s\n\n"%(count,user['NickName'],user['DisplayName'],user['RemarkName'])

friendInRoom+='该群共有%d好友'%(len(memberlist))

#向特定的群好友发定制的信息

def send_msg_to_room_friends(title,message,toFriendsList):

sendmsg=title+':\n'+message+'\n'+time.asctime(time.localtime(time.time()))

print(sendmsg)

for user in toFriendsList['MemberList']:

if (user['ContactFlag']!=0):

print("sendto=nickname:%s DisplayName:%s"%(user['NickName'],user['DisplayName' ]))

itchat.send(sendmsg,toUserName=user['UserName'])

#处理无参数指令

def cmd_single_deal(cmd):

print(cmd)

global dict

if(cmd=='update' or cmd=='4'):

dict.clear()

dict=updateRooms()

return "update %d datas finish"%len(dict)

if(cmd=='SendMode' or cmd=='1'):

rooms_info='查看群聊id:\n'

for i in range(0,len(dict)):

rooms_info+=str(i)+': '+dict[i]['nickname']+'\n'

return rooms_info

if(cmd=='help' or cmd=='5'):

usage='''群好友助手指令:

1.[SendMode] or 1:查看群id

2.[SendMode id]:查看指定id群的好友人数

3.[SendMode 参数0(群id) text 参数a(标题) 参数b(内容)]

4.[update] or 4:更新数据

5.[help] or 5:帮助信息

[注意:参数间只能有一个空格]'''

return usage

return '无效指令!'

#含参数指令处理

def cmd_with_args_deal(command):

id=int(command[1])

room_member=itchat.update_chatroom(dict[id]['roomname'],detailedMember=True)

if((command[0]=='SendMode') and len(command)==2):

print(dict[id]['nickname']+'#############')

friendsInRoomInfo=get_friendsInfo_in_room(dict[id]['nickname'],room_member)

itchat.send(friendsInRoomInfo,toUserName='filehelper')

if((command[0]=='SendMode' or command[0]=='1' ) and len(command)==5):

if(command[2]=='text'):#2:gid 3:title 4:msg

send_msg_to_room_friends(command[3],command[4],room_member)

#微信响应函数

@itchat.msg_register([TEXT])

def handel_recive(msg):

global dict

if(msg['ToUserName']=='filehelper'):

command=msg['Content'].split(' ')

command_len=len(command)

dict=updateRooms()

rooms_sum=len(dict)

if(command_len==1):

info=cmd_single_deal(command[0])

itchat.send(info,toUserName='filehelper')

elif(command_len>1 and command[1].isnumeric()):

if(int(command[1])

cmd_with_args_deal(command)

else:

itchat.send("无效参数",toUserName='filehelper')

print("send finish!")

itchat.send("群好友助手已启动,help指令查看详细说明!",toUserName='filehelper')

itchat.run()

5项目地址:链接

python itchat判断加入新新好友_python itchat 群好友助手相关推荐

  1. python如何判断列表是否为空_python简单判断序列是否为空的方法

    python简单判断序列是否为空的方法 本文实例讲述了python简单判断序列是否为空的方法.分享给大家供大家参考.具体如下: 假设有如下序列: m1 = [] m2 = () m3 = {} 判断他 ...

  2. python怎样判断一个文件是否存在_python如何判断一个文件是否存在

    python如何判断一个文件是否存在 发布时间:2020-09-23 11:38:42 来源:亿速云 阅读:82 作者:Leah python如何判断一个文件是否存在?针对这个问题,这篇文章详细介绍了 ...

  3. python展示全部好友_python爬所有好友头像

    import itchat import os import PIL.Image as Image from os import listdir import math itchat.login() ...

  4. python怎么判断一个数是不是正整数_Python如何判断一个正整数是否是素数?

    素数(Prime Number),又称质数,一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数:否则,称为合数(Composite Number).1既不是素数,也不是合数. 如2. ...

  5. python 如何判断一个函数执行完成_Python核心编程的四大神兽迭代器、生成器 、闭包以及装饰器...

    本文将主要分为4大部分,分别介绍Python核心编程中的迭代器.生成器 .闭包以及装饰器. 生成器 生成器是生成一个值的特殊函数,它具有这样的特点:第一次执行该函数时,先从头按顺序执行,在碰到yiel ...

  6. python微信好友_python 获取微信好友列表的方法(微信web)

    如下所示: import urllib import urllib2 import os import time import re import cookielib import xml.dom.m ...

  7. python怎么判断日期是星期几_python数据统计告诉你,是不是周四周五会跌的比较多...

    昨天在论坛看到有网友的一个提问: 对于很多投资来说,印象中最近这几年,尤其是前面的2016~2018年,周四跌的概率是比较大的,有时候会被戏谑为"法定砸盘日". 好奇百度了一下: ...

  8. python如何判断一个数为小数_python判断是否是小数

    一.判断一个数是否为小数 1.有且仅有一个小数点 2.小数点的左边可能为正数或负数 3.小数点的右边为正数 二.实现代码def is_float(str): if str.count('.') == ...

  9. python set判断一个键是否存在_python redis 有序集合sorted set检查某个键是否存在

    redis有序集合(Sorted Set)命令ZADD ZREM ZCARD ZCOUNT ZSCORE ZINCRBY ZRANGE ZREVRANGE ZRANGEBYSCORE ZREVRANG ...

最新文章

  1. 自动驾驶与汽车安全电子技术
  2. flask 读取 csv
  3. 【转】svn的安装及与redmine的整合
  4. server如何调用 thrift_Thrift入门很简单
  5. GC回收垃圾对象过程
  6. α测试,Beta测试
  7. 中文分词第三方库_Python计算生态jieba库和random库的综合运用之爬山篇
  8. python访问多个网页_如何使用python请求登录具有多个页面的CAS?
  9. 零点起飞学php下载,零点起飞学PHP(附光盘)/零点起飞学编程
  10. 计算机科学基础word实验一,大学计算机基础综合实验实验报告 参考模板(1)
  11. 谷歌Chrome浏览器开发者工具教程—基础功能篇
  12. HTML5---2.语义化标签的兼容性问题以及解决方案
  13. phpqrcode 生成二维码
  14. 2018年的人工智能将如何发展?看看专家怎么说
  15. newifi3 高恪魔改_原地升值?newifi 3 路由器刷入高恪固件教程
  16. Kafka权威指南,Kafka消费者
  17. Postman下载与安装操作步骤(只有两步骤下载)
  18. 使用 Taurine “牛磺酸” 及 AltStore 越狱 iOS 11-14.3 教程
  19. Android 常用 RGB值以及中英文名称
  20. CMU 15-445/645-Note11-Distributed Databases

热门文章

  1. windows系统中环境系统变量和用户变量的区别
  2. 规范的版权Copyright说明怎么写?
  3. Leetcode 1022:从根到叶的二进制数之和(超详细的解法!!!)
  4. mysql授权、关联查询、主外键关系
  5. vscode中嵌入cppcheck进行静态检查,包含插件使用方法
  6. rancher2.x证书过期
  7. 03-04年度国家级精品课程一览
  8. Power OJ 2844: New contest【模拟】
  9. 嵌入式实时操作系统的基本概念
  10. css文件的创建和使用