{"id":20881968,"url":"https://github.com/nianbroken/zfcheckscores","last_synced_at":"2025-04-12T20:47:10.587Z","repository":{"id":218254947,"uuid":"745945728","full_name":"NianBroken/ZFCheckScores","owner":"NianBroken","description":"正方教务管理系统每隔 30 分钟自动检测一次成绩是否有更新，若有更新，将通过微信推送及时通知用户。| 正方教务系统 | 成绩推送 | 显示成绩提交时间 | 显示成绩提交人姓名 | 成绩信息按时间降序排序 | 计算 GPA | 计算百分制 GPA | 显示未公布成绩的课程","archived":false,"fork":false,"pushed_at":"2025-03-19T14:29:40.000Z","size":19941,"stargazers_count":190,"open_issues_count":0,"forks_count":90,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-12T20:46:43.204Z","etag":null,"topics":["actions","python","workflows"],"latest_commit_sha":null,"homepage":"https://nianbroken.github.io/ZFCheckScores/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NianBroken.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-01-20T16:19:02.000Z","updated_at":"2025-03-19T14:29:44.000Z","dependencies_parsed_at":"2024-01-30T00:30:09.964Z","dependency_job_id":"efc4e945-8129-4122-ab9b-8a24f2a35423","html_url":"https://github.com/NianBroken/ZFCheckScores","commit_stats":null,"previous_names":["nianbroken/fzcheckscores","nianbroken/zfcheckscores"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NianBroken%2FZFCheckScores","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NianBroken%2FZFCheckScores/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NianBroken%2FZFCheckScores/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NianBroken%2FZFCheckScores/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NianBroken","download_url":"https://codeload.github.com/NianBroken/ZFCheckScores/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631718,"owners_count":21136559,"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":["actions","python","workflows"],"created_at":"2024-11-18T07:28:28.032Z","updated_at":"2025-04-12T20:47:10.551Z","avatar_url":"https://github.com/NianBroken.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 正方教务管理系统成绩推送\n\n\u003cimg src=\"https://raw.githubusercontent.com/NianBroken/ZFCheckScores/main/img/7.jpg\" style=\"zoom:60%;\" /\u003e\n\n## 简介\n\n**使用本项目前：**\n\n早晨睡醒看一遍教务系统、上厕所看一遍教务系统、刷牙看一遍教务系统、洗脸看一遍教务系统、吃早餐看一遍教务系统、吃午饭看一遍教务系统、睡午觉前看一遍教务系统、午觉醒来看一遍教务系统、出门前看一遍教务系统、吃晚饭看一遍教务系统、洗澡看一遍教务系统、睡觉之前看一遍教务系统\n\n**使用本项目后：**\n\n成绩更新后**自动发通知到微信** 以节省您宝贵的时间\n\n## 测试环境\n\n正方教务管理系统 版本 V8.0、V9.0\n\n如果你的教务系统页面与下图所示的页面**完全一致**或**几乎一致**，则代表你可以使用本项目。\n\n\u003cimg src=\"https://raw.githubusercontent.com/NianBroken/ZFCheckScores/main/img/9.png\" style=\"zoom:60%;\" /\u003e\n\n## 目前支持的功能\n\n1. 主要功能\n\n   1. 每隔 30 分钟自动检测一次成绩是否有更新，若有更新，将通过微信推送及时通知用户。\n\n2. 相较于教务系统增加了哪些功能？\n\n   1. 显示成绩提交时间，即成绩何时被录入教务系统。\n   2. 显示成绩提交人姓名，即成绩由谁录入进教务系统。\n   3. 成绩信息按时间降序排序，确保最新的成绩始终在最上方，提升用户查阅效率。\n   4. 计算 `GPA`\n   5. 计算百分制 `GPA`\n   6. 对于没有分数仅有级别的成绩，例如”及格、良好、优秀“，可以强制显示数字分数。\n   7. 显示未公布成绩的课程，即已选课但尚未出成绩的课程。\n\n## 使用方法\n\n### 1. [Fork](https://github.com/NianBroken/ZFCheckScores/fork \"Fork\") 本仓库\n\n`Fork` → `Create fork`\n\n### 2. 开启 工作流读写权限\n\n`Settings` → `Actions` → `General` → `Workflow permissions` →`Read and write permissions` →`Save`\n\n### 3. 添加 Secrets\n\n`Settings` → `Secrets and variables` → `Actions` → `Secrets` → `Repository secrets` → `New repository secret` → `Add secret`\n\n\u003e Name = Name，Secret = 例子\n\n\u003e 程序会自动填充 `URL` 尾部的 `xtgl/login_slogin.html`，因此你无需重复添加\n\n| Name     | 例子                   | 说明                                                                      |\n| -------- | ---------------------- | ------------------------------------------------------------------------- |\n| URL      | https://www.klaio.top/ | 教务系统地址                                                              |\n| USERNAME | 2971802058             | 教务系统用户名                                                            |\n| PASSWORD | Y3xhaCkb5PZ4           | 教务系统密码                                                              |\n| TOKEN    | J65KWMBfyDh3YPLpcvm8   | [Showdoc 的 token](https://push.showdoc.com.cn/#/push \"Showdoc 的 token\") |\n\n### 4. 开启 Actions\n\n`Actions` → `I understand my workflows, go ahead and enable them` → `CheckScores` → `Enable workflow`\n\n### 5. 运行 程序\n\n`Actions` → `CheckScores` → `Run workflow`\n\n_若你的程序正常运行且未报错，那么在此之后，程序将会每隔 30 分钟自动检测一次成绩是否有更新_\n\n_若你看不懂上述使用方法，你可以查看[详细使用方法](https://nianbroken.github.io/ZFCheckScores/ \"详细使用方法\")_\n\n## 程序逻辑\n\n1. 清空文件 B 中的内容\n2. 将文件 A 中的内容写入到文件 B\n3. 清空文件 A 中的内容\n4. 将获取到的成绩进行 MD5 加密\n5. 将加密后的成绩写入到文件 A\n6. 比对文件 A 与文件 B 的内容是否一致\n7. 若一致则表示成绩未更新，若不一致则表示成绩已更新\n\n_若是第一次运行程序，上述步骤会执行两遍_\n\n## 许可证\n\n`Copyright © 2024 Klauthmos. All rights reserved.`\n\n本项目采用 [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0 \"Apache-2.0\") 许可证。简而言之，你可以自由使用、修改和分享本项目的代码，但前提是在其衍生作品中必须保留原始许可证和版权信息，并且必须以相同的许可证发布所有修改过的代码。\n\n## 特别感谢\n\n[openschoolcn/zfn_api](https://github.com/openschoolcn/zfn_api \"openschoolcn/zfn_api\")\n\n## 最便宜的 VPN\n\n[https://nianbroken.github.io/Great-Firewall/](https://nianbroken.github.io/Great-Firewall/ \"https://nianbroken.github.io/Great-Firewall/\")\n\n## 其他\n\n欢迎提交 `Issues` 和 `Pull requests`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnianbroken%2Fzfcheckscores","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnianbroken%2Fzfcheckscores","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnianbroken%2Fzfcheckscores/lists"}