Git Product home page Git Product logo

hfut-course-exchange's Introduction

hfut-course-exchange

鉴于各种刷课脚本横行,特制作此换课脚本以方便各位进行安全换课。

写在前面

本人已毕业,工程不再维护,于此存档。另外也希望抢课的大家也别抢了,到最后你会发现课根本用不着抢,所有该修的课都能轻轻松松修完。

此换课脚本不能100%保证换课成功,但相较于手动换课成功率会提高不少。当你执行换课脚本的时候,如果他人的刷课脚本正好被触发了,那么就会很遗憾,你的课被截了。

感谢Dawnnnnnn/hfut-course的刷课脚本,我是在它的基础上改造出来的。

使用说明

环境安装

程序在Python 3.6下测试通过,建议安装Python 3.6

需要安装一个必要的库,使用pip install requests来安装

运行配置

运行之前,你需要先配置config.py

giver_是课程给出者,receiver_是课程接收者。

username是用户名,password是密码

然后你就配置好了交换双方的账户和密码

我们来配置课程

lesson是课程ID,获取方法:右键你想要换的课程的选课按钮,选择审查元素,然后把data-id属性的值复制进来就行

turn指示当前选课轮数,对于2018-2019学年第二学期二轮选课中,必修选课填写321,公选和体育填写322

运行

目录下执行py exchange.py即可运行

理论上有3个结果:交换成功交换失败但是一切如初以及被截课

理论上不会出现错误,如果出现错误(输出了一堆堆栈),请仔细检查你的配置或网络连接

高级脚本

如果你注意了目录下的文件,你会注意到还有一个exchange-test.py。这也是一个换课脚本,并且做了理论上得最优优化,能以最短间隔发出退课和选课得数据包。并在发完所有数据包(退课,选课,尝试回选)之后再判定结果。

由于exchange.py被反馈说还有可能被刷课(据说是6掉1的概率),故出此邪招,但是,exchange-test.py不保证安全性,因为这脚本没有经过详细测试,只是通过抓包提示得知选课可以成功。

exchange-test.py不会给你任何可读显示,只会显示三个操作的结果,结果是一个bool。这里列出表格,以辅助你检查结果:

Drop course status Add course status Re-add course status 结果
True True True 你截了别人的课。还不赶快向全校学生谢罪?
True True False 换课成功
True False True 没换成功,但是一切如初
True False False 被截课
False True True 常规操作无法复现此结果(你乱玩我就不保证了)
False True False 常规操作无法复现此结果(你乱玩我就不保证了)
False False True 常规操作无法复现此结果(你乱玩我就不保证了)
False False False 无法退课

原理分析

观看了一部分截课,刷课脚本,共同点都是用了sleep()来防止被服务器干掉,本程序就是将选课和退课两部分之间的时间尽量缩短,以达到在截课刷课机器sleep()的时候完成换课

但是运气不佳会发生刚退课就被刷课机器截取的情况。

hfut-course-exchange's People

Contributors

yyc12345 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

ryohikaru

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.