当前位置: 首页 > news >正文

2025年夸克网盘自动签到程序,验证通过!

夸克注册流程

新用户立享1T空间,移动端,移动端,移动端,重要的事情说三遍!

抓包流程: 【手机端】

  1. 打开reqable抓包工具,手机端访问签到页

  2. 搜索找到域名 https://drive-m.quark.cn 的请求信息 

  3. 复制url后面的参数: kps sign vcode并设置到环境变量中 

配置环境变量

必要配置

抓包的参数说明
QUARK_KPS抓包参数的kps_wg
QUARK_SIGN抓包参数的sign_wg
QUARK_VCODE抓包参数的vcode

可选配置

qq邮箱可访问网页的,然后点击头像,进入账号与安全,如图获取授权码即密码 服务器:smtp.qq.com 端口:587 其他邮箱自行搜索 

邮件通知配置说明
SMTP_SERVERsmtp服务器地址
SMTP_PORT服务器端口
EMAIL接收通知的邮箱
PASSWORD邮箱的授权码

Github Actions自动签到配置

main.py  完整源码如下:

import smtplib
from datetime import datetime
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from pprint import pprint
from loguru import logger
import httpx
import os

# 夸克
kps = os.getenv("QUARK_KPS")
sign = os.getenv("QUARK_SIGN")
vcode = os.getenv("QUARK_VCODE")

if kps is None or sign is None or vcode is None:
    logger.error("请设置 QUARK_KPS 或者 QUARK_SIGN 或者 QUARK_VCODE")
    raise ValueError("请设置 QUARK_KPS 或者 QUARK_SIGN 或者 QUARK_VCODE")

# 邮箱通知
SMTP_SERVER = os.getenv("SMTP_SERVER")
SMTP_PORT = os.getenv("SMTP_PORT", default=25)  # 587 TLS 端口,使用 465 代表 SSL
EMAIL = os.getenv("EMAIL")  # 你的邮箱
PASSWORD = os.getenv("PASSWORD")  # 你的 SMTP 授权码(不是邮箱密码)

# 测试环境
# SMTP_SERVER = "smtp.163.com"
# SMTP_PORT = 25
# EMAIL = "xxx@163.com"  # 你的邮箱
# PASSWORD = "xxx"  # 你的 SMTP 授权码(不是邮箱密码)

config_is_ok = False

if SMTP_SERVER is not None and SMTP_PORT is not None and EMAIL is not None and PASSWORD is not None:
    config_is_ok = True


def query_balance():
    """
    查询抽奖余额
    """
    url = "https://coral2.quark.cn/currency/v1/queryBalance"
    querystring = {
        "moduleCode": "1f3563d38896438db994f118d4ff53cb",
        "kps": kps,
    }
    response = httpx.get(url=url, params=querystring)
    response.raise_for_status()
    pprint(response.json())


def human_unit(bytes_: int) -> str:
    """
    人类可读单位
    :param bytes_: 字节数
    :return: 返回 MB GB TB
    """
    units = ("MB", "GB", "TB", "PB")
    bytes_ = bytes_ / 1024 / 1024
    i = 0
    while bytes_ >= 1024:
        bytes_ /= 1024
        i += 1
    return f"{bytes_:.2f} {units[i]}"


def send_email(body: str):
    SUBJECT = "夸克网盘自动签到"
    try:
        # 创建邮件对象
        msg = MIMEMultipart()
        msg["From"] = EMAIL
        msg["To"] = EMAIL
        msg["Subject"] = SUBJECT
        # 添加邮件正文
        msg.attach(MIMEText(body, "plain"))

        # 连接 SMTP 服务器
        server = smtplib.SMTP(SMTP_SERVER, int(SMTP_PORT))
        server.starttls()
        server.login(EMAIL, PASSWORD)  # 登录 SMTP 服务器
        server.sendmail(EMAIL, EMAIL, msg.as_string())  # 发送邮件
        server.quit()  # 关闭连接
    except Exception as e:
        logger.error(f"邮件发送失败: {e}")


def user_info():
    """
    获取用户信息
    :return: None
    """
    url = "https://drive-m.quark.cn/1/clouddrive/capacity/growth/info"
    querystring = {
        "pr": "ucpro",
        "fr": "android",
        "kps": kps,
        "sign": sign,
        "vcode": vcode,
    }
    response = httpx.get(url=url, params=querystring)
    response.raise_for_status()
    content = response.json()
    if content["code"] != 0:
        logger.warning(content["message"])
    else:
        data = content["data"]
        super_vip_exp_at = "未知"
        if not data.get('super_vip_exp_at', None) is None:
            super_vip_exp_at = datetime.fromtimestamp(
                data["super_vip_exp_at"] / 1000
            ).strftime("%Y-%m-%d %H:%M:%S")
        cap_sign = data["cap_sign"]
        notify_message = ""
        if cap_sign["sign_daily"]:
            notify_message += (f"今日已签到,获得容量: {human_unit(cap_sign['sign_daily_reward'])},"
                               f" 签到进度: {cap_sign['sign_progress']}\n")
        notify_message += (f"会员类型:{data['member_type']}, 过期时间:{super_vip_exp_at}, 总计容量:"
                           f"{human_unit(data['total_capacity'])}, 使用容量:{human_unit(data['use_capacity'])}, "
                           f"使用百分比:{data['use_capacity'] / data['total_capacity'] * 100:.2f}%")
        logger.info(notify_message)
        if config_is_ok:
            send_email(notify_message)


def checkin():
    """
    签到
    :return: None
    """
    url = "https://drive-m.quark.cn/1/clouddrive/capacity/growth/sign"
    querystring = {
        "pr": "ucpro",
        "fr": "android",
        "kps": kps,
        "sign": sign,
        "vcode": vcode,
    }
    response = httpx.post(url=url, json={"sign_cyclic": True}, params=querystring)
    if response.status_code == 200:
        if response.json()["code"] != 0:
            logger.warning(response.json()["message"])
        else:
            logger.success(
                f"签到成功,获得容量: {human_unit(response.json()['data']['sign_daily_reward'])}"
            )
    else:
        logger.warning(f"已经签到,请勿重复签到")


if __name__ == "__main__":
    checkin()
    user_info()

相关文章:

  • android App主题颜色动态更换
  • IO进程线程3
  • 【AD】5-3 PCB板框的内缩与外扩
  • OpenBMC:BmcWeb app获取socket
  • 嵌入式 ARM Linux 系统构成(1):Bootloader层
  • oracle通过dmp导入数据
  • PHP之运算符
  • python-串口助手(OV7670图传)
  • 文献分享: ConstBERT固定数目向量编码文档
  • java 查找连个 集合的交集部分数据
  • 生命周期总结(uni-app、vue2、vue3生命周期讲解)
  • Linux总结
  • 进程间通信
  • 【单片机】嵌入式系统设计流程
  • 【仿muduo库one thread one loop式并发服务器实现】
  • 美股回测:历史高频分钟数据的分享下载与策略解析20250305
  • 配置hosts
  • 【软考-架构】9.2、摘要-签名-PKI-访问控制-DOS-欺骗技术
  • SQL注入的原理及详细运用
  • Golang依赖注入实战:从容器管理到应用实践
  • 美联储官员:美国经济增速可能放缓,现行关税政策仍将导致物价上涨
  • 俄媒:俄乌代表团抵达谈判会场
  • 李成钢出席中国与《数字经济伙伴关系协定》成员部级会议
  • 收到延期付款利息,该缴纳增值税吗?
  • 美F-35险被胡塞武装击中,损失增大让行动成“烂尾仗”
  • 占地57亩的“潮汕豪宅”面临强制拆除:曾被实施没收,8年间举行5次听证会