{"id":13618352,"url":"https://github.com/robertying/learnX-companion","last_synced_at":"2025-04-14T10:31:34.285Z","repository":{"id":65784194,"uuid":"587955255","full_name":"robertying/learnX-companion","owner":"robertying","description":"清华大学网络学堂 App 助手，为 learnX 提供个性化的推送通知支持。","archived":false,"fork":false,"pushed_at":"2024-04-30T07:43:51.000Z","size":1653,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-31T19:06:59.532Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://tsinghua.app/learnX-companion","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robertying.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-12T01:17:09.000Z","updated_at":"2024-09-08T15:38:38.000Z","dependencies_parsed_at":"2023-03-10T19:04:54.988Z","dependency_job_id":"95f10de5-a43d-4027-83d9-1807d1423c46","html_url":"https://github.com/robertying/learnX-companion","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertying%2FlearnX-companion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertying%2FlearnX-companion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertying%2FlearnX-companion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertying%2FlearnX-companion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robertying","download_url":"https://codeload.github.com/robertying/learnX-companion/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248862657,"owners_count":21173851,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T20:01:59.366Z","updated_at":"2025-04-14T10:31:32.890Z","avatar_url":"https://github.com/robertying.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"./docs/assets/logo.png\" alt=\"logo\" width=\"192\" height=\"192\" /\u003e\n\n\u003ch1\u003elearnX Companion\u003c/h1\u003e\n\n清华大学网络学堂 App 助手，为 \u003ca href=\"https://tsinghua.app/learnX\" target=\"_blank\" rel=\"noopener noreferrer\"\u003elearnX\u003c/a\u003e 提供个性化的推送通知支持。\n\n\u003e 需要 v14.0.0 及以上版本的 learnX 应用。\n\u003e\n\u003e 暂仅支持 iOS/iPadOS 与 macOS 的推送通知，不支持 Android。\n\n\u003ca href=\"https://github.com/robertying/learnX-companion/releases\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/robertying/learnX-companion?color=brightgreen\" alt=\"GitHub release (latest SemVer)\" height=\"20\" width=\"auto\"\u003e\u003c/a\u003e\n\n\u003cimg src=\"./docs/assets/screenshot-main.png\" alt=\"app screenshot\" height=\"832\" width=\"512\" /\u003e\n\n\u003c/div\u003e\n\n## 下载\n\n👉 [GitHub Releases](https://github.com/robertying/learnX-companion/releases)\n\n\u003e 注意：\n\u003e\n\u003e GUI 桌面应用支持 macOS (Apple Silicon \u0026 Intel)、Linux (amd64) 以及 Windows (x64)。\n\u003e\n\u003e 其它环境可使用 Docker Image (linux/amd64)，详见[高级](#高级)。\n\n## 反馈\n\n如有问题，请提交 [GitHub Issues](https://github.com/robertying/learnX-companion/issues)。\n\n## 使用\n\n\u003e 注意：\n\u003e\n\u003e 此功能需要配合 v14.0.0 及以上版本的 learnX 应用使用。\n\u003e\n\u003e 暂仅支持 iOS/iPadOS 与 macOS 的推送通知，不支持 Android。\n\n1. 打开 learnX Companion 应用（Windows 下运行安装程序后应用会自动启动）。应用启动后，会自动最小化至菜单栏（macOS）或托盘（Windows）。在菜单栏（macOS）或托盘（Windows）找到 “X” 图标并点击，选择“打开 learnX Companion” 进入主界面。\n2. 点击“登录”按钮，进入设置界面。\n\n   \u003cimg src=\"./docs/assets/screenshot-settings.png\" alt=\"settings screenshot\" height=\"832\" width=\"512\" /\u003e\n\n3. 输入用户名/学号以及密码。\n\n4. 在需要接收推送通知的设备上打开 learnX 应用，进入“设置”-“推送通知”页面。确保 learnX 具有推送通知权限后，可在此页面看到推送所需的设备标识符，点击“复制设备标识符”可将字符串复制到剪贴板。点击 learnX Companion 设置界面的“添加设备”按钮，将复制的设备标识符加入推送列表。\n\n5. 如果需要在多个设备上同时接收推送通知，对每个设备重复以上步骤。\n\n6. 填写完用户名/学号和密码，添加完设备的标识符后，点击“保存”按钮保存设置。\n\n7. 在主界面中，来自已勾选课程的内容更新将被推送，未勾选课程的更新不会被推送。\n\n8. 完成设置后，可关闭窗口。此时 learnX Companion 将在后台运行：定期获取网络学堂数据，并将内容更新推送到已添加的设备。\n\n\u003e 注意：\n\u003e\n\u003e learnX Companion 将用户名/学号与密码明文保存在本地文件中。\n\u003e\n\u003e 如选择使用此应用，请自行维护本地数据的安全。\n\n## 高级\n\nGUI 应用会在后台运行以获取最新的网络学堂数据。这意味着当运行 learnX Companion 的设备关机时，推送通知会停止。\n\n如果你希望 24 小时都能使用推送通知，推荐通过 Docker 在服务器（或任何不常进入休眠/关机状态的设备）上运行 learnX Companion。\n\n1. 根据[使用](#使用)中提到的步骤完成 GUI 应用的设置后，在“设置”界面的“高级”部分中，点击“定位配置文件”。\n\n   你也可以直接参考如下示例配置：\n\n   ```json\n   {\n     \"username\": \"xxx\",\n     \"password\": \"yyy\",\n     \"deviceTokens\": [\"zzz\"],\n     \"excludedCourses\": []\n   }\n   ```\n\n2. 将配置文件复制到运行 Docker 的设备上，运行：\n\n   ```bash\n   docker run -d --name learnx --restart unless-stopped -v /some/absolute/path/config.json:/app/config.json robertying/learnx-companion:latest\n   ```\n\n   请将 `/some/absolute/path/config.json` 替换为配置文件在宿主机上的**绝对**路径，如：\n\n   ```bash\n   docker run -d --name learnx --restart unless-stopped -v /home/yr16/config.json:/app/config.json robertying/learnx-companion:latest\n   ```\n\n3. 可通过 `docker logs learnx` 查看运行日志。\n\n4. 配置文件为 JSON 格式，可以自行理解并编辑，更改配置本质上不需 GUI 应用。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertying%2FlearnX-companion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobertying%2FlearnX-companion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertying%2FlearnX-companion/lists"}