diff --git a/bot.py b/bot.py
index bcdba87..0f36fcc 100644
--- a/bot.py
+++ b/bot.py
@@ -3,6 +3,7 @@
# necessary modules
import time, requests, telepot
from telepot.loop import MessageLoop
+from telepot.namedtuple import KeyboardButton, ReplyKeyboardMarkup, ReplyKeyboardRemove
from pprint import pprint
# kCOJ API
import access
@@ -23,14 +24,14 @@ class kuser:
return True
else:
self.status = 1
- bot.sendMessage(chat_id, "哇...登入失敗,讓我們重新開始一次")
+ bot.sendMessage(chat_id, "哇...登入失敗,讓我們重新開始一次", reply_markup=ReplyKeyboardRemove())
time.sleep(0.6)
- bot.sendMessage(chat_id, "請輸入您的學號:")
+ bot.sendMessage(chat_id, "請輸入您的學號:", reply_markup=ReplyKeyboardRemove())
return False
def display_main(self, chat_id):
self.status = 3
q_list = self.api.list_questions()
- q_available = "📝可繳交的作業\n"
+ q_available = "📝可繳交的作業\n\n"
q_unavailable = "📝沒有可繳交的作業哦!\n"
if q_list == {}:
q_str = q_unavailable
@@ -38,13 +39,46 @@ class kuser:
q_str = q_available
for key in q_list.keys():
if q_list[key][1] == '期限未到':
- q_str += "第 " + key + " 題到 " + q_list[key][0] + "\n/question_" + key + "\n"
+ q_str += "📗" + key + " (到 " + q_list[key][0] + ")\n [" + q_list[key][2] + "] /question_" + key + "\n\n"
if q_str == q_available:
q_str = q_unavailable
bot.sendMessage(chat_id, "💁 " + self.username + " /logout\n"
"➖➖➖➖➖\n" + q_str + "➖➖➖➖➖\n"
- "你今天寫扣了嗎?", parse_mode='HTML')
-
+ "你今天寫扣了嗎?", parse_mode='HTML',
+ reply_markup=ReplyKeyboardMarkup(keyboard=[
+ [KeyboardButton(text="查看題庫📝"), KeyboardButton(text="重新整理🔃")],
+ [KeyboardButton(text="登出帳號🚪"), KeyboardButton(text="提供幫助📚")]
+ ]))
+ def display_questions(self, chat_id):
+ q_list = self.api.list_questions()
+ q_str = ''
+ for key in q_list.keys():
+ if q_list[key][1] == '期限未到':
+ q_str += "📗" + key + " (到 " + q_list[key][0] + ")\n [" + q_list[key][2] + "] /question_" + key + "\n\n"
+ else:
+ q_str += "📕" + key + " (到 " + q_list[key][0] + ")\n [" + q_list[key][2] + "] /question_" + key + "\n\n"
+ bot.sendMessage(chat_id, "💁 " + self.username + " /logout\n"
+ "➖➖➖➖➖\n"
+ "📝所有作業\n\n" + q_str +
+ "➖➖➖➖➖\n"
+ "你今天寫扣了嗎?", parse_mode='HTML',
+ reply_markup=ReplyKeyboardMarkup(keyboard=[
+ [KeyboardButton(text="回主畫面🏠"), KeyboardButton(text="重新載入🔃")],
+ [KeyboardButton(text="登出帳號🚪"), KeyboardButton(text="提供幫助📚")]
+ ]))
+ def display_question(self, chat_id, number):
+ content = self.api.show_question(number)
+ q = self.api.list_questions()[number]
+ q_str = "📗" if q[1] == '期限未到' else "📕"
+ q_str += "" + number + " (到 " + q[0] + ")"
+ bot.sendMessage(chat_id, q_str + "\n" + content + "
\n" + q_str,
+ parse_mode='HTML',
+ reply_markup=ReplyKeyboardMarkup(keyboard=[
+ [KeyboardButton(text="回主畫面🏠"), KeyboardButton(text="回到題庫📝")],
+ [KeyboardButton(text="上傳解答📮"), KeyboardButton(text="查看結果☑️"), KeyboardButton(text="通過名單🌐")] if q[1] == '期限未到' else
+ [KeyboardButton(text="查看結果☑️"), KeyboardButton(text="通過名單🌐")],
+ [KeyboardButton(text="登出帳號🚪"), KeyboardButton(text="提供幫助📚")]
+ ]))
def split_cmd(text):
if text[0] != '/':
@@ -77,15 +111,30 @@ def on_chat(msg):
bot.sendMessage(chat_id, "登入中...")
if me.test_login(chat_id) == True:
me.display_main(chat_id)
- elif command[0] == '/start':
+ elif command[0] == '/start' or command[0] == '重新整理🔃' or command[0] == '回主畫面🏠':
if me.status == 0:
me.status = 1
- bot.sendMessage(chat_id, "是初次見面的朋友呢,設定一下吧!\n")
+ bot.sendMessage(chat_id, "是初次見面的朋友呢,設定一下吧!", reply_markup=ReplyKeyboardRemove())
time.sleep(0.6)
- bot.sendMessage(chat_id, "請輸入您的學號:")
+ bot.sendMessage(chat_id, "請輸入您的學號:", reply_markup=ReplyKeyboardRemove())
else:
if me.test_login(chat_id) == True:
me.display_main(chat_id)
+ elif command[0] == '/question' or command[0] == '查看題庫📝' or command[0] == '重新載入🔃' or command[0] == '回到題庫📝':
+ if me.test_login(chat_id) == True:
+ if len(command) > 1:
+ me.display_question(chat_id, command[1])
+ else:
+ me.display_questions(chat_id)
+ elif command[0] == '/help' or command[0] == '提供幫助📚':
+ pass
+ elif command[0] == '/logout' or command[0] == '登出帳號🚪':
+ bot.sendMessage(chat_id, "您現在已經是登出的狀態。", reply_markup=ReplyKeyboardRemove())
+ me = kuser()
+ me.status = 1
+ users[str(chat_id)] = me
+ time.sleep(0.6)
+ bot.sendMessage(chat_id, "請輸入您的學號:", reply_markup=ReplyKeyboardRemove())
else:
bot.sendMessage(chat_id, "我不是來看這些的。")