Skip to content
This repository has been archived by the owner on Dec 31, 2021. It is now read-only.
/ LearnWeb Public archive

A SyncEngine work with Tsinghua LearnWeb

Notifications You must be signed in to change notification settings

Xun66/LearnWeb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LearnWeb

  LearnWebSyn是一套针对清华大学网络学堂用户的Python脚本。可以读取学堂内相关信息设置提醒,并可根据设置将课程文件同步到电脑本地。支持增量同步,在本地输出的文件可保持网络学堂原有的目录结构。脚本内的网络请求全部采用https安全连接,避免了在Tsinghua等公开无线网络使用时密码被截获的问题。

2019.03 更新:

清华大学已全面启用网络学堂2018版本,原有接口失效。暂无计划继续适配。

一些说明

  在电脑端使用网络学堂时,文件零散下载的精力花费一般较大。如果有归档整理的习惯,往往需要频繁选择目标文件夹,确认此文件是否被下载过,是否被更新。如果没有归档整理的习惯,则学堂的文件往往散布电脑的各个文件夹,且在需要时一般找不到文件的存放地点,经常需要重复下载。
  这个脚本的初衷即是为了解决这个问题,将文件的检查、下载、归档自动化完成,只需要在需要令文件保持最新时双击同步快捷方式,十几秒后,你的文件夹中就已经获得了全部课程的最新文件。

更新日志

v1.3
修复 遇到新版学堂的课程导致崩溃的问题
新增 可以识别并跳过新版学堂,但暂时未添加支持

v1.2
新增 添加代码内自动下载依赖库的功能
新增 网络状况较差时输出提示信息
新增 登陆成功输出问候语

v1.1
新增 将运行平台从macOS转换到Windows中文版(gbk系统编码)

v1.0
新增 读取课程列表
新增 下载课程文件
新增 本地目录化同步
新增 自动跳过大文件的功能

已知问题

  1. 新版学堂尚不支持,目前会自动跳过相应课程
  2. 网络请求次数较多(每个文件一次http响应头请求)
  3. 密码明文保存在脚本目录下,有一定泄漏风险
  4. 脚本设置参数暂时被集中在脚本头部,不利于封装
  5. 采用了内置库函数读取密码,输入时没有*或·的提示,对用户不友好。

待解决

  1. 增加对新版学堂的支持 (important)
  2. 增加并行处理的支持,可大幅优化同步速度
  3. 采取一些措施保存密码,以免密码可被轻易读取
  4. 增加单文件多平台自动适配
  5. 增加密码指示符(*或·等)
  6. 增加独立的配置文件或者配置交互逻辑,修改配置可不修改源码
  7. 增加公告和未交作业的读取
  8. 未交作业的DDL自动添加到Exchange日历(或每日发送Summery到指定邮箱),需要服务器端程序

文件清单

Title Digest Comments
lib/lib/requests-2.18.4 Library Dependencies requests-2.18.4
SyncNow.cmd Launch Sync, also use as console output. fix some problem with some path that includes space
lw.py Script entrance file
sysass.py Some tools specially in Windows
……

About

A SyncEngine work with Tsinghua LearnWeb

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages