def UpdateInforTeacher(self, sender_id: str) -> str: teacher = TeacherEntry() if teacher.find_one('teacher_id', sender_id).__len__() == 1: name = re.findall("name :.+,", self.message)[0].split(':')[1].strip(' ,') birday = re.findall("birday :.+", self.message)[0].split(':')[1].strip() # Update thông tin giáo viên self.update_info_teacher(sender_id, name, birday) return 'Bạn đã cập nhật thông tin thành công' else: return 'Trước tiên bạn phải đăng ký giáo viên !!!'
def RegisterTeacher(self, sender_id: str) -> str: teacher = TeacherEntry() if teacher.find_one('teacher_id', sender_id).__len__() == 0: code = self.message.split(':')[1].strip() #Kiem tra code co trong bang TeacherCode khong teacher_code = TeacherCodeEntry() if teacher_code.find_one('teacher_code', code).__len__() == 1: self.insert_info(sender_id, code) # Yeu cau cap nhat thong tin giao vien return 'Bạn hãy nhập theo format: name : [your_name], birday : [yyyy-mm-dd]' else: return 'Mã code không tồn tại !!!' else: return 'Tài khoản đã đăng ký!!!'
def TeacherReply(self, sender_id: str): teacher = TeacherEntry() if teacher.find_one('teacher_id', sender_id).__len__() == 1: # Lưu câu trả lời xuống csdl content = self.message.split(':') idQuestion = content[1].strip() idHocSinh = content[2].strip() anwser = content[3].strip() self.update_message_not_respond(idQuestion, anwser) # Gửi câu trả lời cho sinh viên Facebook("").send_text(idHocSinh, anwser) else: return 'Trước tiên bạn phải đăng ký giáo viên !!!'
from Entities.TeacherEntry import TeacherEntry field_name = ['teacher_name', 'teacher_birday'] field_value = ['quang vu', '2000-11-30'] teacher = TeacherEntry() print(tuple(teacher.find_one('teacher_id', '2086508114793671'))) # set_value = "" # leng = field_name.__len__() # for i in range(0, leng): # if i < leng - 1: # set_value += "{} = '{}',".format(field_name[i], field_value[i]) # else: # set_value += "{} = '{}'".format(field_name[i], field_value[i]) # print(set_value)
async def run( self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any], ) -> List[Dict[Text, Any]]: try: logger.debug("-------------------------Action action_default_fallback--------------") logger.debug(tracker.sender_id) # lấy câu hỏi mới nhất của sinh viên message = tracker.latest_message['text'] service = AnalysisService(message) # Kiem tra user dang ky giao vien if re.findall("\Acode", message): dispatcher.utter_message(service.RegisterTeacher(tracker.sender_id)) return [] # Kiem tra user cap nhat thong tin if re.findall("\Aname .+birday :", message): dispatcher.utter_message(service.UpdateInforTeacher(tracker.sender_id)) return [] # Kiểm tra user có muốn trả lời câu hỏi của sinh viên không if re.findall("\Areply", message): dispatcher.utter_message(service.TeacherReply(tracker.sender_id)) return [] # Neu khong phai # Thi chuyen cau hoi cho giao vien # Nếu là user bình thường sẽ chuyển câu hỏi cho giáo viên còn không thì dừng teacher = TeacherEntry() if teacher.find_one('teacher_id', tracker.sender_id).__len__() == 0: # Xác định câu hỏi thuộc khoa nào #analysisService = AnalysisService(message) #facultyId = analysisService.analysisFaculty() facultyId = "CNTT" # tim id giao vien trong bang giao vien teacher_id = teacher.find_id_by_faculty(facultyId) # Gửi câu hỏi cho giáo viên của khoa đó for id in teacher_id: idteacher = tuple(id)[0] logger.debug("id giáo vien : " + idteacher) fb = Facebook("EAALDNVOTxYEBAIQTOhRKl7ZA7EM7mTz4k2UFMSHomhZAZBp7uL5NIQmyUhjwKtKcC1pM0KacxpQsiJ8ASQIDZC7XQZAyy9p9rCxZAUBkXZA8JaCnqRzFzFbbCGu8mRl5XCAF3pU91cwuECZBfwhYwGVXPBi3xJzWqDgY37inltG3xwZDZD") text = "{} : {} : {}".format([id cau hoi] , tracker.sender_id, message) await fb.send_text(idteacher, text) dispatcher.utter_message('Tôi đã chuyển câu hỏi này cho giáo viên. Tôi sẽ phản hồi khi có thông tin cho bạn !') else: dispatcher.utter_message(text="Xin lỗi nhưng câu hỏi của không có trong dữ liệu. Tôi sẽ phản hồi nó khi có thông tin về câu hỏi của bạn") except Exception as e: logger.debug(e) dispatcher.utter_message(text="Xin lỗi nhưng câu hỏi của không có trong dữ liệu. Tôi sẽ phản hồi nó khi có thông tin về câu hỏi của bạn") pass logger.debug("Done analysis") # Revert user message which led to fallback. return []
def update_info_teacher(self, id: str, name: str, birday: str): teacher = TeacherEntry() teacher.update(['teacher_name', 'teacher_birday'], [name, birday], 'teacher_id', id)
def insert_info(self, id: str, code: str): teacher_code = TeacherCodeEntry() MaKhoa = teacher_code.find_one('teacher_code', code)[0][1] teacher = TeacherEntry() teacher.insert([(id, code, '', '', MaKhoa)])