Skip to content

Berrysoft/tunet-rust

Repository files navigation

tunet-rust

清华大学校园网 Rust 库与客户端。

Azure DevOps builds

GUI(桌面端)

基于 winio 开发。使用如下命令启动:

$ tunet-gui
light dark

GUI(移动端)

基于 Flutter 开发。会尽量保证 iOS 版本能用,但是没钱发布。

Android Android

命令行

登录/注销

# 使用默认(自动判断)方式登录
$ tunet login
# 使用默认(自动判断)方式注销
$ tunet logout
# 使用 auth4 方式登录
$ tunet login -s auth4
# 使用 auth4 方式注销
$ tunet logout -s auth4

在线状态

# 使用默认(自动判断)方式
$ tunet status
# 使用 auth4 方式
$ tunet status -s auth4

Nushell 集成

status 子命令支持 --nuon 参数,可以配合 Nushell 得到结构化的数据:

# 在线状态表格
> tunet status --nuon | from nuon

Windows 服务/macOS launchd

# 注册服务
$ tunet-service register
# 注册服务,并定时5分钟连接一次
$ tunet-service register -i "5min"
# 注销服务
$ tunet-service unregister

注意 tunet-service.exe 自身是服务程序,如需删除应先注销服务。

Systemd

由于不同 Linux 发行版的服务机制不同,没有提供 registerunregister 命令。 Debian 打包提供了 [email protected] 文件。对于用户 foo,可以运行

# 启用服务
$ sudo systemctl enable tunet@foo
# 启动服务
$ sudo systemctl start tunet@foo

可以通过编辑该文件来调整重复登录的间隔。

密码

用户名和密码在第一次登录时根据提示输入。请不要在不信任的电脑上保存密码。可以在桌面端图形界面点击“删除并退出”,或在命令行使用如下命令删除:

$ tunet deletecred

注意:由于 Linux 的限制,目前没有找到合适的持续化密码保存方法,因此会直接明文存储。

网络状态

针对不同平台使用平台特定的方式尝试获得当前的网络连接方式,如果是无线网连接还会获取 SSID。 如果无法获取,则尝试连接特定的网址来判断。

平台 网络状态 WIFI SSID
Windows Windows::Networking::Connectivity
Linux (无) Netlink
Android ConnectivityManager WifiManager
macOS X System Configuration Core WLAN
iOS NEHotspotNetwork

编译说明

使用 cargo 直接编译:

$ cargo build --release --workspace --exclude native

即可在 target/release 下找到编译好的程序。

若要为 Android 编译 APK:

$ cd tunet-flutter
$ make apk

即可在 tunet-flutter/build/app/outputs/flutter-apk/app-<架构>-release.apk 找到打包。

安装说明

从 Releases 即可找到最新版分发。

Arch Linux

有第三方打包的 AUR 和 archlinuxcn 源可以安装。