Giter Site home page Giter Site logo

hylouis233 / xmu-daily-reporter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from poor-circle/xmu-daily-reporter

0.0 0.0 0.0 33.03 MB

厦门大学每日健康打卡程序,在网站上即可实现打卡,支持失败自动重试,支持邮件通知功能。

License: MIT License

Shell 0.89% C++ 87.34% C 0.17% CMake 11.61%

xmu-daily-reporter's Introduction

XMU-Daily-Reporter

注意!如果您最近打卡失败,请更新程序到最新版本!

image

Description 简介

这是一个厦门大学每日健康打卡系统的自动汇报程序,它可以通过smtp邮件服务通知你打卡的结果。程序支持每日定时打卡(默认在早上六点到八点随机选择一个时间开始打卡)。 你可以让本网站每天给你自动打卡,或者选择在自己的linux或windows设备上打卡。

本程序目前仍然可以稳定使用,但是由于作者已毕业,此项目可能无法及时更新维护,欢迎有兴趣的同学接手本项目或者提交pr。

Quick Start 快速开始

如果你没有自己的服务器,我们推荐使用Github Action来打卡。

使用Github Action打卡

  1. 注册一个github账户。

  2. 点击右上角的Starred按钮,收藏本程序

image

  1. 再点击右上角的Fork按钮

image

这会克隆一个你自己的打卡程序,并跳转到你自己的仓库。

  1. 点击Settings:

image

  1. 选择Secret下的action

image

  1. 点击New repository secret,添加你的个人登录信息。

image

  1. 填入以下内容。

image

注意,Name一定要填入SETTING

Value的内容可以从下面复制,记得把配置改成你自己的学号,密码,以及邮箱地址和密码。reporter_name是邮件发送人的名字,可改可不改。

{
    "mail": {
        "address": "[email protected]",
        "reporter_name": "HAL-9000",
        "smtp_password": "123456"
    },
    "xmu": {
        "ID": "21620207701111",
        "password": "123456"
    }
}

注意,smtp_password是你的邮箱授权码。 我们推荐使用QQ邮箱,因为它会在微信/QQ中弹出通知,符合国情。当然你也可以使用你自己喜欢的邮箱。这是QQ邮箱设置SMTP服务的教程 。注意,你获取的SMTP授权码就是需要填入的smtp_password

如果你不需要程序发送邮件提醒你打卡结果,则可以删掉邮箱有关的配置,如下所示:

{
    "xmu": {
        "ID": "23320779999999",
        "password": "123456"
    }
}
  1. 点击Add secret保存配置。

image

  1. 激活定时打卡

回到主页,点击左上角的Actions

image

点击绿色按钮激活脚本功能

image

点击Enbale workflow激活定时打卡功能

image

现在,程序会自动在每天上午六点钟到八点钟,随机选择一个时间开始打卡。

  1. 除了定时打卡,你也可以用这个网站手动打卡。我们建议您现在手动打一次卡,验证一下配置是否正确。

image

点击绿色的Run workflow按钮来触发手动打卡。

刷新页面,可以看到打卡正在进行中:

image

变为绿色则程序运行完毕(运行完毕不代表运行成功)。

点击查看详情,可确认是否打卡成功:

image

image

只有程序告诉你:report seccueed!才算是打卡成功!

如果打卡失败,并显示:

image

则说明你的配置有误。请更新你的学号和密码。

image

  1. 打卡成功后,如果你有设置邮件地址,那么程序会向你的邮箱发送邮件。

以下是邮件的示例(含成功和失败两种情况)

succeed

failed

  1. 如果要修改定时打卡时间,请打开文件: .github/workflows/main.yml

image

这里的 0 22 * * *代表在UTC+0的时区的22点打卡。由于**是UTC+8时区,因此默认是早上六点开始执行任务。

如果想要改成早上八点开始打卡,可以将0 22 * * * 改成 0 0 * * *

  1. 如果要修改随机打卡的时间段,请打开文件: bin/github_action/sleep.sh

当任务被定时触发(而不是手动触发)时,这个脚本会随机睡眠1-7200秒,如果要修改随机打卡的时段,只需要将7200修改为合适的值。

  1. 更新程序

如果程序有更新,你可以点此升级

image

使用自己的设备打卡

请从github的release界面下载程序。

下载地址
记得选择合适的系统版本。目前我们只提供x86-windows/x64-windows/x64-linux这三个版本。
解压文件,在report_setting.json中编辑程序的设置。如果程序找不到它,会自动生成一个默认的配置文件。 有些人会将在windows上将其设置为开机自启动,也有些人会在linux服务器上设置每日的定时任务来实现真正的全自动打卡。这取决于你的设备情况。

security and duty 安全和责任说明

你不应该使用这个程序撒谎。本程序汇报的内容是可以通过setting.json中的form_data一项来修改的,本程序只不过默认你身体健康而已。如果你发烧或者移动到其他城市,请及时手动更新表单。

github上的个人信息会被加密存储。如果你选择用自己的设备打卡,则你的个人信息将会明文保存在你的本地计算机,请小心照看它防止泄露。

我们使用HTTPS和SSL证书以及额外的AES-128算法来加密传输你的信息,这和官方网站使用的加密方法是一致的。我们不会将你的个人信息发送给别人,你可以阅读源代码来确认这一点。

完整的配置文件解释

以下是配置文件中高级选项的解释。

除了你的学号和xmu登录密码,其他都是可选项。

{
    "form_data": "blablaaaaaaaaa" ,  //每次打卡时post的表单信息,如果你生病了记得改
    "mail": {
        "address": "[email protected]", //填入你的邮箱地址,如果不想发送通知邮件,填入一个空字符串("")即可。 
        "reporter_name": "HAL-9000", //汇报机器人的名字,会在通知邮件中显示。
        "smtp_password": "123456"    //你的邮箱的smtp服务的密码
    },
    "report_retry": {
        "counts": 20,                 //打卡失败时重试的次数
        "duration": 10               //打卡失败时每次重试间隔的秒数
    },
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",  //浏览器信息
    //学生个人信息
    "xmu": {
        "ID": "23320779999999",      //你的学号
        "password": "123456"         //你的密码
    }
}

compile 编译

我们使用cmake来组织工程,使用vcpkg包管理器来安装第三方库,你的c++编译器需要支持C++17标准。

以下是编译的步骤:

  1. 装C++编译环境(Windows上安装Visual Studio,Linux上安装gcc/clang)
  2. 安装vcpkg
  3. 用vcpkg安装第三方库
  4. 使用IDE,或者直接使用cmake编译本项目

许多IDE都支持CMAKE工程,如Visual Studio,CLION,安装好cmake插件的Visual Studio Code。

你需要在vcpkg中安装这些库:

  1. spdlog
  2. mailio
  3. nlohmann-json
  4. cpp-httplib

xmu-daily-reporter's People

Contributors

poor-circle 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.