Python3接收消息并转发到微信helper

Python3 实现消息转发到微信helper

使用Python3编写程序,实现从TCP套接字接收消息,并转发给微信helper。可以做一些监控类的辅助。

应用场景

处理来自测试端的消息。测试端将测试状态,如测试完成的进度百分比,测试结果等消息,发给本程序运行的HOST端,host端收到消息后转发给微信登陆的helper用户。

程序内容

import itchat, socket, time, optparse, threading

def getarguments():
    global OS_IP
    global OS_Port
    parser = optparse.OptionParser()
    parser.add_option('--host',dest='IP',type='string',help='host IP eg. --host 192.168.XX.XX')
    parser.add_option('--port',dest='PORT',type='int',help='host port eg. --port 54321')
    opts,args = parser.parse_args()
    OS_IP=opts.IP
    OS_Port=opts.PORT

def tcplink(sock, addr):
    print('Accept new connection from %s:%s...' % addr)
    while True:
        data = sock.recv(1024)
        time.sleep(1)
        if not data:
            break
        elif data.decode('utf-8').split("|")[0] == 'exit':
            exit()
        else:
            itchat.send("[%s]\nReceive msg from %s\n [Theme]: %s\n[Content]: %s" %(time.ctime(), addr[0], data.decode('utf-8').split("|")[0], data.decode("utf-8").split("|")[1]), toUserName="filehelper")
    sock.close()
    print('Connection from %s:%s closed.' % addr)

def main():
    global OS_IP, OS_Port
    getarguments()
    itchat.auto_login(enableCmdQR=True)
    Socket_R=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    Socket_R.bind((OS_IP, OS_Port))
    Socket_R.listen(5)
    while True:
        sock, addr = Socket_R.accept()
        t = threading.Thread(target=tcplink, args=(sock, addr))
        t.start()

if __name__ == "__main__":
    main()
  • getarguments设置运行时参数,设定host’s ip and port
  • tcplink设置套接字接收消息并转发给微信端
  • main写了微信登陆,其实就是调用itchat模块

推荐关注博主公众号,获取最新的文章?

服务器测试与运维

?转载请注明来源,版权归作者**@hualong1009**所有, 谢谢

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
实现这个功能,你需要用到wxpy这个Python包,它可以让你用Python代码控制微信,包括发送消息接收消息、查找好友和群聊等操作。 以下是一个基本的实现思路: 1. 安装wxpy包 你可以使用pip来安装wxpy包: ``` pip install -U wxpy ``` 2. 登录微信 使用wxpy包登录微信,可以使用手机扫描二维码登录: ```python from wxpy import * # 初始化机器人,扫码登陆 bot = Bot() ``` 3. 找到需要统计的微信群 使用机器人对象的groups()方法可以获取所有的微信群,然后根据群名称或群成员名称找到需要统计的微信群: ```python # 获取所有微信群 groups = bot.groups() # 找到需要统计的微信群 group = bot.groups().search('群名称')[0] ``` 4. 统计微信群中各个成员的消息信息 使用微信群对象的stats_text()方法可以获取微信群中各个成员的消息信息,包括发送的文字、图片、语音、视频等信息。你可以在群聊中使用“@机器人 明细”来获取每个成员的消息明细。 ```python # 获取微信群中各个成员的消息信息 stats_text = group.stats_text() # 打印微信群中各个成员的消息信息 print(stats_text) ``` 5. 把统计结果发送给自己 使用机器人对象的file_helper属性可以获取自己的微信账号,然后使用send()方法把统计结果发送给自己: ```python # 获取自己的微信账号 myself = bot.file_helper # 把统计结果发送给自己 myself.send(stats_text) ``` 完整的代码实现如下: ```python from wxpy import * # 初始化机器人,扫码登陆 bot = Bot() # 找到需要统计的微信群 group = bot.groups().search('群名称')[0] # 获取微信群中各个成员的消息信息 stats_text = group.stats_text() # 打印微信群中各个成员的消息信息 print(stats_text) # 把统计结果发送给自己 myself = bot.file_helper myself.send(stats_text) ``` 需要注意的是,如果微信群中有很多成员,统计结果可能比较长,可能需要等待一段时间才能获取完整的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

红糖妹

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

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

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

打赏作者

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

抵扣说明:

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

余额充值