歡迎來到 SchoolSoftAPI 文件網站¶
安裝¶
Python 套件¶
本專案只在 Python 3.5+ 版本上測試過,建議使用 Python 3.5+ 以上版本運行。安裝建議使用 venv 標準函式庫建立虛擬環境安裝套件,在 Debian Stretch 中必須執行:
sudo apt install python3-venv -y
才能使用 venv 標準函式庫建立虛擬環境:
mkdir -p ~/venv
python3 -m venv ~/venv/schoolsoftapi
source ~/venv/schoolsoftapi/bin/activate
pip install schoolsoftapi
使用 API¶
from schoolsoftapi import SchoolSoftAPI
# 傳入的 1061 代表 106 學年度第 1 學期
api = SchoolSoftAPI('校務系統帳號', '校務系統密碼', '1061')
# 若 captcha 辨識失敗導致無法登入,等待 5 秒重試
api.login(wait=5)
# 傾印學生資料
api.dump_students()
# 傾印教師資料含職務
api.dump_teachers()
# 新增教師帳號
api.add_teacher('K123456789', '王大明', '男', datetime.now())
# 重設教師密碼
api.reset_teacher_password('K123456789', '王大明')
# 刪除教師教師帳號
api.delete_teacher('K123456789', '王大明', '男', datetime.now())
全誼校務系統非官方 API
-
class
schoolsoftapi.
SchoolSoftAPI
(username, password, semester, baseurl='https://eschool.tp.edu.tw', logger=None)¶ 透過 WEB UI 介接全誼校務系統的 API
-
__init__
(username, password, semester, baseurl='https://eschool.tp.edu.tw', logger=None)¶ 初始化物件
參數: - username (str) – 校務系統資訊組或系管師帳號
- password (str) – 密碼
- semester (str) – 學年度與學期,比如 106 學年度第 1 學期其值則為 『1061』
- baseurl (str) – 校務系統網址
- logger (logging.Logger) – logger 物件
-
add_teacher
(identity, name, gender, birthday)¶ 新增教師
參數: - identity (str) – 身份證字號或護照號碼
- name (str) – 姓名
- gender (str) – 性別,』男』 或 『女』
- birthday (datetime) – 生日
傳回: 成功回傳 True,否則回傳 False
傳回型態: bool
-
delete_teacher
(identity, name, gender, birthday)¶ 刪除教師
根據測試,應該只要提供身份證字號就可刪除,但為了完整性還是模擬送出所有欄位
參數: - identity (str) – 身份證字號或護照號碼
- name (str) – 姓名
- gender (str) – 性別,』男』 或 『女』
- birthday (datetime) – 生日
傳回: 成功回傳 True,否則回傳 False
傳回型態: bool
-
dump_students
(output_format='raw')¶ 將下載下來的學生 xls 取出需要的欄位轉成資料結構
參數: output_format (str) – 輸出的格式,若為 『raw』 代表原始資料結構, 若為 『csv』 則轉為 csv 格式 傳回: 資料結構或是 csv 內容,端看 output_format 指定何種
-
dump_teachers
(output_format='raw')¶ 將下載下來的教師 xls 取出需要的欄位並對照職稱 csv 內容轉成資料結構
參數: output_format (str) – 輸出的格式,若為 『raw』 代表原始資料結構, 若為 『csv』 則轉為 csv 格式 傳回: 資料結構或是 csv 內容,端看 output_format 指定何種
-
login
(retry=True, wait=30)¶ 登入校務系統
要登入全誼校務系統除了帳號密碼要正確以外,也必須通過 captcha。 我們使用外部指令 tesseract 辨識圖片,目前辨識率勉強可以接受, 這邊的做法是:需辨識成五位數字,才進行認證嘗試。 如果認證失敗,等待 wait 秒後重新嘗試上述步驟直至 retry 次數。
參數: - retry (int) – 認證失敗重新嘗試的次數。若為 True 代表不限制重試次數
- wait (int) – 認證失敗中間等待的秒數
傳回: 若成功登入則傳回 True,否則傳回 False
傳回型態: bool
-
reset_teacher_password
(identity, name)¶ 重設教師密碼
參數: - identity (str) – 身份證字號或護照號碼
- name (str) – 姓名
傳回: 成功回傳 True,否則回傳 False
傳回型態: bool
-