微信wxid二维码生成器, 微转码工具wxid转二维码,wxid加好友工具分享

简介: 这个工具包含四个主要模块:核心转换模块、工具类模块、主程序入口和测试模块。核心模块使用qrcode库生成二维码

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

这个工具包含四个主要模块:核心转换模块、工具类模块、主程序入口和测试模块。核心模块使用qrcode库生成二维码,工具类提供日志和系统信息功能,主程序处理命令行参数,测试模块确保代码质量。使用时可以通过命令行参数指定wxid和输出路径。

import qrcode
import hashlib
import base64
from PIL import Image
import io
import os

class WXIDConverter:
def init(self):
self.qr_version = 1
self.qr_box_size = 10
self.qr_border = 4
self.qr_fill_color = "black"
self.qr_back_color = "white"

def validate_wxid(self, wxid):
    """验证wxid格式"""
    if not wxid.startswith('wxid_'):
        return False
    if len(wxid) < 6 or len(wxid) > 32:
        return False
    return True

def generate_qr_data(self, wxid):
    """生成二维码数据"""
    if not self.validate_wxid(wxid):
        raise ValueError("Invalid WXID format")

    # 生成加密数据防止被扫描
    salt = os.urandom(16)
    hashed = hashlib.sha256((wxid + salt.hex()).encode()).digest()
    encoded = base64.b64encode(hashed).decode('utf-8')
    return f"weixin://dl/add?wxid={wxid}&v={encoded[:8]}"

def create_qr_code(self, wxid, save_path=None):
    """创建二维码图片"""
    qr_data = self.generate_qr_data(wxid)

    qr = qrcode.QRCode(
        version=self.qr_version,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=self.qr_box_size,
        border=self.qr_border,
    )
    qr.add_data(qr_data)
    qr.make(fit=True)

    img = qr.make_image(fill_color=self.qr_fill_color, back_color=self.qr_back_color)

    if save_path:
        img.save(save_path)
        return save_path

    # 返回字节流
    img_byte_arr = io.BytesIO()
    img.save(img_byte_arr, format='PNG')
    return img_byte_arr.getvalue()

time
from datetime import datetime
import logging
import json
import platform

class Logger:
def init(self, name='wxid_qr_tool'):
self.logger = logging.getLogger(name)
self.logger.setLevel(logging.DEBUG)

    # 创建文件处理器
    file_handler = logging.FileHandler('wxid_qr.log')
    file_handler.setLevel(logging.INFO)

    # 创建控制台处理器
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.DEBUG)

    # 创建格式化器
    formatter = logging.Formatter(
        '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
    )
    file_handler.setFormatter(formatter)
    console_handler.setFormatter(formatter)

    # 添加处理器
    self.logger.addHandler(file_handler)
    self.logger.addHandler(console_handler)

def get_logger(self):
    return self.logger

class SystemInfo:
@staticmethod
def get_system_info():
return {
'system': platform.system(),
'release': platform.release(),
'machine': platform.machine(),
'processor': platform.processor(),
'python_version': platform.python_version(),
'timestamp': datetime.now().isoformat()
}
wxid_to_qr import WXIDConverter
from utils import Logger, SystemInfo
import argparse
import sys

def main():

# 初始化日志和系统信息
logger = Logger().get_logger()
sys_info = SystemInfo.get_system_info()
logger.info(f"System Info: {json.dumps(sys_info, indent=2)}")

# 解析命令行参数
parser = argparse.ArgumentParser(
    description='微信WXID转二维码工具',
    epilog='示例: python main.py --wxid wxid_123456789 --output qr.png'
)
parser.add_argument('--wxid', required=True, help='微信WXID')
parser.add_argument('--output', help='二维码输出路径')
parser.add_argument('--version', action='version', version='1.0.0')

args = parser.parse_args()

try:
    converter = WXIDConverter()
    logger.info(f"开始处理WXID: {args.wxid}")

    start_time = time.time()
    if args.output:
        result = converter.create_qr_code(args.wxid, args.output)
        logger.info(f"二维码已保存到: {args.output}")
    else:
        result = converter.create_qr_code(args.wxid)
        logger.info("二维码生成成功(内存字节流)")

    elapsed = time.time() - start_time
    logger.info(f"处理完成,耗时: {elapsed:.2f}秒")

    return 0
except Exception as e:
    logger.error(f"处理失败: {str(e)}")
    return 1

if name == 'main':
sys.exit(main())

相关文章
|
小程序
微信小程序-【转发好友】以及中文标题乱码问题解决
微信小程序-【转发好友】以及中文标题乱码问题解决
422 0
|
设计模式 Java uml
微信和QQ这么多群,该如何管理好友关系?
在现实生活中,中介者的存在是不可缺少的,如果没有了中介者,我们就不能与远方的朋友进行交流。各个同事对象将会相互进行引用,如果每个对象都与多个对象进行交互,则会形成如下图所示的网状结构。
254 1
|
9月前
|
API 数据安全/隐私保护 开发者
企业微信自动加好友软件,导入手机号批量添加微信好友,python版本源码分享
代码展示了企业微信官方API的合规使用方式,包括获取access_token、查询部门列表和创建用户等功能
|
9月前
|
数据安全/隐私保护 开发者 安全
微信加5000好友软件有吗?是不是真的
作为一名长期关注社交平台技术发展的开发者,最近经常被问到"微信加5000好友软件"是否真实存在的问题
|
9月前
|
移动开发 PHP 数据安全/隐私保护
抖音一键跳转微信加好友
抖音跳转微信加好友的技术实现方案 1. 技术背景与需求分析
|
9月前
|
移动开发 安全 数据安全/隐私保护
怎么通过链接跳转加微信好友
深度链接技术在微信好友添加中的应用 技术背景
微信养号脚本,自动加好友定时看朋友圈,发动态点赞评论
这个工具其实是我之气那在某公司上班时候给领导开发的,其实前期还是花了不少时间,估计半个月时间
|
10月前
企业微信批量加好友脚本,企业微信自动加手机号好友软件,自动同意群发消息自动回复
这是一款为企业微信设计的自动化营销工具,能够一键批量加好友并自动回复消息。通过模拟操作实现自动化流程,提升网络营销效率。
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
703 7

热门文章

最新文章

下一篇
开通oss服务