Git Product home page Git Product logo

hnie-auto-sign-midwayjs's Introduction

某高校疫情防控自动签到打卡

技术栈 Midway.js Nest.js
链接 hnie-auto-sign-midwayjs hnie-auto-sign-nestjs
备注 仅支持日常打卡 支持日常打卡以及晚归打卡

目录

运行平台

可以配合 阿里云效 或者 coding,只要是跑在国内服务器都可以

费用

流水线:最大并发任务数 3,运行时长 1800 分钟/月。

更多信息请查阅官网

官网

使用步骤

推荐使用方式二

如果方式二的代码拉取不下来的话就只能换成方式一了,如下图所示是方式二失败的情况:

方式一

  1. 先注册阿里云账号
  2. 然后进入云效得devops
    • 在这里界面中点击创建企业
    • 然后点击立即体验,进入就好
    • 接着就会进入如下界面
  3. 进入 代码管理。在右上角找到 导入代码库
    • 按照下面示例进行填写,仓库地址是:https://github.com/james-curtis/hnie-auto-sign-midwayjs.git
  4. 创建流水线
    • 点击左侧的 流水线
    • 跳转页面之后,点击右上角的 创建流水线
    • 创建模板选择 其他·空模板
    • 然后会自动弹出 流水线源,然后按照图示进行设置
    • 然后选择 阶段1 中的 空任务
  5. 配置流水线
  • 在右侧弹出面板中,将任务名修改为 签到打卡
  • 点击右侧面板中下侧的 添加步骤,选择 构建->Node.js构建
  • 现在你的界面应该是这样的
  • 版本选择方式 修改为 输入指定版本
  • 请填写 Node 版本 修改为 16
  • 构建命令 填写为如下
npm ci
npm run build
npm run start
  • 此刻你的界面应该是这样
  1. 配置邮件通知
    • 在刚才步骤的基础之上,再选择 添加插件 -> 邮件通知
    • 完成之后,你的界面应该是这样的
  2. 配置定时任务
    • 接着配置定时触发该流水线
    • 点击顶部的 触发设置
    • 按照下图进行配置即可
  3. 修改流水线名称(可选)
    • 点击顶部的 基本信息
    • 流水线信息 中,将 流水线名称 修改为 易班签到打卡,如下图所示
  4. 保存流水线,点击最右上角的 仅保存 按钮
  5. 配置签到账号信息
    • 回到 codeup 代码管理界面,如果找不到可以点击最左上角的九个点,打开 研发->代码管理 就能找到仓库了
    • 选中 .env 文件,再点击右侧的编辑按钮
    • 填写你自己的签到信息之后点击保存即可(如果你的是JSON格式,那么最外层就应该用单引号。我这里是使用的JSON5,里面的内容都是单引号,所以最外层用的是双引号)
  6. 运行流水线进行测试
    • 现在回到流水线,测试一下能不能跑的通
    • 进入日志,查看运行情况
    • 在弹出的窗口中,在左侧的 构建 选择 Node.js 构建,然后拉到最底下,此时应该可以看到提示信息
  7. 至此操作已经全部完成,第二天会按照预设的时间进行打卡,运行结果会进行邮件通知
  8. 邮件通知大概长这样

方式二

  1. 前面的步骤也是和步骤一相同,只不过这里不用拉仓库了,每次构建都会同步github仓库。
  2. 先注册阿里云账号,然后进入云效界面
    • 此时你的界面应该是这样
  3. 安装上面图示进入 流水线 Flow
  4. 进入之后点击右上角的蓝色按钮 新建流水线
  5. 请选择流水线模板 这里选择最底部的 其他 · 空模板,然后点击创建
  6. 打开时候会自动在右侧弹出一个 代码源 窗口,这里选择 通用Git
  7. 代码仓库 填写 https://github.com/james-curtis/hnie-auto-sign-midwayjs.git
  8. 默认分支 填写 main
  9. 点击 服务连接添加服务连接
  10. 在弹出窗口中,点击 服务授权/证书 右侧的 新建 按钮
    • 这里的 用户名令牌/密码 随便输入就好了,比如这样
    • 点击 确认
  11. 然后 新建服务连接 窗口中的 使用范围 修改为 私密:仅自己可见
    • 此时界面应该如下图所示
    • 点击 确认
  12. 此时你的界面应该是这样,
  13. 点击 添加 按钮
  14. 此时你的界面应该是这样,
  15. 中间这里的步骤就和方式一中的第5-9步一样
  16. 完成方式一的第5步至第9步之后,再按照1. 配置写在.env中不会泄露吗中的说明配置环境变量即可

数据格式

签到JSON数据的Schema请参阅:schema.json

签到数据示例:

[
  // 每一个对象就是一个签到账号
  {
    "account": {
      // 账号,这里的账号密码是http://xggl.hnie.edu.cn/这个网站的
      "account": "demo",
      // 密码,默认是Hnie@身份证后六位
      "password": "Hnie@demo"
    },
    "signFormData": {
      // 签到所在地(地图api定位结果)
      "address": "湖南省郴州市北湖区五岭大道9号",
      // 签到所在地经纬度
      "position": "113.014999,25.7706",
      // 签到地址(精确的县级)
      "signAddress": "湖南省郴州市",
      // 省会邮编
      "provinceZipCode": "430000",
      // 市中心邮编
      "cityZipCode": "431000",
      // 县中心邮编
      "countyZipCode": "431081",
      // 现居地详细地址
      "habitationDetailDesc": "湖南省郴州资兴市鲤鱼江KFC",
      // 常住地详细地址
      "usualResidenceDetailDesc": "湖南省郴州资兴市鲤鱼江KFC",
      // 手机号
      "phone": "15971115555"
    }
  },
  {
    "account": {
      "account": "demo",
      "password": "Hnie@demo"
    },
    "signFormData": {
      "address": "湖南省郴州市北湖区五岭大道9号",
      "position": "113.014999,25.7706",
      "signAddress": "湖南省郴州市",
      "provinceZipCode": "430000",
      "cityZipCode": "431000",
      "countyZipCode": "431081",
      "habitationDetailDesc": "湖南省郴州资兴市鲤鱼江KFC",
      "usualResidenceDetailDesc": "湖南省郴州资兴市鲤鱼江KFC",
      "phone": "15971115555"
    }
  }
]

验证配置是否正确

请使用 Json Schema Validator,左边填写schema.json中的内容,右边填写你的配置

示例: img

注意

海外ip好像无法签到,打开页面会显示 502

返回数据长这样

�***31m    data: '<html>\r\n' +�***39m
�***31m      '<head><title>502 Bad Gateway</title></head>\r\n' +�***39m
�***31m      '<body bgcolor="white">\r\n' +�***39m
�***31m      '<center><h1>Notice:502 Bad Gateway</h1></center>\r\n' +�***39m
�***31m      '<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n' +�***39m
�***31m      '<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n' +�***39m
�***31m      '<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n' +�***39m
�***31m      '<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n' +�***39m
�***31m      '<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n' +�***39m
�***31m      '<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n'�***39m

常见问题

1. 配置写在.env中不会泄露吗

如果你开放了权限给别人看了话是有可能会泄露的。

因此我也提供了第二种配置的方式:

将配置信息写进环境变量中,效果如下

只可惜的是云效这里不能直接写一个JSON进去,需要base64编码一下才能写入进去。

步骤如下:

  1. 随便找一个在线base64的网站,例如:https://base64.us/
  2. 把你的配置输入进去,如下图所示
  3. 然后复制编码之后的值
  4. 回到云效,点开之前创建的流水线,点击顶部的 变量和缓存,在 字符变量 右侧点击 新建变量
  5. 然后按照下图示例进行填写,变量名是 SIGN_CONFIG_BASE64
  6. 添加之后再点击右上角的 仅保存 即可
  7. 然后你退出重进,会发现这个变量只能被替换,不能被读取了

提示:环境变量的优先级是最高的。

如果同时设置 .env .env.local 环境变量

其中的优先级是:环境变量 > .env.local > .env

hnie-auto-sign-midwayjs's People

Contributors

eric-gitta-moore avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.