Skip to content

Commit

Permalink
fix:修复了文件夹与文件共存时无法下载文件的问题,修改了README
Browse files Browse the repository at this point in the history
  • Loading branch information
GentleCP committed Mar 17, 2020
1 parent 482f7ca commit f308bce
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 19 deletions.
50 changes: 32 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# UCAS Helper
## 前言
### 关于课程资源下载
原本只是一时兴起,为了方便写的UCAS课程网站小助手,帮助我自己进行课程资源快速同步。
没想到后面随着功能的增加,项目也变得小有规模起来,因此将其开放给全体UCAS同学,小助手的使用方式在下面有介绍,
十分简便(需要一点对`python`环境的了解,百度`python`的安装即可),如果你觉得本项目对你有所帮助的话,
希望你能帮我点个star,算是对作者的一点激励吧~
# 1. 功能介绍
## 1.1 课程资源下载
国科大的课程网站在高校中已经算是很便利的了,老师可以发布ppt或其他课程资源到网站上,
学生可以登录课程网站下载需要的资源,但唯一让我感觉不爽的就是每个资源(如ppt),
只能一个个单独下载,没有批量下载的选项。另一方面,每次网站发布了新的资源,
Expand All @@ -9,7 +13,7 @@

> 现在可以按照学期同步自己需要的资源,而不用将之前学期的一并同步
### 关于wifi登录
## 1.2 wifi登录
提供了自动登录的功能,且允许添加多个账号,当一个账号流量使用完后,可用下一个账号自动登录,
每月自动更新。出于隐私保护,项目不直接提供爆破的账号密码信息(以防被外来人员利用),在校学生可通过执行`python manage.py hack`命令,
破解新的账号。
Expand All @@ -25,7 +29,7 @@
- 破解的账号都是往年的已经离开雁栖湖回所的师兄师姐的!
**请不要利用本项目对还在雁栖湖上课的同学的账号进行破解!!!**

### 关于课程评估
## 1.3 课程评估
新增了课程评估的功能,在主界面中选择4即可进行课程评估,评估的等级默认选择5,
因为会用脚本评估的大多是怕麻烦的人,如果有个别老师或课程让你觉得十分不靠谱,
根本无益,建议还是手动去修改下对应的评估,虽然不知道是否真的对教改有用,
Expand All @@ -35,26 +39,32 @@
![](img/5-2.png)


### 关于分数查询
## 1.4 关于分数查询
这个功能我将其删去了,因为在评估过后直接登录校园网即可查看分数,所以感觉略显鸡肋,
后续看是否有需要再添加吧。
## 版本号

1.4.2
# 2. 版本号

### 更新内容
- [1.4.1]
> 在课程资源选项中可以选择仅同步某个学期(春季,夏季,秋季)课程
1.4.3

## 2.1 更新内容
- [1.4.3]
> 修复了当同时存在多个文件夹和文件时不会下载与文件夹同目录的文件的问题,如下图所示:
![](img/fix_1.4.3-1.png)

- [1.4.2]
> 解决了当课程网站存在文件夹时无法获取到课程资源同步的问题,一开始并未考虑到老师创建文件夹
## 作者
- [1.4.1]
> 在课程资源选项中可以选择仅同步某个学期(春季,夏季,秋季)课程
# 3. 作者
- name: 董超鹏
- nickname: GentleCP
- e-mail: [email protected]
- website: https://www.gentlecp.com

## 实现功能
# 4. 实现功能
- 小白使用窗口
![](img/2-1.png)
- 自动登录校园网
Expand All @@ -75,12 +85,12 @@
- 自动评估课程和教师
![](img/5-1.png)

## 部署
# 5. 部署与使用

### 使用前提
项目采用python语言编写,需要你本地装有python3环境(建议python3.5+)
## 5.2 使用前提
项目采用python语言编写,需要你本地装有python3环境(建议python3.5+),如果采用`git`方式克隆,需先安装好`git`

### 配置修改
## 5.3 配置修改
- 获取课程资源
- 进入settings.py,修改你自己的用户名和密码
- 修改SOURCE_DIR,这个目录是所有课程资源存放的目录,根据你的个人需求修改
Expand All @@ -107,11 +117,13 @@
```
每个账号一个,允许存储多个账号,当遇到一个账号流量不够的时候自动切换到下一个账号登录

### 使用步骤
## 5.4 使用步骤

- 克隆本项目到本地
```text
git clone https://github.com/GentleCP/UCASHelper.git
```
> 如果没有安装`git`,也可以直接下载源代码或者在`release`中下载我发布的最新版本
- 安装依赖包
```text
pip install -r requirements.txt
Expand All @@ -121,9 +133,11 @@
```text
python ucashelper.py
```
> 到此就可以看到小白的操作窗口了
- 爆破账号
```text
python ucashelper.py hack
```
> 可以的话给个star呀~
# 6. 提问
对项目如有任何问题或修改意见,欢迎提交`issue`或者邮件私信给我~
6 changes: 5 additions & 1 deletion core/source.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,10 @@ def _recur_dir(self,course_info, source_url, bs4obj):
'''
l_dir_objs =bs4obj.findAll('a', {'title': '文件夹'})
if len(l_dir_objs) > 1:
# 存在其他文件夹
# 存在其他文件夹,添加当前目录资源信息,接着递归文件夹下内容
cur_dir = self._dir_pattern.findall(l_dir_objs[0]["onclick"])[0] # 获取了课程文件夹信息
self.__update_source_info(course_info, bs4obj, cur_dir)

csrf_token = bs4obj.find('input', {'name': 'sakai_csrf_token'}).get("value") # 获取token,用于请求文件夹资源

for e in bs4obj.findAll('a', {'title': '文件夹'})[1:]: # 第一个是当前目录忽略
Expand All @@ -126,6 +129,7 @@ def _recur_dir(self,course_info, source_url, bs4obj):
self.__update_source_info(course_info, bs4obj, cur_dir)
return


def _set_course_info(self):
if not self._l_course_info:
# 减少后续多次请求课程信息耗时
Expand Down
Binary file added img/fix_1.4.3-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit f308bce

Please sign in to comment.