這是一個逢甲大學線上教學平台(iLearn)的備份工具
同學們可以使用他將平台上的教學資源備份到自己的電腦中
由於moodle模組非常多且複雜
因此目前僅簡單支援以下模組
包含兩種
- 一般使用者(影片請點我)
- 下載iLearnBackupTool.exe
- 雙點開啟程式
- 使用自己的NID進行登入
- 等待加載完成後,選擇想要備份的資料
- 按開始備份
- 打個球聊個天回家收割成果ヽ(✿゚▽゚)ノ
- 程式開發者
- Clone 整個專案
- 安裝相關套件
- 執行Main_GUI.py
- 使用自己的NID進行登入
- 等待加載完成後,選擇想要備份的資料
- 按開始備份
- 打個球聊個天回家收割成果ヽ(✿゚▽゚)ノ
- v1.2:
- 修正因iLearn加入loginToken及SSL加密導致無法連線的問題
- 修正因部分課程找不到資源而導致程式凍結的bug
- 修正URL模組中若連結帶有%字符會導致python無法解析的問題
- 修正因作業繳交文字中存在鏈結導致誤判為檔案的問題
- 新增支援作業為免提交檔案,只有文字之支援
- v1.1:
- 修正有助教權限的作業頁面,若尚未有人繳交作業會出現錯誤'content-length'
- 修正開發人員選項中,儲存按鈕失效問題
- 更新system函式為Popen以避免出現小黑窗的問題
- 將斷點續傳功能進度條更改為接續上次進度而非本次下載進度
- v1.0:
- 爬取iLearn頁面並下載資源
- 自動檢查更新
- iLearn資源斷點續傳功能
- 失敗列表自動重試功能(可在選項->偏好設定內調整)
Bug
- Learn伺服器拒絕下載時,會導致下載失敗('content-length')
想做但尚未實做的功能
- 測驗卷
- 巢狀資料夾
- 備份成網頁模板(php)
- 備份已對學生關閉,但仍具助教權限可存取之課程
無法實作的功能
1.因iLearn權限問題,無法下載已關閉之課程資源
- Windows 10
- PyCharm
- Python 3.6.6 x86版本
- PyQt5
- Pyinstller-dev
- BeautifulSoup
- lxml
- requests
- threadpool
pip install PyQt5
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
pip install BeautifulSoup
pip install lxml
pip install requests
pip install threadpool-
PyInstaller 編譯完成後出現無法找到資源包 因為正式版的PyInstaller尚未支援PyQt5 把branch從master更改成devlop即可
pip uninstall PyInstaller pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
-
PyInstaller 編譯完成後視窗閃退 先確認是否帶有 -w參數(隱藏cmd窗口) 若有此參數且程序內含有stdin,stdout則程式會無法運行
-
編譯出的exe檔無法在x86及win7上運行 需要將整個Python環境改成32位元再編譯即可
安裝: set CONDA_FORCE_32BIT=1 conda create -n py36_32 python=3.6 啟用: activate py36_32 關閉 deactivate py36_32 -
PyInstaller 編譯完無法載入圖片資源 先將圖片建立一個資源清單img.qrc 格式如下
<RCC> <qresource> <file alias=file1.png>file1.png</file> <file alias=file2.png>file2.png</file> </qresource> </RCC>
接著呼叫pyrcc5將資源編譯為.py檔
pyrcc5 -o img_qr.py img.qrc
最後在檔案內import img_qr 並將程式碼的原始路徑前加一個冒號即可
import img_qr #QIcon("img/DownloadFailed.png") #改成下面那句 QIcon(":img/DownloadFailed.png")
-
QWidget can not set parent錯誤 確認所有QWidget的操作皆再主線程運行 修改的變數則由singal傳送到主線程修改
2018/08/05
- all.py : 試圖符合pep8,以下建議沒有被修正
- pep8建議變數與函式名稱使用C style命名,class變數沒有在init宣告... 基於習慣沒有更動
- 涉及程式結構者
看不懂的,Ex. might reference before assign - 奇怪的BUG(cannot find referenced),明明就可以跑...
2018/08/03
- Updater.py : 加上進度條
- README.md : 0803進度
2018/08/02
- Updater.py : 完成基本功能
- .gitignore : 其實如果可以的話我很想刪掉remote repository上面的.idea/
- README.md : 我會在這邊寫我改了啥XD
- 夢之旋律 (陳琮斌)
- Aimerfan (簡瑞梓)
iLearnBackupTool 版權所有 (C) 2018 Dream_Rhythm, Aimerfan
本程式是自由軟體,您可以遵照自由軟體基金會 ( Free Software Foundation ) 出版的 GNU 通用公共許可證條款 ( GNU General Public License ) 第三版來修改和重新發佈這一程式,或者自由選擇使用任何更新的版本。
發佈這一程式的目的是希望它有用,但沒有任何擔保。甚至沒有適合特定目的而隱含的擔保。更詳細的情況請參閱 GNU 通用公共許可證。