Bixilon/UniThen

GitHub: Bixilon/UniThen

一款轻量、无广告、无追踪器的 Android 应用,用于替代臃肿的 UniNow 官方应用以快速完成课程 QR code 签到。

Stars: 1 | Forks: 0

# UniThen ![Logo](https://static.pigsec.cn/wp-content/uploads/repos/cas/66/66c988398db14b07a89e77e5e24fefc33205782ee8d6a843b6917c6355b5774c.svg) ![](https://shields-io.bixilon.de/f-droid/v/de.bixilon.unithen?style=for-the-badge&logo=fdroid) ![](https://shields-io.bixilon.de/gitlab/v/release/bixilon/unithen?branch=master&gitlab_url=https%3A%2F%2Fgitlab.bixilon.de&style=for-the-badge) 这款 Android 应用程序用于为 [UniNow](https://uninow.com/) 课程进行 QR code 签到(以及其他一些功能)。 它可以用于由其托管的任何数字预订系统 (DBS),例如 [ZHS München](https://kurse.zhs-muenchen.de)。 本应用**未**与预订系统的提供商/开发者 UniNow GmbH 存在任何附属关系。 如果*此*应用出现问题,请联系[我](https://bixilon.de),而不是 UniNow。他们无法也不会为您提供帮助。 ## 功能 - 支持多个站点和账户 - QR code 签到(展示和扫描) - 列出课程/预约 - 速度极快,无广告,无追踪器 - 简单且体积小(约 4MB;大部分体积来自于 [zxing-cpp](https://github.com/zxing-cpp/zxing-cpp) 的 QR code 扫描功能) - 完全离线(仅需认证一次) ## 下载 [从 F-Droid 获取](https://f-droid.org/packages/de.bixilon.unithen) 最新版本发布在 [gitlab releases](https://gitlab.bixilon.de/bixilon/unithen/-/releases) 和 [F-Droid](https://f-droid.org/packages/de.bixilon.unithen) 上。F-Droid 的构建是可复现的, 并且也使用我的密钥进行了签名 (SHA512: `f44dcdebfb54333fa205ff11eaa5aa1f47cde8217dd63a9fd979cd1fcf6d4241`)。推荐通过 F-Droid 下载,这样您就无需担心更新问题。 (目前此应用仅支持 Android 9+)。 这里有一个 [GitHub 镜像](https://github.com/Bixilon/UniThen)。它仅用于代码保留,请勿在此处报告问题或提交 pull request。 ## 截图 | **课程概览** ![Course overview](https://static.pigsec.cn/wp-content/uploads/repos/cas/c6/c67563f3b44df5e88cc1f3726061653275e5b5d4b3f8471091f1eecfecc44eb2.png) | **QR Code 签到** ![QR Code](https://static.pigsec.cn/wp-content/uploads/repos/cas/b0/b0d38568ed977b1e002400333ddf1783ae702a5c2603bd5e8fc00d61381c4691.png) | |:-----------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------:| | **参与者列表** ![QR Code](https://static.pigsec.cn/wp-content/uploads/repos/cas/99/99909262eaaba5b9ec406d437e5372c39ac2e8bc7d3b8eda3a4ca1307f8d40e4.png) | **QR Code 扫描** ![Scanning](https://static.pigsec.cn/wp-content/uploads/repos/cas/34/34bd42dceb6824e0d6f439fce9469e05fc4bba61d193b2bbaebc393db13e20b6.png) | ## 原因 其实,原来的 [UniNow 应用](https://play.google.com/store/apps/details?id=de.mocama.UniNow) 还不错(努力做到隐私友好,支持离线使用),但确实有几点让我很困扰: 完成简单的任务需要大量的用户交互(例如,当我想出示签到票据时): 打开应用 -> (等待) -> 不,我对改进应用不感兴趣 -> (必须看广告) -> My Studies -> ZHS -> (等待) -> 找到课程 -> (等待) -> 向下滚动 -> QR Code -> (等待) 而且,我不希望手机里有任何我并非必需且非开源*的东西。 如果 UniNow 的相关人员看到这个,请在封禁此应用**之前**与我联系。我无意(通过此应用)损害你们的利益。 ## 底层原理 (一切尽可能保持简单) - 使用 Webview 加载 UniNow 网站并嗅探(及存储) cookie - 获取用户和页面详细信息,并从 html 中提取它们(这可以通过专门的 GraphQL 查询来改进;但显然目前并不存在) - 通过 GraphQL 获取课程和预约 ([Schema](./doc/UniNow.graphql)) - 将所有内容存储在您设备的 SQL 数据库中 - QR code 扫描:所有注册用户的本地副本,用于离线同步的队列,以及用于搜索的 [fts4](https://www.sqlite.org/fts3.html)(实际上有点复杂) ## 出现故障 请提交一个 [issue](https://gitlab.bixilon.de/bixilon/unithen/-/issues)(您必须先注册一个账户),或者发一封简短的邮件到 `bixilon [a.t] bixilon [dot.] de`。我也欢迎任何反馈(无论正负):smile: 每个使用场景都不同,我的场景只是为体育课程签到,而且基本可以离线完成。 ## 发布(写给自己的备忘) IntelliJ 会破坏可复现构建,请使用以下方式构建: 1. 更新 `app/build.gradle.kts` 中的 version code 2. 创建 fastlane 更新日志 3. 使用版本信息更新 fdroid.txt(然后 fdroid 会自动构建并部署它) 4. `git tag v1.2.3 -a`(提供更新日志) 5. `./gradlew app:assembleRelease` 6. `apksigner sign --ks ~/Dokumente/androidkey.jks --alignment-preserved app-release-unsigned.apk` (`app/build/outputs/apk/release/app-release-unsigned.apk`) 7. 在 lipstick 中创建 package(名称:`apk`,版本:`1.2.3`,文件名:`app-release.apk`) 8. `git push v1.2.3` 并使用 package 创建发布
标签:Android应用, 二维码, 后台面板检测, 开源, 日程管理, 校园服务, 轻量级应用