仿腾讯桌面整理外观设计。以时间为轴的任务便签,支持**大学慕课测验 / 作业 / 考试 / 互评任务导入并自动刷新。暂时不适配屏幕缩放,这意味着一些高分辨率屏幕可能无法使用。暂时不支持颜色自定义。
-
这需要自行抓包获取
mob-token
. 警告:请避免随意泄露你的mob-token
,这可能导致你被有心人恶搞,后果可能是不可挽回的。 -
手机 / 平板下载任意一款抓包软件,如 ios 的 Stream,以下将以该软件为示例进行演示。
-
打开软件,首次使用通常需要为其进行配置准备,软件会有详细的操作步骤。点击开始抓包。
-
切换到 “**大学MOOC”,进入底下的 “学习” 页面,等待课程加载完毕。
-
回到软件,结束抓包,进入抓包历史,点击最近一条记录。
-
点击搜索,搜索
getAllMyCourse
关键词,进入搜索结果。 -
切换到请求页面,查看请求主体(即图中的查看表单),即可看到
mob-token
,它通常由整数与a
到f
的小写字母组成。
config.ini
记录窗口基本信息courseList.json
记录个人慕课课程列表taskList.json
记录个人慕课测验 / 作业 / 考试 / 互评列表data.json
记录除慕课外的任务列表moocConfig.json
记录个人慕课 mob-token
-
使用 QT 5.15 与 Python 3.10 编写。
-
本人非计算机系学生,所以未了解太多命名方面的规范,以及对象之间的关系可能有些混乱。
-
debug 时需要自行去
gin.pro
更改 Python 路径。 -
因为不会用 QT 的 Network 模块,所以改用了 Python 的 Requests 模块。
-
调用 Python 的两个地方分别在
void MainWindow::moocAutoEvent()
以及void MoocSetting::getAllCourse()
. 可以使用pyinstaller -F -w -i icon.ico mooc.py
将.py
文件打包成.exe
文件。 -
如果不想使用打包后的
.exe
文件,可以按照以下方式改写代码直接调用 Python 函数。参考文章 参考文档// QT 与 Python 的宏定义冲突了 #undef slots #include <Python.h> #define slots Q_SLOTS ------------------------- // 调用前必须初始化,可以只写在 main 函数中 Py_Initialize(); PyRun_SimpleString("import sys"); PyRun_SimpleString("sys.path.append('./')"); // 函数调用语句 PyObject* pModule = PyImport_ImportModule("mooc"); // 导入模块 mooc.py PyObject* pClass = PyObject_GetAttrString(pModule, "mooc"); // 获取类名 PyObject* pObject = PyEval_CallObject(pClass, NULL); // 实例化对象 PyObject* pFunc = PyObject_GetAttrString(pObject, "getAllMyCouresList"); // 获取成员函数 PyEval_CallObject(pFunc, NULL); // 调用函数 // 结束 Py_Finalize();