s235784 / NJUPT_AutoLogin

南京邮电大学校园网自动登录脚本,支持Linux(OpenWRT)、Macos、RouterOS平台,内附单线多拨教程
https://nuotian.furry.pro/blog/archives/347
Apache License 2.0
34 stars 2 forks source link

重构代码、添加对 macOS 的支持、更新 `README.md` #7

Closed BlockLune closed 6 months ago

BlockLune commented 7 months ago

新增

修改

下面是现在的提示信息输出示例:

image

下面是现在的 help 输出:

Auto login script for NJUPT Wi-Fi.
Author: NuoTian (https://github.com/s235784)
Usage: NJUPT-AutoLogin.sh [-i interface] [-o operator] [-t timeout] [-p ipv4_addr] [-m] [-n] [-h] login_id login_password
Options:
    -i interface    Specify the network interface. Default is 'en0'.
    -o operator Specify the operator. Default is 'ctcc'.
    -t timeout  Specify the timeout for ping. Default is 2 seconds.
    -p ipv4_addr    Specify the IPv4 address. By default it will be detacted automatically.
    -m      Switch to logout mode. Default is 1 (0 for ON, 1 for OFF).
    -n      Switch to not time limited account. Default is 0 (0 for LIMITED, 1 for NOT).
    -h      Show this help message.
Arguments:
    login_id    The user ID.
    login_password  The user password.

TODO

不确定的内容

s235784 commented 7 months ago

感谢PR,重构后代码质量比我自己写的高很多。 但重构后在OpenWRT设备上运行时会遇到无法找到命令等问题,还需要等我适配OpenWRT之后才能合并。

BlockLune commented 7 months ago

感谢PR,重构后代码质量比我自己写的高很多。 但重构后在OpenWRT设备上运行时会遇到无法找到命令等问题,还需要等我适配OpenWRT之后才能合并。

OpenWRT 上无法找到 nmcil 命令,但应该不影响正常使用,我这边测试是可以的。

使用这个命令本来是想在 Linux 平台上检测 Wi-Fi 状态,就像我在 macOS 上做的那样,但我突然意识到,这样的检测在 OpenWRT 上是没有必要的,因为路由器总是连着网线。

BlockLune commented 7 months ago

@s235784 请教一下一个问题,原来的用于指定三牌楼校区的选项是已经弃用了吗?我看了一下原来的代码中 -s 选项是用来指定与仙林校区不同的 wlanacip 等变量的,但似乎在请求中并不包含这些变量,所以我的重构中直接去掉了这个选项,也因此不太确定这个版本能否在三牌楼校区正常运行。

s235784 commented 7 months ago

@s235784 请教一下一个问题,原来的用于指定三牌楼校区的选项是已经弃用了吗?我看了一下原来的代码中 -s 选项是用来指定与仙林校区不同的 wlanacip 等变量的,但似乎在请求中并不包含这些变量,所以我的重构中直接去掉了这个选项,也因此不太确定这个版本能否在三牌楼校区正常运行。

应该是不用再加这个参数了,上次校园网的API更新后这个参数被舍弃了。

s235784 commented 7 months ago

感谢PR,重构后代码质量比我自己写的高很多。 但重构后在OpenWRT设备上运行时会遇到无法找到命令等问题,还需要等我适配OpenWRT之后才能合并。

OpenWRT 上无法找到 nmcil 命令,但应该不影响正常使用,我这边测试是可以的。

使用这个命令本来是想在 Linux 平台上检测 Wi-Fi 状态,就像我在 macOS 上做的那样,但我突然意识到,这样的检测在 OpenWRT 上是没有必要的,因为路由器总是连着网线。

对的,我的想法是直接使用os-relase检查是否为OpenWRT,是的话就跳过连接WiFi的步骤

BlockLune commented 7 months ago

感谢PR,重构后代码质量比我自己写的高很多。 但重构后在OpenWRT设备上运行时会遇到无法找到命令等问题,还需要等我适配OpenWRT之后才能合并。

OpenWRT 上无法找到 nmcil 命令,但应该不影响正常使用,我这边测试是可以的。 使用这个命令本来是想在 Linux 平台上检测 Wi-Fi 状态,就像我在 macOS 上做的那样,但我突然意识到,这样的检测在 OpenWRT 上是没有必要的,因为路由器总是连着网线。

对的,我的想法是直接使用os-relase检查是否为OpenWRT,是的话就跳过连接WiFi的步骤

可以,我来修改一下。

BlockLune commented 7 months ago

已在 ce1d2fc 中修改。

s235784 commented 7 months ago

已在 ce1d2fc 中修改。

好,我测试一下