zhongxinghong / PKUAutoElective

北大选课网补退选阶段自动选课小工具
MIT License
668 stars 231 forks source link

功能建议:成功选课通知功能 #36

Open MapleCatalpa opened 4 years ago

MapleCatalpa commented 4 years ago

Check List

=== 又到一年选课季,虽然离补退选时间还早,不过我想现在早点提出来可能补退选的时候就已经更新了( 那个比较经典的chrome插件刷课机我们都知道是有一个选课成功通知功能的,但是这个python刷课机是没有这项功能的,想知道有没有成功选上课必须进入选课网查询(还是有别的简单方式可以知道?),但是不知道在刷课进程运行过程中通过其他终端或浏览器进入选课网会不会导致刷课机故障。因此建议能够追加一个成功选课通知功能,可以是最简单的选课成功就新建一个文件记录成功选上的课程,也可以是用各个系统自带的通知功能(比如Windows 10 的操作中心通知)。当然如果考虑到为了保证刷课机的电力供应,上课时会把电脑放在宿舍,如果实现比较简单的话,还可以有一个成功选课邮箱通知功能~

Lester-Peking-University commented 4 years ago

选课网可以直接看,不会跟刷课机冲突

Yixuan-Wang commented 4 years ago

如果实现比较简单的话,还可以有一个成功选课邮箱通知功能~

我在自己的分支里写了一个邮箱通知功能,发送邮件的过程已经测试过了,但还没有在真实条件下进行过测试。

另外,曾经有一个 PR #27 通过 server_chan 提供微信通知,但为了解耦没有合并进来,现在源分支好像已经没有了

zhongxinghong commented 4 years ago

其实我很早以前就提供了一个监控线程,你可以在运行的时候加上参数 -m,这样会把一个 flask 的监控服务器绑定到 config.ini 里指定的 (host, port)

我的很多朋友会选择把这个项目挂自己的服务器上,如果你有这条件的话,可以在服务器上运行这个项目,并且开启这个监控线程,然后用 nginx 之类的做一下反向代理,把 flask 的监控服务器绑到一个 location 上,然后你在外网访问这个 location 就可以看到运行状况,里面有足够的信息让你判断当前的选课情况以及两个 loop 的运行情况

更多的细节可以看一下 README

这个方案可能需要一定的条件,更加大众的方案目前还没有 :(

Alice-space commented 4 years ago

微信推送分支解耦合的版本已经写好了,请看我的fork 考虑了再次开发的方便,写了插件系统,方便扩展邮件推送等功能。

Dee-Why commented 2 years ago

然而只想问一下chrome插件刷课机在哪里orz

mkbk-with-circle commented 2 months ago

最近用22年同学的tt识图的那个branch刷课的时候发现识别的效果不是很好(不过已经还可以了),所以确实有必要在刷课机一刷到空位时立刻提示 如果想追求极致简单,俺mkbk给一个办法:(前提是你要坐在电脑旁边,但是不用一直盯着终端) 可以直接在loop.py的第479行加入

root = tk.Tk()
root.withdraw()
messagebox.showinfo("notice","you have classes to elect!")
root.quit()

然后记得在开头import包:

import tkinter as tk
from tkinter import messagebox

这样实现的功能就是——一旦有空位就会生成一个小弹窗类似:

截屏2024-09-10 23 43 33

这样的,然后你就知道有课了,就赶紧去手动刷一刷趴 (相信xk的uu都会觉得这个比较弱智,希望给其他院系同学一丢丢帮助趴x)