{"id":18264598,"url":"https://github.com/cheanus/selectcourseeasily","last_synced_at":"2025-04-09T01:32:49.377Z","repository":{"id":153732849,"uuid":"613427673","full_name":"cheanus/SelectCourseEasily","owner":"cheanus","description":"根据你提供的课程代码，自动排出可行课表，适用于西工大选课","archived":false,"fork":false,"pushed_at":"2023-12-20T16:35:16.000Z","size":662,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-14T19:51:56.130Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cheanus.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-03-13T14:50:30.000Z","updated_at":"2023-12-06T03:59:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"8f617d61-e4a1-4274-99b2-7d9ae56aed69","html_url":"https://github.com/cheanus/SelectCourseEasily","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheanus%2FSelectCourseEasily","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheanus%2FSelectCourseEasily/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheanus%2FSelectCourseEasily/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheanus%2FSelectCourseEasily/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cheanus","download_url":"https://codeload.github.com/cheanus/SelectCourseEasily/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247956974,"owners_count":21024628,"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-11-05T11:15:19.438Z","updated_at":"2025-04-09T01:32:49.355Z","avatar_url":"https://github.com/cheanus.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SelectCourseEasily\n根据你提供的课程代码，自动排出可行课表，适用于西工大\n## 示例图\n![自动生成课表](assets/course_table.jpg \"自动生成课表\")\n## 环境要求\n- jupyter\n- python 3.10及以上版本  \n- 依赖库安装：\n  ```bash\n  pip install numpy pandas requests lxml gurobipy\n  ```\n## Features\n- 傻瓜式步骤：输入信息，输出课表\n- 选课条件：自动过滤不符合选课条件的课程\n- 多解：可根据需要列出多个可行的课表\n- 自定义规则：支持不选早八、少早八、没有周末课等规则\n- 速度：调用gurobipy优化库，极致求解速度，~~仅受限于瓜大服务器带宽~~\n- 安全：脚本代码开源，无恶意代码\n## 使用步骤\n1. 克隆本项目\n2. 打开main.ipynb\n3. 根据文字提示填写信息，运行求解\n4. 喝杯☕，欣赏课表，享受不被琐事耽误的青春时光\n## FAQs\n- **模拟登陆是如何实现的？为什么需要我的安全邮箱信息？**  \n  为得到教务系统的课程信息，程序需要模拟登陆你的教务系统，拿到cookie。翱翔门户目前采用了双因子验证，可以通过安全邮箱获取验证码实现登陆程序，以下是简化的代码逻辑：  \n  1. 使用账号、密码（或cookie）尝试登陆翱翔门户\n  2. 若密码正确但cookie验证失败，此时申请服务器发送验证码邮件\n  3. 使用IMAP协议对邮箱收件箱扫描3次，抓取验证码，随后删除邮件\n  4. 发送验证码，完成模拟登陆，将cookie文件保存至本地\n- **安全邮箱有什么限制？授权码如何获取？**  \n  首先，目前脚本**暂仅支持qq邮箱**；其次，你需要打开qq邮箱的IMAP协议，步骤如下：  \n  1. 打开[网页版qq邮箱](https://mail.qq.com)\n  2. 找到设置-账户-IMAP/SMTP服务，开启服务\n  3. 点击下方的生成授权码\n- **使用gurobipy库需要许可证吗？**  \n  在不安装许可证的情况下，你可以使用免费版，一般来说能够满足日常需求。你也可以安装对学生免费的教育版，更多信息请参考[Gurobi官网](https://www.gurobi.com/)和[Gurobi中文网](http://www.gurobi.cn/)。\n## 未来工作\n- [ ] 添加手动输入验证码的登陆方式\n- [ ] 重构代码\n## 最后\n本项目仍有诸多不完善之处，欢迎大家通过issue反馈，未来我会抽空不断完善。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheanus%2Fselectcourseeasily","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcheanus%2Fselectcourseeasily","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheanus%2Fselectcourseeasily/lists"}