50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
import requests
|
|
from api.tools import *
|
|
|
|
class NCNU():
|
|
def __init__(self, username, password):
|
|
self.session = requests.Session()
|
|
self.status = self.login(username, password)
|
|
|
|
def login(self, username, password):
|
|
# get login token
|
|
response = self.session.get('https://ccweb.ncnu.edu.tw/student/login.php')
|
|
loginToken = find(response, 'input', param={'name': 'token'}).get('value')
|
|
|
|
response = self.session.post(
|
|
"https://ccweb.ncnu.edu.tw/student/login.php",
|
|
data={
|
|
'token': loginToken,
|
|
'modal': '0',
|
|
'username': username,
|
|
'password': password,
|
|
'type': 'a'
|
|
}
|
|
)
|
|
if len(response.history)!=0:
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
def getCourseTable(self, semester):
|
|
url = "https://ccweb.ncnu.edu.tw/student/print_semester_course_list.php"
|
|
|
|
# get token
|
|
response = self.session.get(url)
|
|
token = find(response, 'input', param={'name': 'token'}).get('value')
|
|
response = self.session.post(
|
|
url,
|
|
data={
|
|
'year': semester,
|
|
'font': 'microsoftjhenghei',
|
|
'token': token,
|
|
}
|
|
)
|
|
if response.status_code == 200:
|
|
with open('{}課表.pdf'.format(semester), 'wb') as fp:
|
|
fp.write(response.content)
|
|
return True
|
|
else:
|
|
return False
|
|
|