python实现微信自动回复及批量添加好友功能

yipeiwu_com5年前Python基础

先给大家介绍下python微信自动回复功能

1.当收到好友消息时,自动回复

import random
import itchat
import requests
import time
def get_tuling_response(_info):
  print(_info)
  # 图灵机器人的网址
  api_url = "http://www.tuling123.com/openapi/api"
  data = {
    'key': '5ea0f11b5b6146239c52a47849387484',
    'info': _info,
    'userid':'wechat-robot'
  }
  # 发送数据到指定网址,获取网址返回的数据(字典数据类型)
  res = requests.post(api_url, data).json()
  # print(res, type(res))
  # 给用户返回的内容
  print(res['text'])
  return res['text']
# 时刻监控好友发送的文本消息, 并且给予一个回复,
# isGroupChat=True接收群聊消息中的文本信息, 并让图灵机器人自动回复;
# isMapChat=True接收群聊消息中的文本信息, 并让图灵机器人自动回复;
@itchat.msg_register(itchat.content.TEXT, isFriendChat=True)
def text_reply(msg):
  # 需求: 只对固定的群聊消息, 实现机器人聊天.
  # 获取好友发送消息的内容

ps:下面介绍下python 批量生成微信添加好友截图

# -*- coding: utf-8 -*-
import time,random,os
import PIL.Image as Image
import PIL.ImageColor as ImageColor
import PIL.ImageDraw as ImageDraw
import PIL.ImageFont as ImageFont
# from PIL import Image, ImageDraw
"""
  author@:xiaohe
  QQ496631085
  python3.7
"""
def circle_corner(img, radii):
  """
  圆角处理
  :param img: 源图象。
  :param radii: 半径,如:30。
  :return: 返回一个圆角处理后的图象。
  """
  # 画圆(用于分离4个角)
  circle = Image.new('L', (radii * 2, radii * 2), 0) # 创建一个黑色背景的画布
  draw = ImageDraw.Draw(circle)
  draw.ellipse((0, 0, radii * 2, radii * 2), fill=255) # 画白色圆形
  # 原图
  img = img.convert("RGBA")
  w, h = img.size
  # 画4个角(将整圆分离为4个部分)
  alpha = Image.new('L', img.size, 255)
  alpha.paste(circle.crop((0, 0, radii, radii)), (0, 0)) # 左上角
  alpha.paste(circle.crop((radii, 0, radii * 2, radii)), (w - radii, 0)) # 右上角
  alpha.paste(circle.crop((radii, radii, radii * 2, radii * 2)), (w - radii, h - radii)) # 右下角
  alpha.paste(circle.crop((0, radii, radii, radii * 2)), (0, h - radii)) # 左下角
  # alpha.show()
  img.putalpha(alpha) # 白色区域透明可见,黑色区域不可见
  return img
#对象,位置  字体 字体大小  字体颜色   添加内容
def imgAddFont(im1,gps,font,fontSize,fontColor,data):
  # 在图片上添加文字 1
  draw = ImageDraw.Draw(im1)
  #设置字体
  time_font = ImageFont.truetype(font, fontSize)
  # (0,0):坐标 "内容":添加的字体 (0,0,255):字体颜色 font:字体大小
  draw.text(gps,data,fontColor,font=time_font)
  draw = ImageDraw.Draw(im1)
def copy(h,m,z,n,v):
  #手机当前时间 系统时间
  systime = str(h) + ":"+str(m)
  #小时随便减去多少
  add_h=random.randint(2,5)
  #分钟随便减去多少
  add_m=random.randint(2,7)
  #添加好友的时间
  addtime = str(h-add_h) + ":"+str(m-add_m)
  #标题名称
  # qun_name = "电销 " + n
  qun_name = n
  #电池电量
  diannum = str(v)
  #打开图片 
  im1=Image.open("new.png")
  #系统时间 (宽 高)
  imgAddFont(im1,(17,20),'C:\Windows\Fonts\msyh.ttc',38,(50,50,50),systime)
  #电池电量
  imgAddFont(im1,(1012,21),'C:\Windows\Fonts\simhei.ttf',29,(50,50,50),diannum)
  #群姓名
  imgAddFont(im1,(120,108),'C:\Windows\Fonts\msyh.ttc',49,(50,50,50),qun_name)
  #添加时间
  imgAddFont(im1,(490,260),'C:\Windows\Fonts\msyh.ttc',38,(170,170,170),addtime)
  # #发消息时间
  # imgAddFont(im1,(490,260),'C:\Windows\Fonts\msyh.ttc',38,(170,170,170),addtime)
  # 保存位置 22 370
  # img=im1
  # 已经添加好完整的文字了,下面添加图片 打开 缩略  圆角 合并
  # 打开头像原图检测是否存在不存在就换个后缀
  jpg_path = '.\\img\\' + (str(z))
  if os.path.exists(jpg_path+".jpg"):
    img = Image.open(jpg_path+".jpg")
  else:
    img = Image.open(jpg_path+".png")
  img = circle_corner(img, radii=20)
  #缩放等比例的尺寸
  w, h = img.size
  img.thumbnail((118, 118)) # 尺寸等比缩放
  # 打开底图
  layer = Image.new('RGBA', im1.size, (0,0,0,0))
  layer.paste(img, (20, 370))
  out=Image.composite(layer,im1,layer)
  # out.save("target.png")
  save_time=time.strftime('%Y_%m_%d_%M_%H',time.localtime(time.time()))
  out.save(save_time +str(z)+".png")
  # out.save("target.png")
h=int(input("请输入手机几点"))
m=int(input("请输入现在几分"))
v=int(input("请输入现在电量"))
z=int(input("请输入需要生成多少张图片"))
for x in range(1,z+1):
  n=input("请输入标题昵称 例如好友")
  copy(h,m,x,n,v)

总结

以上所述是小编给大家介绍的python实现微信自动回复及批量添加好友功能 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

用Python登录Gmail并发送Gmail邮件的教程

 这篇快文介绍了使用Gmail作为您的e-mail服务器,通过Python的内置SMTP库发送电子邮件。它并不复杂,我保证。 下面是如何在Python中登录GMail: &nb...

pytorch自定义初始化权重的方法

在常见的pytorch代码中,我们见到的初始化方式都是调用init类对每层所有参数进行初始化。但是,有时我们有些特殊需求,比如用某一层的权重取优化其它层,或者手动指定某些权重的初始值。...

django框架使用方法详解

django框架使用方法详解

我的文章的意义 服务端开发,python,django这些内容上面的链接中有详细的阐述. 我写的内容肯定没有上面的完备,准确. 我的文章的价值在于从一个iOS程序员的角度来理解服务端开...

解决pyttsx3无法封装的问题

解决pyttsx3无法封装的问题

一、python3下面的pyttsx3正常可以使用,类似下面: import pyttsx3 engine = pyttsx3.init() rate = engine.getPro...

在Python中关于中文编码问题的处理建议

字符串是Python中最常用的数据类型,而且很多时候你会用到一些不属于标准ASCII字符集的字符,这时候代码就很可能抛出UnicodeDecodeError: 'ascii' codec...