【除夕烂活新整】梅开二度

温馨提示:祝福千万条,真诚第一条,群发不规范,好友小黑屋(群发虽好,可不要贪用哦)

虽然去年整过一次活,并且觉得不应该再来了,但是为了提高新年钟声准点给多人发定制祝福的速度,还是选择继续使用这个方法(规范、优雅且有效hhhh)

1.效果展示

整体上实现流程如下图(不方便录屏做gif了)

图片1↑

2.改动说明

  • 定位取消了现成文本框的定位,因为不需要了

  • 直接建立excel表格(xlsx)存储祝福语和联系人相关信息

  • 利用pandas读取表格信息,再结合pyperclip复制到剪切板,pyautogui发送出去

  • 采用locate.py用于定位,new_group_send.py用于发送消息

3.locate代码说明

核心是创建一个info.txt文件,每隔5秒就读取一个位置(自己运行代码时需要把鼠标移动到你对应的地方),存储位置到info.txt中。

from pyautogui import *
from time import *


# 创建一个文件,用于存储搜索栏和消息栏定位位置,一共8行,一个位置对应2行,分别为x,y
f = open('./info.txt','w')


#要存储的位置文本
strr = ''


#终端信息提示
list = ['wx消息栏','wx搜索栏','qq消息栏','qq搜索栏']


def sleep_remind(i):
    print('请将鼠标移动到%s位置,5秒后系统进行记录' %(list[i-1]))
    for i in range(5):
        print(5-i)
        '''表示要休眠多少秒'''
        sleep(1)




'''第一行,获取消息栏位置'''
sleep_remind(1)
x,y = position()
strr +=(str(x)+'\n'+str(y)+'\n')

'''第二行,获取搜索栏位置'''
sleep_remind(2)
x,y = position()
strr +=(str(x)+'\n'+str(y)+'\n')

'''第四行,获取qq消息栏的位置,记得把鼠标放在中间偏右,因为打开多个消息栏的位置会变'''
sleep_remind(3)
x,y = position()
strr +=(str(x)+'\n'+str(y)+'\n')

'''第五行,获取qq搜索栏的位置'''
sleep_remind(4)
x,y = position()
strr +=(str(x)+'\n'+str(y)+'\n')

f.write(strr)

4.send代码说明

4.1.重点说明文本复制方法

直接下面模板,先读取出整体data,再使用iloc+py特有分割获取独立数据,pyperclip将单独数据copy,关于具体的行数与execl对应位置见4.2.说明

#读取整个data
whole_text = pd.read_excel(".\\example.xlsx",engine="openpyxl")
​
#假如需要data的第一列,前三行,这样做
one,two,three = whole_text.iloc[0:3,0]
​
#再用pyperclip去直接copy就行
pyperclip.copy(one)

4.2.其他补充

在send之前,需要准备两个文件

  1. 一个是“tk_list.xlsx”,用于存放好友的call(最先说这个是因为这个代表对这位好友的特殊祝福语)、name备注首拼,比如张三,就是zs,这样可以让微信qq准确定位)、feel(和这位好友的关系程度,我自己设计了从1-3,根据不同程度来给不同级别的通用祝福语

  2. 另一个是"text_form.xlsx",用于存放通用祝福语,别看图里这么复杂,文本内容就只有3行,放在第1列(pandas里面是第0列的0-2行,注意看表格有表头

  3. 由于群聊过于简单,直接把上图红色部分复制完就可以发了,我这里简单举例说一下针对个人的发送:先把call(特殊祝福语)写入消息栏,(如“我亲爱的张三,祝你”),再看feel是1-3哪个程度,如果是1,那就把祝福语的第一行继续写入消息栏(“在这充满希望的龙年...”)。

最后给一个new_send_group.py的内容

from pyautogui import *
import pyperclip
import  pyperclip
import pandas as pd
​
​
# 基本数据,把之前存的位置读取出来
locate_ = []
with open("./info.txt","r") as locate_info:
    for line in locate_info.readlines():
        line = line.strip()
        locate_.append(int(line))
​
# 读取联系人相关信息
thank_list = pd.read_excel(".\\tk_list.xlsx",engine="openpyxl")
print(thank_list.iloc[0,0:3])
​
# 读取通用祝福语内容
thank_text = pd.read_excel(".\\text_form.xlsx",engine="openpyxl")
one,two,three = thank_text.iloc[0:3,0]
​
​
wxhy = 35   #表示已选择的微信好友,下面类同,用的拼音缩写
wxql = 8
qqhy = 1
qqql = 3
​
​
def wish(st, ed, search_x, search_y, info_x, info_y, type_):
​
    #search x,y指的是搜索框
    #info x,y是发消息的框,传参时给定就行
    if type_ == 0:
        #意思是单个的好友
        for i in range(st, ed):
            '''0,1 消息  2,3搜索  4,5qq消息栏   6,7qq搜索栏'''
            
            '''先搜索,移动到搜索栏,点击'''
            moveTo(locate_[search_x],locate_[search_y])
            mouseDown()
            mouseUp()
​
​
            '''分割出name/feel/call三个内容'''
            tmp_name,tmp_feel,tmp_call= thank_list.iloc[i,0:3]
            #在搜索框输入姓名简拼
            typewrite(message = tmp_name)
            sleep(0.5)
            press("enter")
            
            #直接输入特殊祝福语
            pyperclip.copy(tmp_call)
​
            '''到达对话框发送'''
            moveTo(locate_[info_x],locate_[info_y])
            mouseDown()
            mouseUp()
            hotkey('ctrl','v')
​
​
            # 根据关系程度输入通用祝福语,这个因人而异
            if tmp_feel <= 2:
                pyperclip.copy(one)
            else:
                pyperclip.copy(two)
​
            #直接粘贴,发送
            hotkey('ctrl','v')
            press("enter")     
​
    else:
        #否则就是群聊
        for i in range(st, ed):
            '''0,1 消息  2,3搜索  4,5qq消息栏   6,7qq搜索栏'''
            '''先搜索'''
            moveTo(locate_[search_x],locate_[search_y])
            mouseDown()
            mouseUp()
​
            #同前,这里只需要群聊名称简拼
            tmp_name,tmp_feel,tmp_call= thank_list.iloc[i,0:3]
​
            typewrite(message = tmp_name)
            sleep(0.5)
            press("enter")
            
            #输入通用祝福语
            pyperclip.copy(three)
​
            '''到达对话框发送'''
            moveTo(locate_[info_x],locate_[info_y])
            mouseDown()
            mouseUp()
            hotkey('ctrl','v')
            press("enter")    
​
    
    
​
wish(0,wxhy,2,3,0,1,0)
wish(wxhy,wxql+wxhy,2,3,0,1,1)
wish(wxql+wxhy,qqhy+wxhy+wxql,6,7,4,5,0)
wish(qqhy+wxhy+wxql,qqhy+wxhy+wxql+qqql,6,7,4,5,1)

今年春晚唠嗑群好玩~但是也困得要死

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

robinbird_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值