微信抢红包脚本安卓插件,微信xposed抢红包模块, magisk微信抢红包模块

简介: 这个代码实现了一个完整的微信抢红包自动化工具,包含红包检测、自动点击、日志记录等功能

下载地址:https://www.pan38.com/dow/share.php?code=JCnzE 提取密码:4960

这个代码实现了一个完整的微信抢红包自动化工具,包含红包检测、自动点击、日志记录等功能。使用时需要安装uiautomator2库并连接Android设备。

import time
import random
import uiautomator2 as u2
from PIL import Image
import numpy as np
import cv2
import os
import logging
from datetime import datetime

class WeChatRedPacket:
def init(self, device_id=None):
self.logger = self.setup_logger()
self.device = u2.connect(device_id) if device_id else u2.connect()
self.screen_width, self.screen_height = self.device.window_size()
self.red_packet_count = 0
self.success_count = 0
self.fail_count = 0

def setup_logger(self):
    logger = logging.getLogger('WeChatRedPacket')
    logger.setLevel(logging.INFO)

    if not os.path.exists('logs'):
        os.makedirs('logs')

    fh = logging.FileHandler(f'logs/red_packet_{datetime.now().strftime("%Y%m%d")}.log')
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    fh.setFormatter(formatter)
    logger.addHandler(fh)

    return logger

def check_red_packet(self):
    """检测屏幕上是否有红包"""
    screenshot = self.device.screenshot(format='raw')
    img = Image.frombytes('RGB', (self.screen_width, self.screen_height), screenshot)
    img_np = np.array(img)

    # 红包特征颜色范围
    lower_red = np.array([200, 50, 50])
    upper_red = np.array([255, 100, 100])

    mask = cv2.inRange(img_np, lower_red, upper_red)
    contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

    red_packet_positions = []
    for cnt in contours:
        x, y, w, h = cv2.boundingRect(cnt)
        if 50 < w < 150 and 50 < h < 150:  # 红包大致尺寸范围
            center_x = x + w // 2
            center_y = y + h // 2
            red_packet_positions.append((center_x, center_y))

    return red_packet_positions

def open_red_packet(self, position):
    """尝试打开红包"""
    x, y = position
    self.device.click(x, y)
    time.sleep(random.uniform(0.5, 1.5))

    # 检查是否成功打开红包详情页
    if self.is_detail_page():
        self.logger.info(f"成功点击红包位置: ({x}, {y})")
        self.click_open_button()
        return True
    return False

def is_detail_page(self):
    """检查是否在红包详情页"""
    screenshot = self.device.screenshot(format='raw')
    img = Image.frombytes('RGB', (self.screen_width, self.screen_height), screenshot)
    img_np = np.array(img)

    # 检查开字按钮
    lower_button = np.array([250, 200, 50])
    upper_button = np.array([255, 220, 100])
    mask = cv2.inRange(img_np, lower_button, upper_button)
    return np.sum(mask) > 1000

def click_open_button(self):
    """点击开字按钮"""
    # 开字按钮通常位于屏幕下方1/3处
    button_x = self.screen_width // 2
    button_y = self.screen_height * 2 // 3
    self.device.click(button_x, button_y)
    time.sleep(random.uniform(1, 2))

    # 返回聊天界面
    self.device.press('back')
    time.sleep(0.5)
    self.device.press('back')
    time.sleep(0.5)

def monitor(self):
    """主监控循环"""
    self.logger.info("开始监控微信红包...")
    try:
        while True:
            red_packets = self.check_red_packet()
            if red_packets:
                self.red_packet_count += len(red_packets)
                self.logger.info(f"检测到 {len(red_packets)} 个红包")

                for pos in red_packets:
                    if self.open_red_packet(pos):
                        self.success_count += 1
                    else:
                        self.fail_count += 1

                time.sleep(3)  # 防止连续点击
            else:
                time.sleep(1)

            # 每5分钟打印一次统计信息
            if time.time() % 300 < 1:
                self.logger.info(
                    f"统计: 检测到 {self.red_packet_count} 个红包, "
                    f"成功 {self.success_count} 个, 失败 {self.fail_count} 个"
                )

    except KeyboardInterrupt:
        self.logger.info("用户中断监控")
    except Exception as e:
        self.logger.error(f"发生错误: {str(e)}")
    finally:
        self.logger.info(
            f"最终统计: 检测到 {self.red_packet_count} 个红包, "
            f"成功 {self.success_count} 个, 失败 {self.fail_count} 个"
        )

if name == 'main':
bot = WeChatRedPacket()
bot.monitor()

相关文章
|
1月前
|
算法 Java API
用录像代替视频聊天,虚拟视频聊天软件微信QQ, 微信第三方插件虚拟视频插件
核心视频处理模块使用JavaCV实现视频捕获、特效处理和虚拟设备输出 Xposed模块通过Hook微信摄像头相关方法实现视频流替换
|
27天前
|
Shell Android开发 Python
微信多开脚本,微信双开器脚本插件,autojs开源代码分享
AutoJS脚本实现安卓端微信多开,通过无障碍服务 Python脚本提供跨平台解决方案,自动检测微信安装路径
|
1月前
|
机器学习/深度学习 Android开发 数据安全/隐私保护
手机脚本录制器, 脚本录制器安卓,识图识色屏幕点击器【autojs】
完整的UI界面,包含录制控制按钮和状态显示 屏幕点击动作录制功能,记录点击坐标和时间间隔
|
2月前
|
调度 Android开发 数据安全/隐私保护
微信养号是什么意思?有脚本吗
Python实现微信养号自动化操作指南 作者前言
|
2月前
|
机器学习/深度学习 JSON 运维
微信抢红包脚本会封号吗?
微信抢红包脚本通常通过以下几种技术方式实现:
|
2月前
|
监控 数据库 数据安全/隐私保护
微信自动抢红包永久免费软件, 自动抢红包软件微信,脚本插件抢红包【python】
该实现包含三个核心模块:主监控程序、数据库记录模块和配置模块。主程序使用itchat监听微信消息
|
2月前
|
消息中间件 人工智能 机器人
vx自动回复机器人,ai自动回复机器人,微信自动回复脚本插件
这个微信自动回复机器人包含主程序、配置管理、工具函数和单元测试模块。主程序使用itchat库实现微信登录和消息处理
|
2月前
|
机器人 数据安全/隐私保护
微信群聊机器人插件,微信机器人聊天工具,微信群自动聊天脚本
代码说明:这个微信机器人系统包含主程序、群管理模块和多个插件。主程序基于itchat库实现微信登录和消息处理
|
2月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
145 11

热门文章

最新文章