在数字化的时代,各种网站和应用的签到活动层出不穷,通过签到我们可以获取积分、奖励、会员权益等。然而,手动逐个签到不仅繁琐,还容易遗忘。今天要介绍的 DailyCheckIn 项目,就是一个能帮助我们轻松解决每日签到问题的神器。

项目概述

DailyCheckIn 是一个基于「Docker」「青龙面板」「群晖」「本地」的每日签到脚本项目。它支持 Pypi 包安装,能在多个平台上部署运行,并且可以对多个平台进行签到操作,同时还支持多账号签到和定时任务设置,甚至能够实现项目的自动更新。

项目特性亮点

多平台支持

  • 部署平台多样:该项目可以在 Docker、青龙面板、群晖以及本地环境中部署,满足了不同用户的使用场景和技术水平需求。无论是技术大神想在 Docker 中灵活配置,还是普通用户希望在群晖上简单部署,都能轻松实现。
  • 签到平台丰富:支持众多知名网站和应用的签到,如全民 K 歌、有道云笔记、百度贴吧、B 站、V2EX、AcFun、爱奇艺、什么值得买、阿里云盘等。每个平台的签到功能都经过精心编写,确保稳定运行。

多账号与定时任务

  • 多账号签到:可以添加多个账号进行签到,对于拥有多个账号的用户来说非常实用,比如多个 B 站账号或者爱奇艺账号等,一次配置即可完成所有账号的签到。
  • 定时任务设置:用户可以根据自己的需求设置定时任务,让脚本在指定的时间自动运行,再也不用担心会忘记签到。

多平台通知

签到结果可以通过多种方式通知用户,包括钉钉、企业微信群机器人、企业微信应用消息、Telegram、Bark(iOS)、Server 酱(微信)、Server 酱 TURBO(微信)、PushPlus(微信)、Cool Push(QQ、微信、邮箱)、Qmsg 酱(QQ)、飞书等。无论你使用哪种通讯工具,都能及时收到签到结果。

部分代码示例分析

B 站签到功能

import json
import os
import time

import requests

from dailycheckin import CheckIn


class BiliBili(CheckIn):
    name = "Bilibili"

    def __init__(self, check_item: dict):
        self.check_item = check_item

    @staticmethod
    def live_sign(session) -> dict:
        """B站直播签到"""
        try:
            url = "https://api.live.bilibili.com/xlive/web-ucenter/v1/sign/DoSign"
            ret = session.get(url=url).json()
            if ret["code"] == 0:
                msg = f'签到成功,{ret["data"]["text"]},特别信息:{ret["data"]["specialText"]},本月已签到{ret["data"]["hadSignDays"]}天'
            elif ret["code"] == 1011040:
                msg = "今日已签到过,无法重复签到"
            else:
                msg = f'签到失败,信息为: {ret["message"]}'
        except Exception as e:
            msg = f"签到异常,原因为{str(e)}"
            print(msg)
        return msg

这段代码实现了 B 站直播签到的功能。通过向 B 站的签到接口发送请求,根据返回的结果判断签到是否成功,并生成相应的提示信息。

爱奇艺账号信息查询

@staticmethod
def user_information(p00001):
    """
    账号信息查询
    """
    time.sleep(3)
    url = "http://serv.vip.iqiyi.com/vipgrowth/query.action"
    params = {"P00001": p00001}
    res = requests.get(url=url, params=params).json()
    if res["code"] == "A00000":
        try:
            res_data = res.get("data", {})
            level = res_data.get("level", 0)
            growthvalue = res_data.get("growthvalue", 0)
            distance = res_data.get("distance", 0)
            deadline = res_data.get("deadline", "非 VIP 用户")
            today_growth_value = res_data.get("todayGrowthValue", 0)
            msg = [
                {"name": "VIP 等级", "value": level},
                {"name": "当前成长", "value": growthvalue},
                {"name": "今日成长", "value": today_growth_value},
                {"name": "升级还需", "value": distance},
                {"name": "VIP 到期", "value": deadline},
            ]
        except Exception as e:
            msg = [
                {"name": "账号信息", "value": str(e)},
            ]
    else:
        msg = [
            {"name": "账号信息", "value": res.get("msg")},
        ]
    return msg

此代码用于查询爱奇艺账号的信息,包括 VIP 等级、当前成长值、今日成长值、升级所需成长值以及 VIP 到期时间等。通过向爱奇艺的接口发送请求,解析返回的 JSON 数据并整理成可读的信息。

项目使用与贡献

使用教程

项目提供了详细的教程,用户可以访问 https://sitoi.github.io/dailycheckin/ 查看具体的部署和使用方法。按照教程步骤操作,就能快速搭建起自己的签到环境。

总结

DailyCheckIn 项目为我们提供了一个便捷、高效的每日签到解决方案。它的多平台支持、多账号签到、定时任务和多平台通知等特性,让我们能够轻松管理各种签到活动,节省时间和精力。同时,开源的性质也为广大开发者提供了参与和贡献的机会,相信在大家的共同努力下,这个项目会变得更加优秀。不妨尝试一下这个项目,让每日签到变得更加简单!

Last modification:May 12, 2025
如果觉得我的文章对你有用,请随意赞赏