Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xjtlulib

CI License: MIT

一个非官方的 XJTLU Library 往年试卷下载 CLI。输入课程代码后,可以按考试类型和学年筛选,并通过临时 Playwright 浏览器会话完成校内身份认证。

This is an unofficial tool and is not affiliated with or endorsed by Xi'an Jiaotong-Liverpool University.

功能

  • 使用 ↑/↓/←/→ 选择 Final、Resit 和学年,Enter 接受默认“全部”
  • 在终端本地询问账号与密码,密码仅显示为 掩码
  • 自动处理登录流程中的第二个 Login 确认按钮
  • 显示当前文件、百分比、字节进度和下载速度
  • 使用 .tmp 临时文件,验证 PDF 后再替换正式文件
  • 已有有效 PDF 与远端大小一致时自动跳过
  • Ctrl+C 时清理临时文件、Cookie、Web Storage 和临时浏览器配置

环境要求

  • Node.js 20.17 或更高版本
  • Google Chrome
  • 有权访问 XJTLU Library 试卷库的 XJTLU 账号

目前主要在 macOS 上验证。其他平台欢迎提交 issue 或 pull request。

安装

直接从 GitHub Release 安装:

npm install -g github:ji415/xjtlulib#v1.0.0

开发版本:

npm install -g github:ji415/xjtlulib

安装后检查:

xjtlulib --help

使用

交互模式:

xjtlulib

指定课程,交互选择类型和学年:

xjtlulib CAN207

完整指定筛选条件与保存目录:

xjtlulib EEE211 \
  --type final \
  --year 2024-2025 \
  --output ~/Desktop/Y3S1_Final/EEE211

仅查看匹配试卷:

xjtlulib CPT203 --type all --year all --list

强制重新下载同尺寸文件:

xjtlulib CAN207 --overwrite

选项

-t, --type <final|resit|all>  考试类型
-y, --year <YYYY-YYYY|all>    学年
-o, --output <目录>           保存目录
    --list                    只列出,不下载
    --overwrite               强制重新下载同尺寸文件
-h, --help                    帮助

默认保存目录为 ~/Downloads/<课程代码>

隐私与安全

  • CLI 不接受账号或密码命令行参数。
  • 密码不会写入配置文件、日志或磁盘。
  • 登录表单提交后会清空可控的凭据引用和密码 Buffer。
  • 每次运行使用独立临时 Chrome 配置;结束或取消时自动销毁。
  • JavaScript 运行时无法保证对所有瞬时字符串副本进行密码学意义上的内存擦除。

如果登录流程要求其他 MFA,请在打开的 Chrome 窗口中完成。

本地开发

git clone https://github.com/ji415/xjtlulib.git
cd xjtlulib
npm ci
npm test
npm link

项目结构:

scripts/xjtlulib.mjs       CLI 与认证/检索流程
scripts/tui.mjs            Prompt、颜色、进度条和总结面板
scripts/downloader.mjs     流式下载、PDF 校验和临时文件管理
scripts/*.test.mjs         自动化测试

使用边界

请仅下载你本人有权访问的资料,并遵守学校、图书馆及试卷材料适用的使用规定。MIT License 只适用于本仓库代码,不授予对下载内容的再分发权利。

License

MIT

About

Unofficial CLI for authenticated XJTLU Library past exam paper downloads

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages