chaoxing-assistant

    1.0.2 • Public • Published

    超星助手

    自动签到超星学习通网课,自动检查任务点、作业变动,并HTTP上报通知,支持多用户。

    快速上手

    1. 环境准备:安装Node.js,然后进入命令行
    2. 克隆源码:git clone https://github.com/snomiao/chaoxing-assistant.js
    3. 进入目录:cd chaoxing-assistant.js
    4. 安装本包:npm install
    5. 配置用户:复制 config_demo.yaml, 改名为 config.yaml然后根据你的需求替换文件内相应字段。
    学生列表:
      - 账号: '' # 手机号
        密码: '' # 密码
        # Server酱推送(推荐)
        报告地址: https://sc.ftqq.com/SCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.send?text=%s&desp=%s
    

    点击这里 首页 | Server酱 领取一个SCKEY,然后把上面的 SCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 换成你拿到的 SCKEY 就可以了

    1. 运行程序:node ./

    如果不出意外的话,应该能看到像下面这样子的输出

    雪星喵:零基础入门雪星工具箱第12次作业待批阅,手势签到成功✅、签到成功✅。
    
    1. 测试通过后,就可以考虑部署自动签到

    源码安装

    1. 环境准备: 安装Node.js
    2. 克隆源码: git clone https://github.com/snomiao/chaoxing-assistant.js && cd chaoxing-assistant.js
    3. 配置用户:复制 config_demo.yaml, 改名为 config.yaml然后根据你的需求替换文件内相应字段。
    4. 然后运行:npm install && node ./

    配置文件说明

    复制 config_demo.yaml, 改名为 config.yaml

    进阶配置

    学生列表:
      - 昵称: '雪星喵' 可选,你在推送消息里的称呼
        账号: '' # 手机号
        密码: '' # 密码
        报告地址:
          # Server酱推送(推荐)
          - https://sc.ftqq.com/SCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.send?text=%s&desp=%s
    
          # QQ消息推送
          - https://your.domain.com:5700/send_msg?access_token=XXXXXXXXXXXXXXXXX&user_id=${你的QQ号}&message=【小雪喵】%s
          # QQ群推送
          - https://your.domain.com:5700/send_msg?access_token=XXXXXXXXXXXXXXXXX&group_id=${你的QQ号}&message=【小雪喵】%s
          # TG Bot 私聊推送
          - https://api.telegram.org/botXXXXXXXXXX:XXX_XXXXXXXXXXXXXXXXXXXXXXXXXX-XXX/sendMessage?chat_id=${BOT和你聊天的ID}&text=%s
          # ……
      - 昵称: '米酱' 可选,你在推送消息里的称呼
        账号: '' # 手机号
        密码: '' # 密码
    

    上报地址讲解

    除了Server酱之外,也可以使用其它的 HTTP 推送服务,例如CQHTTP、TGBOT等,请见下方详细解释。

    Server酱 微信小程序推送 (新手推荐)

    https://sc.ftqq.com/SCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.send?text=%s&desp=%s
    

    点击这里 首页 | Server酱 领取一个SCKEY,只需要把里面的SCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 换成你拿到的 SCKEY 就可以了

    CQHTTP(QQ机器人)

    CoolQ HTTP 上报地址如下

    http://stu.snomiao.com:5700/send_msg?access_token=XXXXXXXXXXXXXXXXXXXXXXXX&group_id=769584362&message=【小雪喵】%s
    

    架设方法见 首页 - CoolQ HTTP API 插件

    电报机器人(Telegram机器人)

    一个典型的电报机器人的上报地址如下

    https://api.telegram.org/bot$$$$$$$$$$:xxx_xxxxxxxxxxxxxxxxxxxxxxxxxx-xxx/sendMessage?chat_id=${BOT和你聊天的ID}&text=%s
    

    其中 $$$$$$$$$$ 是你的 bot ID,xxx_xxxxxxxxxxxxxxxxxxxxxxxxxx-xxx 是你的访问令牌,chat_id=${BOT和你聊天的ID} 在对 Bot 发送 /start 之后可以通过 API 看到

    详细说明请见 教程|Telegram Bot 搭建 - 知乎

    部署自动签到

    比如……每天 8点到17点,每隔 7 分钟自动运行一次(签到啦检查作业啦之类)

    Linux

    1. 终端输入 crontab -e 然后添加这行 */7 08-17 * * * /bin/bash /${你的项目路径}/launch.sh

    Windows

    1. 开始菜单 - 运行 - 输入 taskschd.msc 回车,打开任务计划管理器
    2. 然后图形化界面,添加本目录下的 chaoxing-assistant.bat 就可以了

    二次开发

    见包内 test.js 测试用例

    const {
        学生登录有效检查,
        学生登录,
        学生基本资料填充,
        学生课程表填充,
        学生网课巡视,
    } = require('./chaoxing-assistant.js')
    
    !module.parent && (async () => {
        // var 学生 = Object.values(缓存.学生表)[1]
        var 学生 = { 账号: '...', 密码: '...' }
        // 学生登录
        var re = await 学生登录有效检查(学生)
        console.assert(re === false);
        var re = await 学生登录(学生)
        console.assert(re === "登录成功") // 填入 { 'Cookie': ... }
        var re = await 学生登录有效检查(学生)
        console.assert(re === true);
        var re = await 学生登录(学生)
        console.assert(re === "登录有效");
        // 学生昵称填充、学生基本资料填充
        var re = await 学生基本资料填充(学生) // 填入 { '性别': '女', '学号': 'xxxxxxxxxx', 't基本资料': 1588xxxxx5754 }
        console.assert(re === "基本资料刷新");
        var re = await 学生基本资料填充(学生)
        console.assert(re === "基本资料有效");
        // 学生课程表填充
        var re = await 学生课程表填充(学生) // 填入 { '课程表': { "xxxx": { '名称':  'xxx', ...}, ...} }
        console.assert(re === "课程表刷新");
        var re = await 学生课程表填充(学生)
        console.assert(re === "课程表有效");
        // 对签到任务签到, 对学生课程签到, 学生课程任务检查, 向学生报告,学生网课巡视
        var re = await 学生网课巡视(学生)
        // 输出概况信息
        console.log(学生);
    })().then(console.log()).catch(console.error)
    

    关于

    免责声明

    请自行脑补滥用代码被超星封号后被学校找麻烦哭诉无门的场景(/doge 🐶)

    版权信息

    作者:雪星(snomiao@gmail.com) 版权协议:GPLv3

    技术交流

    技术交流群: 1067970377

    Keywords

    none

    Install

    npm i chaoxing-assistant

    DownloadsWeekly Downloads

    0

    Version

    1.0.2

    License

    GPLv3

    Unpacked Size

    60.7 kB

    Total Files

    7

    Last publish

    Collaborators

    • snomiao