GithubHelp home page GithubHelp logo

liuyunfz / chaoxing_tool Goto Github PK

View Code? Open in Web Editor NEW
308.0 5.0 58.0 840 KB

超星网课助手,拥有 一键完成超星中的任务点/刷取课程学习次数/下载课程资源 等功能。基于python语言

License: GNU General Public License v3.0

Python 100.00%
python

chaoxing_tool's Introduction

chaoxing_tool

超星/学习通/尔雅 助手,帮助用户一键完成任务点、下载课程资源等。基于 Python 语言和 requests 包。

本分支是基于原项目的重构,拥有更高的可扩展性和功能的低耦合性,方便更多开发者参与贡献。

项目拥有的Log输出,方便开发者更好的还原用户使用出错时的场景。

功能

基础功能如下:

  • 用户登录
    • 手机号登录
    • Cookie 登录
  • 获取 用户/课程/章节 等数据
  • 日志输出
  • 程序配置读取与保存

扩展功能如下:

  • 一键完成课程中的任务点

    deal_mission

  • 下载课程中的资源

    media_download

  • 刷取课程学习次数

    media_download

  • 刷取课程视频观看时长

    media_download

运行

以下有两种使用方式,请根据您个人的实际情况与需求选择

可执行文件运行

如果您此前未接触过Python或其他编程语言,且只想直接快捷的使用本工具,请优先选择本方法。

但需要注意本方法的文件只能在Windows上运行,不支持Mac

  1. 打开本项目的 Release 页面
  2. 下载其中的chaoxing_tool.zip压缩包
  3. 选择一个储存位置对压缩包进行解压
  4. 找到main.exe文件双击运行

源文件运行

请确保您的电脑拥有Python3环境,以及本项目所需要用的package。

首先下载本项目的代码源文件,您可以使用Github自带的Zip download或者使用Git命令git clone [email protected]:liuyunfz/graph-project.git

然后对项目需要的第三方包进行安装,您可以直接用pip进行安装pip install -r requirements.txt,亦或是使用诸如virtualenv的虚拟环境进行安装。

最后通过python main.py运行mian.py文件即可

程序配置

详见项目根目录下的config.yml而不是config.py

后者是对配置文件进行读取的Python文件,一般不需要进行修改

以下是对config.yml文件中一些内容的解释

GloConfig:
  timeout: 3  # 全局requests模块的超时时长,即发送http请求后三秒仍未响应则会引起超时报错
  headers:
    User-Agent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36 Edg/85.0.564.51' #全局Http请求中协议头的UA设置
  debug:
    enable: True  # 是否开启debug模式,即显示更加详细的软件日志
    level: 8 # Loggru日志输出的等级门槛

FunConfig:
  deal-mission:
    video-mode: 0 # 视频任务点刷取的模式,0为立即完成,1为等时长刷取
  set-log:
    delay: 30 # 刷取学习次数的延迟,单位s

UserData:
  cookie: '' # 里面填写账号Cookie,程序可以自动识别直接登录,免去每次输入账号密码。但Cookie经过一段时间会过期,预计3-30天
  auto-sign: True # 是否开启自动登录,如果为False则即使上述cookie有内容也不会自动登录

如果您不太清楚以上的内容,可以不进行任何修改

已知问题

详见 本项目的Bug

Contribute

如果您也想参与到本项目的开发中,包括但不限于新功能的添加、文档的优化。

请阅读本项目的规范文档(还没写),Fork之后提交Pr即可。

免责声明

本项目遵循 GPL-3.0 License ,仅作为学习途径使用,请勿用于商业用途或破坏他人的知识产权

chaoxing_tool's People

Contributors

liuyunfz avatar sakurapuare avatar songzihui-sudo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

chaoxing_tool's Issues

已刷课程会进行重置

已刷课程会进行重置,无法确定此bug是否和课程、授课教师、授课学校有关

使用一键完成包括全部、单门课程都会复现

打包编译后出现模块缺失

无法使用
编译为console后打开闪退
编译为desktop后提示缺少pydes模块
报错信息:Traceback (most recent call last):
File "chaoxing.py", line 13, in
ModuleNotFoundError: No module named 'pyDes'
image

getpass无法输入密码

image
可能是python3.10.0的问题 输入手机号之后回车 没有提示输入密码 等待一会之后输入也是直接显示

课件下载问题

您所加入的课程如下:
1.大学物理B(I)
请输入你要下载资源的课程序号(输入q回退主菜单):1
1 . 质点力学
2 . 刚体力学
3 .  狭义相对论
4 . 静电场
5 . 稳恒磁场
6 . 电磁感应
请输入资源所在章节的序号:2
num: 0
1 .        刚体01.pdf
2 .        刚体01.pdf
3 .        刚体02黑白.pdf
4 .        刚体02黑白.pdf
请输入你要下载资源的序号,以逗号分隔:

实际我校的章节情况:

第1章 力学
1.1 质点力学
1.1.1 质点运动学
1.1.2 质点动力学
1.1.3 动量和角动量
1.1.4 功和能
1.1.5 本章难点,重点内容
1.2 刚体力学
1.2.1 本章重点、难点
1.3 狭义相对论
1.3.1 牛顿时空观、伽利略变换
1.3.2 爱因斯坦的两个假设,同时性的相对性、时间延缓、长度收缩
1.3.3 洛伦兹变换
1.3.4 狭义相对论动力学
第2章 电磁学
2.1 静电场
2.1.1 场强分布
2.1.2 电通量和高斯定理
2.1.3 电势 电势梯度
2.1.4 静电场中的导体 电容器
2.1.4.1 一道有用的例题
2.1.5 静电能
2.2 稳恒磁场
2.2.1 磁感应强度 毕萨定律
2.2.2 安培环路定理
2.2.3 磁力
2.3 电磁感应
2.3.1 法拉第电磁感应定律

换言之,仅仅获取了二级目录的课件,并没有第三级课程的内容,导致部分内容无法下载。
不过考虑到不同学校不同科目的课程不同,并不完全期待此问题被修复,仅作此issues提交。

已结课的课程处理问题

针对已结课的课程,目前无法正确获得其章节内容。可能带来的影响是无法下载其资源,但因为已结课所以对完成任务节点这个功能并无影响。目前已知该问题,但修复暂未提上日程。

账号问题

我的账号密码没有问题,但就是登不上去,因为我的是继续教育的超星,官网的登录地址登不上去,我们学校有专门的超星网址。能不能考虑下加个修改网址的功能,或者有偿定制也行,谢谢大佬,方便的话联系一下

刷时长似乎会溢出

Traceback (most recent call last):
File "E:\CHAOXING\chaoxing.py", line 953, in
Menu().run()
File "E:\CHAOXING\chaoxing.py", line 924, in run
action()
File "E:\CHAOXING\chaoxing.py", line 872, in misson_5
isThread = get_task_status(course_dict[i + 1][1])
File "E:\CHAOXING\chaoxing.py", line 613, in get_task_status
medias_text = medias_HTML.xpath("//script[1]/text()")[0]
IndexError: list index out of range

无法刷取学习次数

您好,学习次数无法刷取,而且实际的运行界面与您在code中贴出来的截图不一样

bug提交

windows10端密码无法粘贴 手动输入也无法输入大写字母

账号问题

我的账号密码没有问题,但就是登不上去,因为我的是继续教育的超星,官网的登录地址登不上去,我们学校有专门的超星网址。能不能考虑下加个修改网址的功能,或者有偿定制也行,谢谢大佬,方便的话联系一下

课程补时长建议

课程单独补时长只刷第一个视频,能检测该课程全部视频吗,感谢大佬

大佬 想请求您帮助

我正在开发一个智汇听力英语学习平台的刷课程序,但是现在只开发到查课阶段,后面刷题的方法我一直没研究出来,想请您和我共同完成可以吗

cls: command not found

运行python后出现cls: command not found
手打输入账密后出现参数为空错误
运行环境:centos7.6 python3.9.13
在win11 python3.9.13同样出现参数为空错误

请问IndexError: list index out of range报错如何处理,谢谢

Traceback (most recent call last):
File "chaoxing.py", line 987, in
Menu().run()
File "chaoxing.py", line 958, in run
action()
File "chaoxing.py", line 738, in misson_1
deal_course_select(course_dict[course_item][1])
File "chaoxing.py", line 234, in deal_course_select
deal_misson(chapter_mission, new_url_dict["cpi"], 0)
File "chaoxing.py", line 441, in deal_misson
cardcount = int(read_cardcount(courseId, clazzId, chapterId, class_cpi))
File "chaoxing.py", line 302, in read_cardcount
return rsp_HTML.xpath("//input[@id='cardcount']/@value")[0]
IndexError: list index out of range

项目可能暂时不会更新

因为以下原因,项目可能暂时不会更新

  • 功能已经较为完善,并且能正常运行,不需要修复BUG
  • 因为本人是一个在校学生,这学期又课业繁重,所以无较多的空余时间完善项目
  • 在项目分支中,我已经尝试攻克“测验”任务点。已经实现了大半(可以实现自动搜题选题,并且保存,但是无法自动提交,需要用户手动上线提交。额外还有一些通用性的小BUG)。自动提交的URL遇到了瓶颈(似乎是js混淆),暂时找不到突破口

综上,并没有足够支持我更新的理由。现在的版本已经能基本满足使用。
不过如果你遇到了意外的BUG,或是想要其他功能的支持(签到,打卡),请提交issue。我还是会及时回应的,毕竟issus是第一生产力(大雾

超星似乎更换了API接口

bug

不知道是怎么回事,用过一次后,账号可以正常输入,密码却不能输入,

无法为其他用户一键完成课程

发现:今日偶然在测试同学账号时,发现读取课程中的视频信息失败,导致无法成功完成相应任务。
问题所在:因为超星账号的管控,个人无多余账号进行测试。所以导致其中一个数据包中的数据未完全替换。具体内容为每个章节所对应链接中的cpi参数。
解决方案:将于近段时间内修复这个bug,但由于代码当时写的有点差,导致阅读性有点差。再加上学业问题,空余时间较少。修复时间可能比较漫长。修复完成后会第一时间关闭此issue。

将desktop打包为exe后报错

Traceback (most recent call last):
File "chaoxing01.py", line 1023, in
File "chaoxing01.py", line 1015, in start
File "chaoxing01.py", line 893, in before_start
File "tkinter_init_.py", line 2071, in wm_iconbitmap
_tkinter.TclError: bitmap "chaoxing_icon.ico" not defined

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.