在数字化的时代,各种网站和应用的签到活动层出不穷,通过签到我们可以获取积分、奖励、会员权益等。然而,手动逐个签到不仅繁琐,还容易遗忘。今天要介绍的 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 项目为我们提供了一个便捷、高效的每日签到解决方案。它的多平台支持、多账号签到、定时任务和多平台通知等特性,让我们能够轻松管理各种签到活动,节省时间和精力。同时,开源的性质也为广大开发者提供了参与和贡献的机会,相信在大家的共同努力下,这个项目会变得更加优秀。不妨尝试一下这个项目,让每日签到变得更加简单!