掘金自动签到 ➕ 定时执行 ➕邮箱推送 你还想要啥❓

10 0 2024-02-12
冒着被关进小黑屋的风险 写了个掘金自动签到抽奖程序 包含了自动执行、签到、免费抽奖、沾喜气、邮件通知的脚本,以后再也不用每天忘记签到了😄事情是这样的 元旦那天由于玩的太嗨 忘记了掘金签到这么一回事 作为一名专业的摸鱼🐟选手 怎么能断签呢(好吧 我是为了第二天5120矿石)果断买了补签卡 后来在想 为啥不写一个每天自动执行的签到脚本呢??将# juejinCheckIn到自己的仓库 然后将项目下来用编辑器打开项目后 需要将带有手动填写的几项数据修改为自己的 其他不要动cookie 有过期时间 大概是一个月 或者是退出登陆也会过期登陆进入到掘金,F12打开控制台,选择network后随便点击一个接口,找到请求头中的,选中数据后右键复制值这里以163邮箱为例 qq邮箱同理 如果是163邮箱 直接将字段设置为163(qq邮箱就写qq) 然后填入你自己的邮箱 邮件发送成功 登陆邮箱会看到你给自己发了一条邮件 就像这样授权码获取⚠️:登陆进入163邮箱 打开设置将以下几个设置打开 打开服务时会弹窗发送短信 微信扫码后就可以发送短信(qq邮箱这一步开启需要手动进行验证发送短信)我这里已经添加过了 就直接点击新增授权 也是一样会弹出二维码扫码发送短信大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!短信发送完毕后点击我已发送 然后就会得到你的授权码(注意授权码只展示一次) 将授权吗粘贴到配置文件中的 字段将所有的参数填入无误后 可以用命令本地运行 可以收到邮件并且邮件里有日志消息 恭喜你🎉 以后再也不用每天签到了(会不会被官方打死)确认无误后将修改后的项目 项目已经设置了自动执行 每天9点会自动执行签到 并且发送邮件进行通知自从用了自动签到后 妈妈再也不用担心我忘记签到了 兑换Switch不是梦如果只关注脚本功能 看到这里就可以左拐🚪了 如果对实现感兴趣 这里也和你分享一下具体的实现思路有了想法之后就开始去扒掘金签到相关的接口 挨个接口点

  冒着被关进小黑屋的风险 写了个掘金自动签到抽奖程序 包含了自动执行、签到、免费抽奖、沾喜气、邮件通知的脚本,以后再也不用每天忘记签到了😄

  事情是这样的 元旦那天由于玩的太嗨 忘记了掘金签到这么一回事 作为一名专业的摸鱼🐟选手 怎么能断签呢(好吧 我是为了第二天5120矿石)果断买了补签卡 后来在想 为啥不写一个每天自动执行的签到脚本呢??

  将# juejinCheckIn到自己的仓库 然后将项目下来

image

  用编辑器打开项目后 需要将带有手动填写的几项数据修改为自己的 其他不要动

  cookie 有过期时间 大概是一个月 或者是退出登陆也会过期

登陆进入到掘金,F12打开控制台,选择network后随便点击一个接口,找到请求头中的,选中数据后右键复制值

  image

  这里以163邮箱为例 qq邮箱同理 如果是163邮箱 直接将字段设置为163(qq邮箱就写qq) 然后填入你自己的邮箱 邮件发送成功 登陆邮箱会看到你给自己发了一条邮件 就像这样

  image

  授权码获取⚠️:

登陆进入163邮箱 打开设置

  image

  将以下几个设置打开 打开服务时会弹窗发送短信 微信扫码后就可以发送短信(qq邮箱这一步开启需要手动进行验证发送短信)

  image

  我这里已经添加过了 就直接点击新增授权 也是一样会弹出二维码扫码发送短信

image大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!

  短信发送完毕后点击我已发送 然后就会得到你的授权码(注意授权码只展示一次) 将授权吗粘贴到配置文件中的 字段

  image

  将所有的参数填入无误后 可以用命令本地运行 可以收到邮件并且邮件里有日志消息 恭喜你🎉 以后再也不用每天签到了(会不会被官方打死)

  确认无误后将修改后的项目 项目已经设置了自动执行 每天9点会自动执行签到 并且发送邮件进行通知

  自从用了自动签到后 妈妈再也不用担心我忘记签到了 兑换Switch不是梦

  如果只关注脚本功能 看到这里就可以左拐🚪了 如果对实现感兴趣 这里也和你分享一下具体的实现思路

  有了想法之后就开始去扒掘金签到相关的接口 挨个接口点开看 都是给了些啥数据 每个数据都是用来干啥的 经过漫长的调试后 脚本签到能力就完成了 功能主要由一下几个接口组成

  接下来就很简单了 接接口嘛 谁还不会了 找个请求库直接干 这里我选用的是大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!

  先配置一下请求 在写入 将文件中的丢进请求头中

  接下来就直接请求接口,请求循序依次为

  image.png

  以下主要代码

  关于自动执行 我最开始想的方案是通过服务器部署 开启一个定时任务去执行 这种方式需要有服务器 比较麻烦 也有人用云函数 我又懒得去注册 后了找到一种方案就是 白嫖 通过设置定时任务 每天自动执行 人人都有 要求也较低 由于我不是很懂这方面的东西 这次为了脚本也只是学了个皮毛 具体代码如下

  这里关键的代码是 将触发任务的方式改为定时执行 到了设定好的时间后会自动执行任务 任务会以最新版本的系统进行运行 安装 安装项目中的依赖后 执行中的代码 如果想要修改执行时间 按照 的格式修改字段即可(设置的时间是 北京时间 需要**+8**)大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!

  邮件发送这里选用的是Nodemail库 它的功能十分强大 支持多种邮箱服务 支持内容、纯文本内容、附件、图片等等 发送邮件方式也很简单 具体代码如下:

  邮件内容 我这里用写了一个简单的日志模版 用来承载脚本的 在前面我对进行重写 将存储到数组中 吧数据传入模版引擎生成

  邮件发送其实很简单 具体配置可以查看官方文档 这里就解释一下用到的配置

service: 邮箱服务 内部已经支持了很多邮箱服务 如果填写这个字段就不需要写

host: 邮箱的主机IP地址 这一项一版在开启后会展示邮箱的IP地址

prot: 端口号 默认的为

secure: 配置安全链接

secureConnection: 使用(默认为false)

auth.user: 发送者邮箱

auth.pass: 邮箱授权码

from: 发送者邮箱

to: 接受者邮箱

subject: 邮件主题

html: 邮件内容字符串

  关于 邮箱授权码 刚开始是写在一个配置文件夹里面 后来啦哥提出了更好的方式 就是用 这种方式可以避免关键数据暴露 (万一那个无聊的家伙拿你cookie去梭哈了呢😏) 还是小心为上

  其实使用也很简单 我之前对这块完全不熟悉 看了会官方文档 三下五除二就弄好了 在添加好数据后 我们需要在文件中对数据进行获取 获取方式也很简单 直接通过就可以获取到 以该项目为例

  在设置完之后 我们就可以在环境变量中使用这些数据 就像这样

  但是获取到的数据在中是无法进行展示的 在输出日志中 你定义的所有密码都会被清除 并在输出日志之前用星号替换 也是为了防止泄漏

  image

  如果觉得这样还不够安全 在代码中可以随意使用到数据 可以尝试一下对密码进行加密

  在开发测试的时 发现jobs没有按时执行 九点五分到公司打开时发现并没有执行 刚开始还以为是 时间填写错误 修改时间后发现定时任务会有延迟 延迟时间几分钟到十几分钟甚至一小时都有 但这个并不影响我们签到功能 只要是在今天签到都可以

  以我测试为例 将 时间设置为每天的 但实际执行时间为 差不多延迟了

  jobs执行时间

  查看相关文档后发现 在GitHub中关于Schedule的定义:

  Note: The schedule event can be delayed during periods of high loads of GitHub Actions workflow runs. High load times include the start of every hour. To decrease the chance of delay, schedule your workflow to run at a different time of the hour.

  注意: 在高负载的 GitHub action 工作流运行期间,调度事件可能会被延迟。高负载时间包括每个小时的开始。为了减少延迟的机会,请安排您的工作流在一小时的不同时间运行。

  也就是说 Schedule中的cron时间并不是真正执行的时候 而是工作流进入到GitHub进行计划排队时间 说简单点就是工作流进入到GitHub执行的队列时间 具体什么时候执行工作流 则需要看GitHub工作流的负载

  这个问题在签到需求中并不是致命的问题 如果想要解决可以参考Github Action的 Schedule 运行不准时的解决办法这篇文章

  控制台输入命令获取到的cookie并不完整

  这是控制台获取到的,对比一下接口的,相差很大

image

  本项目仅适用于学习交流 并不具备其他用途 也没有经过掘金官方团队 若是被封号 与我无关(手动狗头保命)

  有其他想法或功能 欢迎👏进行讨论 如果对你有帮助 给个行不行

掘金自动签到 ➕ 定时执行 ➕邮箱推送   你还想要啥❓

掘金自动签到 ➕ 定时执行 ➕邮箱推送   你还想要啥❓

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

欧洲杯赛程 英超联赛 中超联赛 法甲联赛 西甲联赛 德甲联赛

网站地图