Skip to content

Equim-chan/csu-ems-notify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

中南教务邮件提醒

Codacy Badge SATA

一个定时查询中南大学教务管理系统并发送邮件提醒工具,基于中南教务API

Features

  • 以一定的时间间隔获取教务发布的考试成绩,如果有新的成绩发布,就会立即发一封邮件(可选是否包含成绩详情)到指定邮箱
  • (欢迎发起pull req提交更多features)

Setup

pm2稳定部署

$ git clone https://github.com/Equim-chan/csu-ems-notify.git
$ cd csu-ems-notify
$ npm install
$ vim config.json      # 填写config.json

运行前__一定一定要先填写好config.json__,尤其是标注__请填写__的那些(属于因人而异的内容),说明如下:

{
    // 【请填写】一定要先确认下这个,这是csu-ems-api的URL。
    // 如果是用默认配置在本地部署的那么就是http://localhost:2333。
    // 关于中南教务API,详见https://github.com/Equim-chan/csu-ems-api
    "api-host": "http://localhost:2333",

    // 查询间隔,单位为分钟
    "interval": 10,

    // 查询时段,格式为"H:mm-H:mm",如指定为空字符串,则全天都会查询。
    // 注意,在这个时段只是不查询,程序不会退出。
    // 例:"6:00-10:00"  //合法
    //     "22:30-01:30" //合法
    //     ""            //合法(24小时查询)
    //     "8:00-8:00"   //合法(24小时查询)
    //     "6:0-10:00"   //不合法
    "period": "6:00-23:00",

    // 是否考虑补考。如设为false,则对有没有新成绩的判断会变为对有成绩科目的数量的简单比较。
    // 注意:对于补考更新成绩的支持仅限于补考成绩高于初考成绩的情况。
    "make-up": false,

    // 查询至几次为止,如设为0,就会一直查询下去
    "limit": 0,

    // 如设为false,则在出现新成绩并发送邮件之后程序就会退出
    "endless": true,

    // 是否在邮件中显示成绩详情(包含科目名称、过\挂、平时\期末\最终成绩及相应权重)
    // 心理承受能力差的请填false(逃
    "details": true,

    // 【请填写】要查询的用户的账号密码,不需要URL转义
    "account": {
        "id": "",
        "password": ""
    },

    "sender-options": {
        // 【请填写】发件邮箱的SMTP地址,如smtp.gmail.com
        "host": "",

        // 端口号
        "port": 25,

        // 是否启用SSL
        "secure": false,

        // 【请填写】发件邮箱的账号与密码
        "auth": {
            "user": "",
            "pass": ""
        }
    },
    "mail-options": {
        // 【请填写】发件人信息,格式为"\"发件人名字\" <邮箱地址>"
        "from": "\"新成绩提醒\" <>",

        // 【请填写】收件人的邮箱地址
        "to": "",

        // 邮件标题
        "subject": "新成绩出来了!"
    }
}

如果要自定义config.json的路径,可以使用参数-c|--config [path]
在这一步可以运行npm test测试一下自己的重要参数是否正确,以及是否能正常使用中南教务API、邮件等,如:

$ npm test -- -c ./myconfig

如果配置正确,目标邮箱就能收到一封邮件。如果没收到,则检查一下是否在回收站里,并将它从“垃圾邮件”中移走,然后再试。
(注:这不是严格的单元测试,因为太麻烦……)
配置完config.json之后,用pm2部署程序。如果中南教务API也是在本地上部署的话,请先部署中南教务API,方法(假设你在中南教务API的目录下):

$ pm2 start -i 0 -n "csuapi" --watch true app.js

完成所有配置,并确认中南教务API可用后,部署此项目:

$ pm2 start -i 0 -n "csunotify" --watch true notify.js

查看日志:

$ pm2 logs csunotify

撤销部署:

$ pm2 stop csunotify
$ pm2 delete csunotify

获取帮助

$ node notify.js -h

Dependencies

Related

License

About

💌 A tool to automatically track CSUEMS and send notifiction email when new grades are released, based on csu-ems-api.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published