fix timeout and connection problem

This commit is contained in:
2017-08-09 20:33:20 +08:00
parent a66de774cb
commit 6fde438dcf
2 changed files with 9 additions and 8 deletions

View File

@ -16,14 +16,14 @@ class kuser_api:
payload = {'name': username, payload = {'name': username,
'passwd': password, 'passwd': password,
'rdoCourse': 1} 'rdoCourse': 1}
return self.session.post(config.URL + '/Login', data=payload, timeout=0.1) return self.session.post(config.URL + '/Login', data=payload, timeout=0.5)
except requests.exceptions.Timeout: except requests.exceptions.Timeout:
return None return None
# check online status # check online status
def check_online(self): def check_online(self):
try: try:
response = self.session.get(config.URL + '/TopMenu', timeout=0.1) response = self.session.get(config.URL + '/TopMenu', timeout=0.5)
soup = BeautifulSoup(response.text, 'html.parser') soup = BeautifulSoup(response.text, 'html.parser')
return soup.find('a').get_text() == '線上考試' return soup.find('a').get_text() == '線上考試'
except requests.exceptions.Timeout: except requests.exceptions.Timeout:
@ -81,7 +81,7 @@ class kuser_api:
def list_results(self, number, username): def list_results(self, number, username):
try: try:
results = [] results = []
response = self.session.get(config.URL + '/CheckResult.jsp', params={'questionID': number, 'studentID': username}, timeout=0.1) response = self.session.get(config.URL + '/CheckResult.jsp', params={'questionID': number, 'studentID': username}, timeout=0.5)
soup = BeautifulSoup(response.text, 'html.parser') soup = BeautifulSoup(response.text, 'html.parser')
for tr in soup.find_all('tr'): for tr in soup.find_all('tr'):
td = tr.find('td') td = tr.find('td')
@ -96,7 +96,7 @@ class kuser_api:
try: try:
payload = {'pass': password, payload = {'pass': password,
'submit': 'sumit'} 'submit': 'sumit'}
response = self.session.post(config.URL + '/changePasswd', data=payload, timeout=0.1) response = self.session.post(config.URL + '/changePasswd', data=payload, timeout=0.5)
soup = BeautifulSoup(response.text, 'html.parser') soup = BeautifulSoup(response.text, 'html.parser')
return str(soup.find('body')).split()[-2] == 'Success' return str(soup.find('body')).split()[-2] == 'Success'
except requests.exceptions.Timeout: except requests.exceptions.Timeout:
@ -105,7 +105,7 @@ class kuser_api:
# delete the answer of the question # delete the answer of the question
def delete_answer(self, number): def delete_answer(self, number):
try: try:
response = self.session.get(config.URL + '/delHw', params={'title': number}, timeout=0.1) response = self.session.get(config.URL + '/delHw', params={'title': number}, timeout=0.5)
soup = BeautifulSoup(response.text, 'html.parser') soup = BeautifulSoup(response.text, 'html.parser')
return soup.find('body').get_text().replace('\n', '') == 'delete success' return soup.find('body').get_text().replace('\n', '') == 'delete success'
except requests.exceptions.Timeout: except requests.exceptions.Timeout:
@ -114,11 +114,11 @@ class kuser_api:
# hand in a answer # hand in a answer
def upload_answer(self, number, file_path): def upload_answer(self, number, file_path):
try: try:
self.session.get(config.URL + '/upLoadHw', params={'hwId': number}, timeout=0.1) self.session.get(config.URL + '/upLoadHw', params={'hwId': number}, timeout=0.5)
response = self.session.post(config.URL + '/upLoadFile', response = self.session.post(config.URL + '/upLoadFile',
data={'FileDesc': 'Send from kcoj_bot'}, data={'FileDesc': 'Send from kcoj_bot'},
files={'hwFile': open(file_path, 'rb')}, files={'hwFile': open(file_path, 'rb')},
timeout=0.1) timeout=0.5)
soup = BeautifulSoup(response.text, 'html.parser') soup = BeautifulSoup(response.text, 'html.parser')
return soup.find('body').get_text().strip() != '您沒有上傳檔案 請重新操作' return soup.find('body').get_text().strip() != '您沒有上傳檔案 請重新操作'
except requests.exceptions.Timeout: except requests.exceptions.Timeout:

3
bot.py
View File

@ -113,4 +113,5 @@ def main():
if __name__ == '__main__': if __name__ == '__main__':
main() main()
while True: while True:
time.sleep(10) time.sleep(100)
bot.getMe()