本文最后更新于 2024-06-28,文章内容可能已经过时。

前言

大家好,这里是可爱的Cherry。 之前,Cherry给大家介绍过一款好用的签到软件——QD,以及一款预约maotai的项目——Imaotai。 相关文章如下,后来评论区有值友留言,提到一个轻量级的签到项目——dailycheckin。 该项目支持使用docker、青龙部署,全程使用配置文件进行项目配置,包含签到站点、消息通知、定时任务、多账号等。 🔻下面是这个项目支持的签到平台,各位值友可以对照看看,却有需要的可以部署一下这个项目,毕竟配置json文档复杂程度比webui肯定要高很多。 null

系统部署(docker)

一、新建文件夹与文档

🔻以群晖为例,其它NAS相同,新建文件夹dailycheckin,在文件夹下新建config,logs,cron三个文件夹。 最终路径包含/volume1/docker/dailyucheckin/config(或logs,或cron) null

二、修改定时任务脚本

🔻在./cron文件夹下新建一个文件crontab_list.sh文件,也可通过以下链接下载一个示例文件。 https://fastly.jsdelivr.net/gh/sitoi/dailycheckin@main/docker/crontab_list.sh 🔻文件内容如下,根据自己的需要调整定时触发条件
##############默认任务##############
# 每 12 小时更新 Pipy 包,如果不需要更新 pypi 包请注释掉下面这行
0 */12 * * * echo "定时任务更新依赖..." && pip install dailycheckin --upgrade --user >> /dailycheckin/logs/update-pypi.log 2>&1
# 每天的 23:50 分清理一次日志
50 23 */2 * * rm -rf /dailycheckin/logs/*.log
 
##############每日签到一次任务##############
# 每日签到(9:00 执行全部签到)
0 9 * * * cd /dailycheckin && dailycheckin >> /dailycheckin/logs/dailycheckin.log 2>&1

三、新增config.json配置文件

该部分篇幅比较长,所以我单独写了一节,可以看下面的内容。 这里我们可以就在./config文件夹下新建一个空的config.josn即可,也可通过以下链接下载一个示例文件。 https://fastly.jsdelivr.net/gh/sitoi/dailycheckin@main/docker/config.template.json

四、通过docker Cli部署

🔻通过ssh访问nas,在指令栏输入以下指令
docker run -d
--name dailycheckin \
-v $(pwd)/config:/dailycheckin/config \		#上面自定义的config文件夹
-v $(pwd)/logs:/dailycheckin/logs \		#上面自定义的logs文件夹
-v $(pwd)/cron:/dailycheckin/cron \		#上面自定义的cron文件夹
--restart always \
sitoi/dailycheckin:latest

五、通过群晖任务计划部署

🔻控制面板——任务计划——计划的任务——用户定义的任务 将上面的代码复制进去,点击运行即可。注意每一行最后都要加反斜杠 null

六、Docker运行指令

#Docker命令
#运行全部脚本
docker exec -it dailycheckin dailycheckin
#运行指定的多个平台脚本,用「空格」分开
docker exec -it dailycheckin dailycheckin --include MUSIC163 BAIDU
#运行指定的多个平台脚本(排除某些平台),用「空格」分开
docker exec -it dailycheckin dailycheckin --exclude MUSIC163 BAIDU
#更新pypi
docker exec dailycheckin sh /dailycheckin/default_task.sh

系统部署(青龙)

一、新增依赖

null null
Linux依赖:gcc g++ make libffi-dev openssl-dev
Python3依赖:dailycheckin

二、新增脚本

🔻打开脚本管理,新建一个脚本叫config.json null null

三、修改脚本文件

具体方法参照后文的config.json配置文件内容

四、运行脚本

🔻运行脚本的时候可以设置定时任务 null 🔻脚本指令
#青龙命令
#运行全部脚本
task dailycheckin
#运行指定的多个平台脚本,用「空格」分开
task dailycheckin --include MUSIC163 BAIDU
#运行指定的多个平台脚本(排除某些平台),用「空格」分开
task dailycheckin --exclude MUSIC163 BAIDU
#更新
task pip3 install dailycheckin --upgrade

config.json配置文件

所有的配置文件,都在config.json使用{}开始,所有内容都在一个{}内。 建议下载示例json修改 https://fastly.jsdelivr.net/gh/sitoi/dailycheckin@main/docker/config.template.json JSON校验网站:https://www.json.cn/

一、通知模块

🔻支持列表如下,不需要的通知方式留空就可以了,每一行之后都要有,进行分割。 这个如果每个都要介绍的话得写一个长篇了,可以参照我之前介绍的几篇推送相关的文章,举一反三即可。 null
#bark
  "BARK_URL": "",
#coolpush
  "COOLPUSHEMAIL": true,
  "COOLPUSHQQ": true,   
  "COOLPUSHSKEY": "",  
  "COOLPUSHWX": true,
#钉钉
  "DINGTALK_ACCESS_TOKEN": "",
  "DINGTALK_SECRET": "",
#飞书
  "FSKEY": "",
#pushplus
  "PUSHPLUS_TOKEN": "",
  "PUSHPLUS_TOPIC": "",
#Qmsg酱
  "QMSG_KEY": "",
  "QMSG_TYPE": "",
#企业微信应用&企微机器人
  "QYWX_AGENTID": "",
  "QYWX_CORPID": "",
  "QYWX_CORPSECRET": "",
  "QYWX_KEY": "",   #企业微信机器人,推送 webhook 后面的 key
  "QYWX_MEDIA_ID": "",
  "QYWX_TOUSER": "",
#TG
  "TG_API_HOST": "",  #Telegram api 自建的反向代理地址
  "TG_BOT_TOKEN": "",  #机器人的token,问机器人father
  "TG_PROXY": "",   #代理地址
  "TG_USER_ID": "",   #用户的token,从用户机器人获取
#server酱
  "SCKEY": "",
#新server酱
  "SENDKEY": "",
#通用配置
  "MERGE_PUSH": "",  #true: 将推送消息合并;false: 分开推送

二、全平台config.json配置文档

🔻每一个平台都通过[]关闭,每一个[]都需要使用英文逗号分割,最后一个[]不需要英文逗号。 💛不同平台多账号只需要在平台名字下,直接增加{}内容即可,每一个{}都需要使用英文逗号分隔,最后一个{}结束不需要英文逗号。 💛以下文档中的cookie等内容都提到了关键值,如果找不到,直接整个cookie复制进去也可以。
  "ACFUN": [
    {
      "password": "Sitoi",
      "phone": "18888xxxxxx"
    }, 
    {
      "password": "多账号示例,格式和上面相同,注意分割有一个英文逗号",
      "phone": "多账号示例,格式和上面相同,注意这里结束了以后没有英文逗号"
    }    
  ],
  "ALIYUN": [
    {
      "refresh_token": "599dcf65xxxxxx"
    }
  ],
  "AOLAXING": [
    {
      "cookie": "BT_AUTO_tt_common=; Hm_lpvt_7fc3681c21a26a2022ae0ca72e2d6fa5=xxxxxx; BT_LOGIN_tt_common=:187xxxxxx; Hm_lvt_7fc3681c21a26a2022ae0ca72e2d6fa5=xxxxxx;"
    }
  ],
  "BAIDU": [
    {
      "data_url": "https://fastly.jsdelivr.net/gh/Sitoi/Sitoi.github.io/baidu_urls.txt",
      "submit_url": "http://data.zz.baidu.com/urls?site=https://sitoi.cn&token=xxxxxx",
      "times": 10
    }
  ],
  "BILIBILI": [
    {
      "coin_num": 0,
      "coin_type": 1,
      "cookie": "_uuid=xxxxxx; rpdid=xxxxxx; LIVE_BUVID=xxxxxx; PVID=xxxxxx; blackside_state=xxxxxx; CURRENT_FNVAL=xxxxxx; buvid3=xxxxxx; fingerprint3=xxxxxx; fingerprint=xxxxxx; buivd_fp=xxxxxx; buvid_fp_plain=xxxxxx; DedeUserID=xxxxxx; DedeUserID__ckMd5=xxxxxx; SESSDATA=xxxxxx; bili_jct=xxxxxx; bsource=xxxxxx; finger=xxxxxx; fingerprint_s=xxxxxx;",
      "silver2coin": true
    }
  ],
  "IMAOTAI": [
    {
      "city": "上海市",
      "lat": "3.025626",
      "lng": "3.025626",
      "mobile": "18888xxxxxx",
      "province": "上海市",
      "token": "eyJxxxxxx",
      "userid": "1xxxxxx4"
    }
  ],
  "IQIYI": [
    {
      "cookie": "__dfp=xxxxxx; QP0013=xxxxxx; QP0022=xxxxxx; QYABEX=xxxxxx; P00001=xxxxxx; P00002=xxxxxx; P00003=xxxxxx; P00007=xxxxxx; QC163=xxxxxx; QC175=xxxxxx; QC179=xxxxxx; QC170=xxxxxx; P00010=xxxxxx; P00PRU=xxxxxx; P01010=xxxxxx; QC173=xxxxxx; QC180=xxxxxx; P00004=xxxxxx; QP0030=xxxxxx; QC006=xxxxxx; QC007=xxxxxx; QC008=xxxxxx; QC010=xxxxxx; nu=xxxxxx; __uuid=xxxxxx; QC005=xxxxxx;"
    }
  ],
  "KGQQ": [
    {
      "cookie": "muid=xxxxxx; uid=xxxxxx; userlevel=xxxxxx; openid=xxxxxx; openkey=xxxxxx; opentype=xxxxxx; qrsig=xxxxxx; pgv_pvid=xxxxxx;"
    }
  ],
  "MIMOTION": [
    {
      "max_step": "20000",
      "min_step": "10000",
      "password": "Sitoi",
      "phone": "18888xxxxxx"
    }
  ],
  "SMZDM": [
    {
      "cookie": "__ckguid=xxxxxx"
    }
  ],
  "TIEBA": [
    {
      "cookie": "BIDUPSID=xxxxxx; PSTM=xxxxxx; BAIDUID=xxxxxx; BAIDUID_BFESS=xxxxxx; delPer=xxxxxx; PSINO=xxxxxx; H_PS_PSSID=xxxxxx; BA_HECTOR=xxxxxx; BDORZ=xxxxxx; TIEBA_USERTYPE=xxxxxx; st_key_id=xxxxxx; BDUSS=xxxxxx; BDUSS_BFESS=xxxxxx; STOKEN=xxxxxx; TIEBAUID=xxxxxx; ab_sr=xxxxxx; st_data=xxxxxx; st_sign=xxxxxx;"
    }
  ],
  "V2EX": [
    {
      "cookie": "_ga=xxxxxx; __cfduid=xxxxxx; PB3_SESSION=xxxxxx; A2=xxxxxx; V2EXSETTINGS=xxxxxx; V2EX_REFERRER=xxxxxx; V2EX_LANG=xxxxxx; _gid=xxxxxx; V2EX_TAB=xxxxxx;",
      "proxy": "使用代理的信息,无密码例子: http://127.0.0.1:1080 有密码例子: http://username:password@127.0.0.1:1080"
    }
  ],
  "YOUDAO": [
    {
      "cookie": "JSESSIONID=xxxxxx; __yadk_uid=xxxxxx; OUTFOX_SEARCH_USER_ID_NCOO=xxxxxx; YNOTE_SESS=xxxxxx; YNOTE_PERS=xxxxxx; YNOTE_LOGIN=xxxxxx; YNOTE_CSTK=xxxxxx; _ga=xxxxxx; _gid=xxxxxx; _gat=xxxxxx; PUBLIC_SHARE_18a9dde3de846b6a69e24431764270c4=xxxxxx;"
    }
  ]