Skip to content

Releases: fotlim/campus-net

v1.2.4-lite · 精简版(无桌宠)

Choose a tag to compare

@fotlim fotlim released this 20 Oct 05:17

v1.2.4-lite · 精简版(无桌宠)

版本号还是 1.2.4,但内容与 v1.2.4 完整版 不同。 从这一版起,仓库只保留「校园网自动认证 + 内存清理」,桌面宠物整体移除。

与 v1.2.4 完整版的差异

内容 v1.2.4 完整版 v1.2.4-lite(本版)
桌面宠物(窗口 / 动作 / 模型配色 / 帧率 / 大小 / 碎碎念 / 拖拽) ✅ ❌ 全部移除
桌面图标互动(吃掉 / 搬运 / 还回 / 恢复布局) ✅ ❌ 移除
悬停天气面板 + 穿衣提醒 + 彩云 token ✅ ❌ 移除
校园网认证 · 托盘 · 守护 · 多账号 · WiFi 自动连接 · 校时 · 网速 · 一键诊断 · 门户自检 · 通知中心 · 唤醒重认证 · 自动修复 · 内存清理 · 通用门户 · 采集 · 向导 ✅ ✅ 全部保留
脚本行数 8355 4930
仓库文件数 3174 7
压缩包大小 158 MB 92.5 KB

本版变更

  • 删除 -Mode pet、-PetOff、-CaiyunToken 参数
  • 删除退出窗口的「只保留桌宠」选项,现在只有 完全退出 / 最小化
  • 删除 pet/ 素材 3164 个文件(约 157 MB)、tools/build-pet.py、docs/preview.png
  • settings.json 里遗留的 pet* / icon* 键不再被读取,留着也不影响运行
  • 修掉删减过程中 $script:TrayAliveAt 初始化被误删导致的 op_Subtraction 报错

还想要桌宠?

独立仓库 fotlim/desktop-pet v1.2.7 —— 渲染、物理、菜单和原来的完整版一致,可以单独跑。

下载

campus-net-1.2.4-lite.zip(92.5 KB)—— 解压双击 connect.bat。

v1.2.4

Choose a tag to compare

@fotlim fotlim released this 18 Oct 14:40

去掉「整理图标」

  • 随机事件(拖到图标上 / 溜达到图标上)不再重排整个桌面,只保留 吃掉 和 搬运,不动的图标一个都不碰
  • 菜单「桌面图标互动」里的「整理图标」一项已删除,现在是 吃掉 / 搬运 / 立即还回 / 恢复上次布局

完整历史见 README 更新日志。

v1.2.3 内存清理(精简版 Mem Reduct)

Choose a tag to compare

@fotlim fotlim released this 18 Oct 11:19

campus-net v1.2.3

内存清理(精简版 Mem Reduct)

托盘右键新增「内存」子菜单,不装任何第三方软件:

项 说明
轻清 清自家托盘 / 守护 / 宠物进程的工作集,瞬间完成、免管理员;实测工作集 100 → 16 MB
系统清理 清 standby list(待机内存)+ 文件缓存;实测一次可用内存 +363 MB
全部清理 上面两样一起
内存紧张时自动清理 可用内存低于阈值才触发,触发后冷却时间内不重复;阈值 / 冷却就在菜单里 ± 调
自动清理时也清系统缓存 默认关;开了每次自动清理都顺带清 standby
  • 状态行直接显示 可用 xxxx MB / xxxx MB (xx%),清完立刻刷新
  • 自动清理触发时发通知,带清理前后的可用内存
  • 默认阈值 12%、冷却 10 分钟,菜单里可调(升 / 降 / 重置)
  • 免 UAC 提权任务:-Mode install 会注册计划任务 CampusNet-MemClean(最高权限);托盘点「系统清理」时如果当前权限被拒,自动改由它执行,不弹 UAC
  • 命令行也能用:Connect-CampusNet.ps1 -Mode memclean -Scope light|system|all

桌宠:新增开关「启动时自动拉起桌宠」

托盘右键 →「启动时自动拉起桌宠」勾选(默认开)。关掉后,开机 / 托盘重启不再自动弹出桌宠;需要时在「桌面宠物」里手动打开。

升级

解压覆盖(别动 settings.json / accounts.json),托盘退出再 connect.bat。

v1.2.2 24fps 桌宠 + 桌面图标互动 + 帧按需解码

Choose a tag to compare

@fotlim fotlim released this 18 Oct 06:58

campus-net v1.2.2

桌宠:24fps 全帧率

13 个动作 × 241 帧 / 10.04 秒,按素材原生 24fps 播放,不再靠插帧补顺。画布统一 318×200,切动作不缩放。

桌宠:桌面图标互动(新功能)

右键宠物 →「桌面图标互动」,也可以把宠物拖到图标上触发:

事件 行为
吃掉 图标挪到屏幕外,180 秒后自动回原位;同一时间只吃一个
搬运 自动关掉桌面「自动排列图标」,把图标丢到随机网格位置
整理 竖向排列(先排满一列再排下一列),排法随机:名称/时间/大小 × 正序/倒序
  • 触发是概率的:拖上去 45%、溜达上去 25%,外加 45 秒冷却
  • 每次动手前记布局(icon-layout.json),菜单里可「恢复上次布局」「立即还回被吃掉的图标」
  • 关自动排列只能走注册表 FFlags bit0 + 重启一次资源管理器,第一次会弹框确认一次

桌宠:手感与性能

  • 动作切换:直接换帧,不再有交叉淡入(之前那版会出现「缩一下」)
  • 帧按需解码:点动作立即开始(不再先卡 1 秒解 241 帧),托盘内存 330 MB → 123 MB
  • 拖动/弹跳:高速移动时每帧都重画,移动中收起跟随面板,不再跳帧

其它

  • 托盘/守护逻辑不变;settings.json、accounts.json 等个人文件不在包里

升级

解压覆盖(别动 settings.json / accounts.json),托盘退出再 connect.bat。

v1.2.0 退出三选一 + 修二级菜单点不动

Choose a tag to compare

@fotlim fotlim released this 18 Oct 04:21

修了两个 bug + 一个退出体验

1. 退出程序窗口时三选一

菜单 0) 退出 现在先弹框,不再一刀切:

选择 效果
完全退出程序 停托盘、停守护、停桌宠(开机自启还留着,下次登录会自己起来)
只保留桌宠 停托盘和守护,单独拉一个隐藏的桌宠进程,窗口关掉它也不走
最小化程序 窗口收进任务栏,托盘 / 守护 / 桌宠照常跑
取消(Esc) 回到菜单

「只保留桌宠」跑的是独立进程,所以关窗口不连带;托盘右键的「退出托盘」也会顺手把它停掉,不留孤儿进程。

2. 修:右键菜单里二级菜单的项点了没反应(重要)

v1.1.7 加的「点菜单外自动关闭」守卫是按下鼠标就收,而二级菜单天生画在父菜单矩形之外 —— 于是按下 48Hz 的那一瞬间菜单就被关掉,Click 根本没跑到。

表现就是「帧率改成 48Hz 完全没生效」,日志里连一行 宠物帧率: 48Hz 都没有。受影响的是所有二级菜单项:帧率 / 大小 / 字号 / 透明度 / 信息框尺寸 / 动作 / 随机间隔 / 随机表情包 / 手感 / 弹性 / 摩擦 / 随机触发 / 气泡时长。

  • 现在改成松手之后再判断该不该收(PetMenuDown 标记),并新增 Test-PetMenuPoint:判断「在不在菜单里」时把还开着的二级、三级菜单一起算
  • 外面点一下照样会收起(实测:按下时菜单还在,松开后 False)
  • 实测用合成鼠标点击打在真实菜单上:帧率 → 48Hz → petFps=48、日志 宠物帧率: 48Hz;动作 → 挥手、碎碎念 → 气泡时长 → 8 秒 也都点得动了

3. 修:菜单里的勾不跟着设置变

菜单只在宠物启动时建一次,勾选是建的时候算死的,所以改完设置再打开菜单,勾还停在旧值上。现在每一项都登记了「怎么判断该不该打勾」,每次弹出前按最新设置重算(一次读取 settings.json),真改了值会写日志 宠物菜单勾选已按最新设置重算(N 项变化)。


顺带包含 v1.1.6 ~ v1.1.9 的改动

上一个正式发布是 v1.1.5,这个包把中间几次也一起带上了:

  • v1.1.9:「随机动作间隔」并入 动作 二级菜单;碎碎念拆成 自动碎碎念 开关 + 随机触发(关 / 频繁 310 分 / 一般 1030 分 / 偶尔 3090 分,每次重新随机)+ 气泡时长(随机 26 秒 / 3 / 5 / 8)
  • v1.1.8:切帧率现在每帧自检并重建帧缓存;关窗口后自动把托盘拉回来;托盘 UI 异常兜底
  • v1.1.7:帧率档位(24 / 48 / 60Hz,插帧播放);摸头随机抽动作;菜单点外面自动关闭(见上面第 2 条的修正)
  • v1.1.6:移除微信 / QQ 推送;「悬浮面板尺寸」并入 信息框 子菜单

升级方式

下载 campus-net-1.2.0.zip 解压覆盖原目录(settings.json / accounts.json / portal.json 都不要动),然后右下角托盘右键 →「退出托盘」,重新双击 connect.bat(或者直接运行 connect.bat -Mode install 重装自启)。

只保留了脚本和素材,没有任何账号、设置、cookie、日志被打进包里(507 个文件,纯脚本 + pet 素材 + 文档)。

v1.1.5 — 微信/QQ 通知 + 悬浮面板可调

Choose a tag to compare

@fotlim fotlim released this 18 Oct 03:39

v1.1.5 — 微信 / QQ 通知 + 悬停面板可调

两件事:让事件能推到手机,让桌宠那个悬浮面板按你的喜好定尺寸。

新增:微信 / QQ 通知

个人微信、QQ 都没有官方"给某个号发消息"的接口,下面都是中转服务,凭据填在 push.json(本机文件,不进仓库)。

通道 推到哪 需要
serverchan 微信服务号 Server酱 SendKey(SCT…)
pushplus 微信 PushPlus token
wecom 企业微信群 群机器人 Webhook
onebot QQ(私聊/群) 自建 OneBot,如 http://127.0.0.1:3000/send_private_msg?user_id=123456
custom 任意 你自己的 webhook,POST {"title","content"}
.\Connect-CampusNet.ps1              # 菜单 → N) 微信 / QQ 推送设置
.\Connect-CampusNet.ps1 -Mode push   # 发一条自检,验证通不通
  • 每项回车 = 不变,- = 清空;多通道并行推送
  • 推送时机与系统通知一致:掉线 / 恢复在线 / 自动修复完成 / 唤醒后重认证失败 / 连续登录失败,沿用原有去重间隔,不刷屏
  • 修 PS 5.1 的 -Body 默认按 ASCII 发送,中文会变问号 —— 五个通道全部改成显式 UTF-8 字节发送

新增:悬浮面板长宽可调(文本自适应)

宠物右键 →「悬浮面板尺寸…」,填 宽,高(像素,0 = 自动):

设置 效果
0,0 按内容自适应(和以前一样)
320,0 固定宽,长文本按像素自动换行,高度跟着行数走
320,110 固定框,放不下的行截断加 …,不溢出
160,0 很窄时英文/数字不会被从中间劈开(能退到空格就退)

对应设置项 petOverlayW / petOverlayH;字号、透明度仍是 petOverlayFont / petOverlayOpacity。

一并包含(v1.1.3 / v1.1.4 未单独发版)

  • 新手向导(-Mode wizard / 菜单 G / 首次运行自动弹出):问一句"这个 WiFi 是不是校园网" → 不是就换名字 → 认门户 → 没命中就从门户页面现场生成配置
  • 采集诊断包(-Mode collect / collect.bat / 菜单 C):给远程的朋友用,报告自动进剪贴板,门户 HTML + JS 打包发回
  • 天气:位置到省/市/区县,数据源换成彩云天气(可填 token),新增穿衣提醒

升级方式

解压覆盖原目录即可。collect.bat 是新文件,一起放进去。

SHA256(campus-net-v1.1.5.zip):DAAD6A465BBD8DD845190D21B84F880D9592E291377B2B8CF04F5BDDCE74BDBE

v1.1.3 — 新手向导:问一句 + 自动认门户

Choose a tag to compare

@fotlim fotlim released this 18 Oct 03:21

v1.1.3 — 新手向导:问一句 + 自动认门户

这次加的是「第一次用」的体验:不用先懂协议,程序自己问、自己认、自己写配置。

新增:新手向导

三个入口,同一个流程:

  • 第一次运行(settings.json / accounts.json / portal.json 都还没有)时自动弹出
  • 菜单里按 G
  • 命令行 -Mode wizard

流程:

步骤 做什么
① 问 WiFi 「当前这个 WiFi 是校园网 / 需要自动认证的吗?」
答 是 → 目标 SSID 就设成当前这个
答 否 → 让你填真正要连的名字,顺手写好「目标 WiFi + 自动连接」
② 问账号 一个账号都没有时顺便录入(DPAPI 加密保存)
③ 认门户 复刻"浏览器自动弹认证页":HTTP 302 → 网关(80/8080)→ HTTPS 劫持页,三路都试
④ 出配置 命中内置预设(Dr.COM / 天翼 / 深澜 / 锐捷 / 通用表单)直接套用;没命中就现场生成
⑤ 收尾 可选试登录一次;可选装开机自启

没命中预设时,现场生成的原理

抓门户 HTML → 找含 password 的 <form> → 抠出:

  • action 当登录接口,method 当提交方式
  • 账号字段名、密码字段名
  • 隐藏字段(如 wlanuserip、service)原样带上

拼成模板:

wlanuserip=10.1.2.3&service=internet&username={user}&password={pwd}

再看页面里有没有 md5( / rc4 / base64,据此猜加密方式。生成结果存成 id=custom,成功判定留空(以真实连通性为准),随时可以用 -Mode portal 查看或修改。

验证:起了一个「隐藏字段 + md5 密码」的假门户,用自动生成的配置去登录 —— 服务端四项断言(账号、md5 密码、wlanuserip、service)全部通过,判定登录成功。

边界(说清楚)

  • 需要我先输对账号密码才显示表单的门户,向导抓不到字段 —— 会提示你改用 -Mode collect 或浏览器 F12 → Copy as cURL
  • 带图形验证码的门户,自动生成也没法全自动(验证码得人看)
  • 猜的加密方式可能不对;不对就照 -Mode portal 里的字段改一个值重试

升级方式

解压覆盖原目录即可。想立刻试向导:.\Connect-CampusNet.ps1 -Mode wizard

SHA256(campus-net-v1.1.3.zip):217A51584F46ED52E390C6062FD5300BBA0E43E2698EAFAABBFC090DA5A11884

v1.1.2 — 远程适配采集包

Choose a tag to compare

@fotlim fotlim released this 18 Oct 03:01

v1.1.2 — 远程适配采集包

这版解决一个很实际的问题:朋友在别的学校、人不在你旁边,怎么把他的门户摸清楚。

新增:一键采集诊断包

三种入口,效果一样:

.\Connect-CampusNet.ps1 -Mode collect
  • 双击 collect.bat(新文件)
  • 菜单里按 C

跑约 20 秒,输出:

段 内容
无线 当前 SSID / 状态 / 脚本目标 SSID / 可见网络
地址 本机 IP、网关、DNS、代理环境变量
探测 联网判定、HTTP 302 门户地址、网关 80·8080、HTTPS 劫持页标题 + 页面里的域名
识别 门户指纹 + 运营商线索(电信 / 移动 / 联通)
门户页 门户 HTML portal-1.html + 同站 JS 最多 8 个

产物:

  • collect-<时间>.txt —— 报告,同时自动复制到剪贴板,对方直接粘贴就能发出来
  • collect-<时间>.zip —— 抓回来的门户页和 JS(登录字段与加密算法就在里面)

包里不含账号密码,只有网络信息和门户页面,可以放心转发。
顺序很重要:必须在他还没在浏览器里登录的时候采 —— 一旦认证过,门户就不再劫持,采集会是空的。

修

  • 采集同站脚本时改用 %{url_effective} 作基准解析相对路径。之前 ../share/xxx.js 会拼错,抓回来的是同一个 404 页面(实测现在能拿到真正的 lang_Hash.js 9.4 KB、index.js 38 KB)

文档

  • 新增「远程适配」一节:采集顺序、F12 → Network → Copy as cURL 的精确抓法、Windows 快速助手(Win+Ctrl+Q)远程协助
  • 顺手把上两版的变更也补齐在更新日志里(代理干扰、诊断三项、token 两步、JSON 体、天翼)

升级方式

解压覆盖原目录即可。collect.bat 是新文件,记得一起放进去。

SHA256(campus-net-v1.1.2.zip):F2BFC138F9930D663CFCBA2E2943A6AC0AE49DF24EC21F83A453D329FC168F0E

v1.0.1 — 支持天翼校园网 + 自动识别门户

Choose a tag to compare

@fotlim fotlim released this 17 Oct 14:21

v1.0.1 — 支持天翼校园网 + 自动识别门户

小改版:把「只认 Dr.COM」扩成「认得出好几家」,顺手把广东电信天翼校园网(宿舍区那种)接上。

新增

  • 广东电信天翼校园网(esurfing 预设)
    走客户端协议,不是网页表单:queryschool → advertisement.do → vchallenge → client/login,全 JSON + 大写 MD5 签名(密钥 Eshore!@#)。
    服务端下发的 challenge 原样回填即可,不需要识别图形验证码,所以能无人值守。
    clientip / nasip 自动从门户 302 跳转地址里取;MAC 按 IP 反查网卡,NAT/前置路由时退回默认路由出口网卡的 MAC。
  • 自动识别门户
    复刻「连上就弹认证页」那一下:探一次外网地址,拿 302 的 Location,看地址就认得出 Dr.COM / 天翼 / 深澜,然后把 portal.json 改对。
    入口:-Mode portal -AutoPortal(认一次并写回)、-Mode portal -DetectPortal(只看不改)、菜单 O) 输入 auto。
    登录失败时也会自动试一次(仅当确实被劫持,纯断网不折腾),变了就换配置重试,改动写日志。
  • 天翼现场勘查:一条命令打印 clientip / nasip / mac / queryschool / vchallenge 原始返回(不含密码),附 rescode 对照表。

修正

  • portal.json 只写当前协议用得上的字段,不再留一堆 null
  • 登录失败后的日志更明确(区分「被劫持但配置不对」和「网络整个不通」)

文档

  • 说明 WiFi 名字与门户识别无关:young / wo / CIT-Chinanet / GDGM-S 只是 SSID,判断依据永远是 302 到哪个门户
  • 说清 802.1X(教学区那种企业级 WiFi)不属于本脚本范围

验证情况

项 结果
天翼四步签名 本地 mock 服务端独立重算 MD5,三步 sign=True、rescode 0 判成功
自动识别 假 302 实测:正确识别天翼并把 portal.json 从 drcom 切到 esurfing
Dr.COM 回归 真实门户强制重登 登录成功: logon success

天翼链路目前是假服务器验证,还没在真实的工贸/天翼网络里跑过。到那边先跑 -Mode portal -DetectPortal,把五行输出(不含密码)发 issue 就能确认 version / iswifi / MAC 格式这几个参数。

升级方式

解压覆盖原目录即可(脚本会读 portal.json / accounts.json;老版本没有 portal.json 会自动补 Dr.COM 默认值)。包内不含任何账号、日志、Cookie。

SHA256(campus-net-v1.0.1.zip):37D274A83EAB35E2DEBC68F80559E60673745AD618408A86C6E629FC399F7F10

v1.0.0 — 校园网自动认证(通用版)

Choose a tag to compare

@fotlim fotlim released this 17 Oct 13:25

一个带托盘、开机自启、多账号、WiFi 自动连接、网速监控、一键诊断、自动修复、通知中心、桌面宠物的校园网自动认证脚本。

下载

campus-net-v1.0.0.zip 解压到任意目录,双击 connect.bat 即可(需要 Windows 10/11 自带的 PowerShell 5.1 与 curl.exe)。

功能

  • 认证:Dr.COM / 通用表单 双模式,门户差异走 portal.json 配置(RC4 / MD5 / SHA1 / Base64 / 明文)
  • 保活:后台守护每 30 秒检测,掉线自动重连;休眠唤醒后立刻补认证
  • WiFi:启动即连目标 SSID,列表自动刷新,开放网络缺配置自动补
  • 账号:多账号 DPAPI 加密保存、切换、改密码(先真发一次请求验证)
  • 自愈:连续失败按阶梯修复(刷 DNS → 清 Cookie → 重连 WiFi → 校时 → 重置网卡)
  • 诊断:13 项一键体检,发现问题自动尝试修复并落盘报告
  • 通知:Win10/11 通知中心 Toast,带「立即登录 / 打开菜单 / 查看日志」按钮
  • 桌宠:24fps 分层窗口渲染,拖拽抛掷物理、随机走动/动作/表情包/碎碎念、悬停显示网速+天气+音乐控制

说明

  • 你的账号密码只以 DPAPI 加密形式保存在本机 accounts.json,不会上传任何地方
  • 桌宠素材来自 dsh-pet(MIT),见 pet/NOTICE.txt
  • 仅供本人账号在本人学校网络使用

详见仓库 README。