刚学Python,做了个练手小项目——我爱记单词 无敌辅助

本文最后更新于:2021年3月15日 晚上

摘要
刚刚写了个练手小项目,个人还是比较满意的。我觉得这是个好东西,分享给大家玩玩!

这是个控制台程序,没有加 UI,所以界面有一点丑,但不影响

这个项目开源,仓库地址Github,有兴趣可以帮我改改 Bug? 毕竟个人感觉程序里代码重复度太高了,应该是能简化的。

声明

闲着无聊,想写代码。转眼学校里我爱记单词又要开始了,突然想起是不是可以写个小程序 ‘帮助’ 一下记单词?其实上学期的时候写过一个 Python 但是正确率大概在 75% 的样子,并且 10 次运行能有 8 次报错,不得不自己在手机上接着做下去,也就自己能用用,但用着极不舒服,程序跑起来的时候需要双手合十祈祷别崩溃。

正好开学这几天闲来无事,想着重新写一遍这个程序,增加更多的优化,把代码逻辑写写好,并尽可能防止程序意外终止。我 做到了。

现在这个软件要是运行正常的话,正确率在 95% 以上,耗时在4-5分钟。后文会详细讲述实现方法。

但这里要申明的是:

  • 本软件不会记录任何个人信息

  • 软件纯开源,绝无恶意代码,但是因为涉及控制台和一些系统命令,360 会报毒,所以请在打开软件前退出 360 放心使用。

  • 不准贩卖,仅供学习娱乐使用

  • 软件理论上能实现 我爱记单词考试,但还未进行测试,又考虑到还是要好好学习英语,所以软件中考试的选项暂时关闭,若选择了考试,程序将直接退出。

  • 软件加了验证机制,只有拥有 license 的用户才能体验到这个小软件,拥有 License 的用户最好不要传播,后台都有使用记录

  • 玩玩就好,不要滥用,该程序调用的 api 要 付 钱

使用提示(关键)

  • 使用前请退出 360 等杀毒软件!!!
  • 软件存放路径 必须是英文!你可以放在 D://study/ 下,但请不要放在 D://学习资料/ 下,否则会直接闪退
  • 不能开 VPN
  • 请在网络环境好的情况下使用,使用过程中请不要切换网络(否则会出现不可预估的错误)
  • 软件会调用 Chrome 浏览器,所以想使用的话快去下载吧,版本是 89.xxxx就就行,以后要是 Chrome 有大更新,我会同步发布最新软件
  • 软件会打开 8 个浏览器窗口,不要惊慌,不要乱点击!
  • 软件采用了多线程,所以使用过程中不要开太多消耗内存的应用
  • 软件运行结束后会出现 ”谢谢“ 二字,随后浏览器窗口会依次自动关闭,所以请耐心你等待
  • 如果程序意外终止,剩下的浏览器窗口请手动关闭

使用说明

首先,通过邮箱链接下载软件,解压后有两个.exe程序,请将它们至于任何英文路径下, for example:

image-20210315205854155

mainFullBlood_boxed.exe为主程序,另一个为浏览器驱动,这俩一定要放在同级目录,否则必报错

在确保 VPN 等代理工具已关闭,不必要的软件也关闭的情况下,双击运行主程序,但建议最好右键以管理员身份运行

image-20210315210139422

如果开了 VPN 会出现如下界面,程序随即退出:

image-20210315210242847

如果网络情况不好,会显示 ”网络状况不佳“ ,程序随即退出

网络配置正确, 会出现如下 输入密钥界面, 输入你的密钥来继续运行程序吧! (如果你还没有, 快去登记页面申请一个吧,如果你足够幸运,你会拥有密钥!)

image-20210315210709667

密钥正确,直接进入下一步:

image-20210315210814841

现在程序需要你的 上课啦token 但为了防止隐私泄露, 这里不采用杭电账号登录的方式来完成登录

所以程序只需要一串网址

在手机打开 易班app, 进入上课啦小程序,点击右上角三个点,选择 ‘复制链接’,再去手机浏览器百度搜索二维码制作,随便选一个进去 (这里推荐 草料二维码) ,将刚刚的连接复制进去生成二维码。当然,你也可以选择手动在控制台输入那串网址 (如果你的电脑没有摄像头)

image-20210315211912247 image-20210315211604031 image-20210315211734656 image-20210315211959647

接下来回到程序,输入a,回车,此时会弹出摄像软件(如果电脑没有摄像头,选择 a 后会直接退出程序,所以如果电脑没摄像头,请选择 b 手动输入刚刚复制的网址),将生成的二维码对准电脑摄像头,在识别到二维码后,控制台会输出扫描到的二维码,摄像软件会自动关闭。

image-20210315212414660 image-20210315212611231

随后软件会获取远程字典,并打开八个浏览器窗口

image-20210315212629938

不要关闭这些浏览器,它们弹出来后 会自动最小化,你只需关注控制台的信息即可!

接着选择 练习(选择考试,程序会直接退出, 因为后台暂时把这个模块锁了),周也请正确输入,上课啦 里说现在第几周,就输入几, 输错程序也会结束(这不是 bug, 这代码是我写的,并且那八个浏览器窗口得你自己关了)。总而言之,言而总之,千万不能输错。

image-20210315213051605

接下来验证信息, 确认无误后,输入那串表示日期的文字(红色字体全部要输),敲下回车程序开始运行!

image-20210315213254393

这里的输出有点乱,因为是多线程的原因,don’t care!

不出错的话,跑两分钟就结束了,因为有部分题程序决定不了,所以会要你自己来选择,接下来是手动答题,不过所有英文都已经安排了中文翻译,并且能匹配到的词会用明亮的颜色标注出来,所以如果你题目有颜色标注,直接选那个选项就行!这里的 模式 一般来说选n就行,有了远程字典的帮助,不严格模式的正确率也不低

image-20210315213456670 image-20210315213556949 image-20210315213816483 image-20210315220222152

结束后,程序会输出这次的所有答案和成绩等信息,随后的 completed是在执行远程字典同步,这次所有的题目都会录入到本软件服务器中,以后碰到同样的题目就会 100% 正确了!

最后出现 ”感谢使用”,字样后,浏览器会自动关闭,随后控制台窗口也会自动关闭。

BUG 说明

  1. 有时候在手动答题时,控制台会持续输出乱码,类似[033[033[033[033[033[033,不要慌,等它输出一会,会自动结束。具体原因不清楚,应该是在为输入的消息进行添加颜色时,有字符让程序进入了死循环。当然这道题的题目是看不了了,随便敲个答案,按回车继续吧!这个 Bug 出现概率极为不大。
  2. 在最后完成手动选择答案后,“最后得分;”一直不输出,因该是网络原因造成的。此时应该还剩三分钟左右,一般来说最后是能提交成功的,但如果保险起见,可以掏出手机,将前面输出的 100 道题答案手动输入提交。 这个 Bug 出现概率也不大。

使用演示(手输网址为例)