Featured image of post MJJ提醒工具——不再错过关键抢购

MJJ提醒工具——不再错过关键抢购

前言

相信很多MJJ和我一样,因为平时没时间关注鸡圈,导致经常错过一些关键的时间节点,比如传家宝的续费,黑五抢购,一些限时的优惠,因此,我开发了这一款MJJ提醒工具,无需服务器,还是薅我们的赛博活佛——cloudflare的羊毛,为了避免网站沉寂不工作,我们使用监控工具 cron-job.org Console 进行定时触发。网站demo

灵感来自 woniu336大佬 的已有项目 MJJ订阅追踪,但是大佬的项目提醒和部署在服务器上不适合我,所以自建了一个

正文

下面就开始搭建吧

项目地址

准备工具

  • Cloudflare 账号
  • Cloudflare Pages
  • Cloudflare D1 数据库
  • Telegram Bot Token 和 Chat ID
  • 企业微信 Webhook 地址

数据库

在 Cloudflare Workers 中创建 D1 数据库

然后在控制台执行查询命令

CREATE TABLE reminders (
    id TEXT PRIMARY KEY,
    title TEXT NOT NULL,
    content TEXT NOT NULL,
    remind_time TEXT NOT NULL,
    cycle_type TEXT NOT NULL,
    status INTEGER DEFAULT 0,
    link TEXT,
    cron_job_id INTEGER,
    created_at TEXT
);

image-20241219002247691

部署步骤

注册并且获取cron-job.org Consoleapi key只能创建一个,但是可以随时修改

image-20241219002303876

  1. fork项目,1143520/deadline 或者下载源码,git上传
  2. 在 Cloudflare Pages 中创建新项目
  3. 连接您的 Git 仓库(GitHub、GitLab 等),选择刚刚fork的项目
  4. 点击部署
  5. 在 Pages 项目设置中:
    • 绑定 D1 数据库,设置变量为DB
    • 配置环境变量(见环境变量配置部分)
  • CRON_SECRET: 定时任务的访问密钥(按照个人喜好设置)

  • CRONJOB_API_KEY: cron-job.org 的 API KEY

  • TG_BOT_TOKEN: Telegram Bot Token(推送到tg机器人)(这个应该都会吧)(必须至少设置一个通知,否则网站无法访问)

  • TG_CHAT_ID: Telegram Chat ID

  • WECOM_KEY: 企业微信 Webhook 地址(完整的url,推送到微信企业机器人,可选)(这个也可以网上找教程)

  • BARK_KEY:bark提醒(可选)

  • 其他通知渠道可以在deadline/functions/api/notify.js at main · 1143520/deadline自行设置 类似 if (env.BARK_KEY) {} 结构清晰

  1. 重试部署

image-20241219101755122

使用

网站界面

image-20241219002326450

添加任务

注意,提醒时间不能在3min之内,否则会跳过第一次提醒

可选:

- 单次提醒:只提醒一次

- 每周循环:在指定的每周某一天重复提醒

- 每月循环:在每月的指定日期重复提醒

- 每年循环:在每年的指定日期重复提醒

【如果你还不满意,可以到cron-job.org Console自行编辑,除了单次任务会自动删除,其他的可以循环触发】

image-20241219002345201

image-20241219002404001

注意单次任务执行完成之后会自动删除任务,下面以周循环为例

点击任务的编辑可以看到下一次执行时间,实际上是循环的,只显示最近5个

image-20241219002418203

提醒消息样式

image-20241219002431672

image-20241219002440635

总结

使用pages构建,js后端处理,引入外部定时任务cron-job.org Console 定时触发任务,避免轮询造成免费额度的浪费,和保持提醒的可靠性,请勿泄露API KEY!

使用 cron-job.org 的免费计划有以下限制:

- 最多创建 50 个定时任务
- 最短执行间隔为 1 分钟
- 每个任务的超时时间为 30 秒
- 每月可执行 10,000 次
- 每个任务最多可以设置 100 个不同的执行时间点

欢迎点赞给鸡腿哦😚

CC BY-NC-SA 4.0 创意的非商业派对入场券
最后更新于 2024-12-21 12:03
晚来天欲雪,能饮一杯无