feat: 更改API名稱 & 新增活動報名登入
This commit is contained in:
parent
d720c32545
commit
bca08dcbf2
26
API_Usage.py
26
API_Usage.py
@ -1,7 +1,8 @@
|
|||||||
from config import CONFIG
|
from config import CONFIG
|
||||||
from api.moodle import Moodle
|
from api.moodle import MoodleAPI
|
||||||
from api.ncnuMain import NcnuMain
|
from api.ncnuMain import NcnuMainAPI
|
||||||
from api.ncnu import NCNU
|
from api.ncnu import NcnuAPI
|
||||||
|
from api.eventRigestry import EventRegistry
|
||||||
|
|
||||||
def space():
|
def space():
|
||||||
print("\n" + "="*20 + "\n")
|
print("\n" + "="*20 + "\n")
|
||||||
@ -9,7 +10,7 @@ def space():
|
|||||||
# =================== TEST Moodle API ==========================
|
# =================== TEST Moodle API ==========================
|
||||||
|
|
||||||
# ===== Test 登入 =====
|
# ===== Test 登入 =====
|
||||||
moodle = Moodle(CONFIG['moodle']['username'], CONFIG['moodle']['password'])
|
moodle = MoodleAPI(CONFIG['moodle']['username'], CONFIG['moodle']['password'])
|
||||||
if moodle.status:
|
if moodle.status:
|
||||||
|
|
||||||
# ===== Test 取得該學期課程資料 =====
|
# ===== Test 取得該學期課程資料 =====
|
||||||
@ -40,7 +41,7 @@ else:
|
|||||||
# =================== Test 暨大官網 API ==========================
|
# =================== Test 暨大官網 API ==========================
|
||||||
|
|
||||||
# ===== Test 取得暨大官網最新消息 =====
|
# ===== Test 取得暨大官網最新消息 =====
|
||||||
main = NcnuMain()
|
main = NcnuMainAPI()
|
||||||
for anno in main.getAnno():
|
for anno in main.getAnno():
|
||||||
print(anno)
|
print(anno)
|
||||||
space()
|
space()
|
||||||
@ -50,7 +51,7 @@ space()
|
|||||||
# =================== Test 暨大教務系統 API ==========================
|
# =================== Test 暨大教務系統 API ==========================
|
||||||
|
|
||||||
# ===== Test 登入 =====
|
# ===== Test 登入 =====
|
||||||
ncnu = NCNU(CONFIG['NCNU']['username'], CONFIG['NCNU']['password'])
|
ncnu = NcnuAPI(CONFIG['NCNU']['username'], CONFIG['NCNU']['password'])
|
||||||
if ncnu.status:
|
if ncnu.status:
|
||||||
|
|
||||||
# ===== Test 下載課表 =====
|
# ===== Test 下載課表 =====
|
||||||
@ -99,3 +100,16 @@ if ncnu.status:
|
|||||||
space()
|
space()
|
||||||
else:
|
else:
|
||||||
print("NCNU 教務系統登入失敗")
|
print("NCNU 教務系統登入失敗")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# =================== Test 暨大活動報名系統 API ==========================
|
||||||
|
|
||||||
|
# ===== Test 登入 =====
|
||||||
|
eventReg = EventRegistry(CONFIG['NCNU']['username'], CONFIG['NCNU']['password'])
|
||||||
|
if eventReg.status:
|
||||||
|
print("登入成功")
|
||||||
|
space()
|
||||||
|
else:
|
||||||
|
print("登入失敗")
|
||||||
|
|||||||
38
api/eventRigestry.py
Normal file
38
api/eventRigestry.py
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
import requests
|
||||||
|
from api.tools import *
|
||||||
|
|
||||||
|
class EventRegistry():
|
||||||
|
def __init__(self, username, password):
|
||||||
|
'''
|
||||||
|
initial 就登入
|
||||||
|
根據 self.status 判斷成功與否
|
||||||
|
'''
|
||||||
|
self.username = username # 學號
|
||||||
|
self.session = requests.Session()
|
||||||
|
self.status = self.login(username, password)
|
||||||
|
|
||||||
|
def login(self, username, password):
|
||||||
|
'''
|
||||||
|
登入活動報名系統
|
||||||
|
return bool
|
||||||
|
'''
|
||||||
|
# get login token
|
||||||
|
response = self.session.get('https://ccweb.ncnu.edu.tw/SLLL/login.asp')
|
||||||
|
loginToken = find(response, 'input', param={'name': 'token'}).get('value')
|
||||||
|
|
||||||
|
# request login page
|
||||||
|
response = self.session.post(
|
||||||
|
"https://ccweb.ncnu.edu.tw/SLLL/login.asp",
|
||||||
|
data={
|
||||||
|
'token': loginToken,
|
||||||
|
'username': username,
|
||||||
|
'password': password,
|
||||||
|
'type': ''
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
# 成功的話 return http 302, redirect
|
||||||
|
if len(response.history)!=0:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
@ -4,7 +4,7 @@ from bs4 import BeautifulSoup
|
|||||||
from api.tools import *
|
from api.tools import *
|
||||||
import json
|
import json
|
||||||
|
|
||||||
class Moodle():
|
class MoodleAPI():
|
||||||
def __init__(self, username, password):
|
def __init__(self, username, password):
|
||||||
'''
|
'''
|
||||||
Create a Moodle object to handle Session
|
Create a Moodle object to handle Session
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import requests
|
import requests
|
||||||
from api.tools import *
|
from api.tools import *
|
||||||
|
|
||||||
class NCNU():
|
class NcnuAPI():
|
||||||
def __init__(self, username, password):
|
def __init__(self, username, password):
|
||||||
'''
|
'''
|
||||||
initial 就登入
|
initial 就登入
|
||||||
|
|||||||
@ -2,7 +2,7 @@ from api.tools import *
|
|||||||
import requests
|
import requests
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
class NcnuMain():
|
class NcnuMainAPI():
|
||||||
def getAnno(self):
|
def getAnno(self):
|
||||||
response = requests.get('https://www.ncnu.edu.tw/ncnuweb/ann/tabs.aspx?homeType=ncnu&unit=ncnu')
|
response = requests.get('https://www.ncnu.edu.tw/ncnuweb/ann/tabs.aspx?homeType=ncnu&unit=ncnu')
|
||||||
block = find(response, 'div', param={'id': 'annNews'})
|
block = find(response, 'div', param={'id': 'annNews'})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user