docs: 新增 ncnu.py 註解
This commit is contained in:
parent
476bb21bb3
commit
3da7612650
19
api/ncnu.py
19
api/ncnu.py
@ -3,14 +3,23 @@ from api.tools import *
|
|||||||
|
|
||||||
class NCNU():
|
class NCNU():
|
||||||
def __init__(self, username, password):
|
def __init__(self, username, password):
|
||||||
|
'''
|
||||||
|
initial 就登入
|
||||||
|
根據 self.status 判斷成功與否
|
||||||
|
'''
|
||||||
self.session = requests.Session()
|
self.session = requests.Session()
|
||||||
self.status = self.login(username, password)
|
self.status = self.login(username, password)
|
||||||
|
|
||||||
def login(self, username, password):
|
def login(self, username, password):
|
||||||
|
'''
|
||||||
|
登入教務系統
|
||||||
|
return bool
|
||||||
|
'''
|
||||||
# get login token
|
# get login token
|
||||||
response = self.session.get('https://ccweb.ncnu.edu.tw/student/login.php')
|
response = self.session.get('https://ccweb.ncnu.edu.tw/student/login.php')
|
||||||
loginToken = find(response, 'input', param={'name': 'token'}).get('value')
|
loginToken = find(response, 'input', param={'name': 'token'}).get('value')
|
||||||
|
|
||||||
|
# request login page
|
||||||
response = self.session.post(
|
response = self.session.post(
|
||||||
"https://ccweb.ncnu.edu.tw/student/login.php",
|
"https://ccweb.ncnu.edu.tw/student/login.php",
|
||||||
data={
|
data={
|
||||||
@ -21,17 +30,25 @@ class NCNU():
|
|||||||
'type': 'a'
|
'type': 'a'
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 成功的話 return http 302, redirect
|
||||||
if len(response.history)!=0:
|
if len(response.history)!=0:
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def getCourseTable(self, semester):
|
def getCourseTable(self, semester):
|
||||||
|
'''
|
||||||
|
下載學期課表
|
||||||
|
儲存在 ./<semester>課表.pdf
|
||||||
|
'''
|
||||||
url = "https://ccweb.ncnu.edu.tw/student/print_semester_course_list.php"
|
url = "https://ccweb.ncnu.edu.tw/student/print_semester_course_list.php"
|
||||||
|
|
||||||
# get token
|
# get token
|
||||||
response = self.session.get(url)
|
response = self.session.get(url)
|
||||||
token = find(response, 'input', param={'name': 'token'}).get('value')
|
token = find(response, 'input', param={'name': 'token'}).get('value')
|
||||||
|
|
||||||
|
# get pdf binary response
|
||||||
response = self.session.post(
|
response = self.session.post(
|
||||||
url,
|
url,
|
||||||
data={
|
data={
|
||||||
@ -40,6 +57,8 @@ class NCNU():
|
|||||||
'token': token,
|
'token': token,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# save pdf file
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
with open('{}課表.pdf'.format(semester), 'wb') as fp:
|
with open('{}課表.pdf'.format(semester), 'wb') as fp:
|
||||||
fp.write(response.content)
|
fp.write(response.content)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user