#! /usr/bin/env python3 # necessary modules import requests from bs4 import BeautifulSoup from pprint import pprint # configurations import config class kuser_api: def __init__(self): self.session = requests.Session() # login kCOJ def login_kcoj(self, username, password): payload = {'name': username, 'passwd': password, 'rdoCourse': 1} return self.session.post(config.URL + '/Login', data=payload) # check online status def check_online(self): response = self.session.get(config.URL + '/TopMenu') soup = BeautifulSoup(response.text, 'html.parser') return soup.find('a').get_text() == '線上考試' # list all questions, deadline and hand-in status def list_questions(self): questions = {} response = self.session.get(config.URL + '/HomeworkBoard') soup = BeautifulSoup(response.text, 'html.parser') for tag in soup.find_all('tr'): if tag.find('a') == None: continue else: number = tag.find('a').get_text() deadline = tag.find_all('td')[3].get_text() submit = "期限已到" if tag.find_all('td')[4].get_text().strip() == "期限已過" else "期限未到" status = tag.find_all('td')[5].get_text().strip() questions[number] = (deadline, submit, status) return questions # show the content of the question def show_question(self, number): response = self.session.get(config.URL + '/showHomework', params={'hwId': number}) soup = BeautifulSoup(response.text, 'html.parser') content = str(soup.find('body')) content = content.replace('
\n', '') content = content.replace('\n\n', '').replace('\n', '') content = content.replace('', '') content = content.replace(' 繳交作業 ', '') content = content.replace('', '').replace('