项目介绍
自动签到程序, 纯属娱乐.
功能
目前实现的自动签到的网站:
部署
依赖环境
- MySQL (启用 Binlog)
- 存储任务
- 所需表在
./deployments/sql
- RabbitMQ
- Etcd
配置文件
模板在 ./configs/configs.yaml.default
编译
$ make all
可执行文件默认输出到 _output/build/
.
启动
$ ./xxx.out -f config.yaml
Kubernetes 部署
k8s 部署配置模板在 ./deployments
中.
- 创建 ConfigMap
$ kubectl create configmap apiserver-cm --from-file=config.yaml
- 创建 Deployment
$ kubectl create -f deployment.yaml
创建任务
使用 signctl
- 构建 signctl
signctl 生成在 ./_ooutput/tools/
.
$ make ctl
- 创建用户
创建用户后会返回 token
, 之后任何操作使用 -T token
方式.
$ ./signctl.out create user -H server_address --nickname xxx
- 创建 secret
创建 secret 后会返回 secretID.
$ ./signctl.out create secret -H server_address -T token --domain 101 --key xxx
- 创建 task
--secret-id
用于指定要使用的 secret.
$ ./signctl.out create task -H server_address -T token --kind 102 --secret-id xxx --spec "0 8 * * *"
各组件介绍
apiserver
类似网关, signctl 与其交互来对各资源进行操作.
crontab
管理任务对象, 创建任务等.
executor
任务的执行由其负责, 其中定义了各种任务的执行逻辑.
notice
类似消息推送, 目前使用 telegram bot 做消息接收.
secret
管理 secret, 一个 secret 可以对应多个 task.
trigger
触发器, 时间到时将任务发到 RabbitMQ, 再由 executor 执行.
user
用户管理.
signctl
一个简单的命令行工具, 用于创建任务.