def messages_handler(message): chat_id = message.chat.id if chat_id in user_step: if user_step[chat_id] == 'schedule_1': # return schedule by day user_step[chat_id] = 'schedule_2' bot.send_chat_action(chat_id, 'typing') parser = MPEIParser(config.phantom_driver_path) response = parser.get_by_day(check_user_group(chat_id), int(message.text), False) bot.send_message(message.chat.id, response) response = parser.get_by_day(check_user_group(chat_id), int(message.text), True) bot.send_message(message.chat.id, response) user_step[chat_id] = 0 elif user_step[chat_id] == 'init_group_1': # save user group db = SQLightHelper(config.database) db.save_user(message.chat.id, message.text) bot.send_message( message.chat.id, "Группа сохранена! Теперь можно получить свое расписание.") user_step[chat_id] = 0 else: bot.send_message(message.chat.id, "Неизвестная команда") else: bot.send_message(message.chat.id, "Неизвестная команда")
def send_welcome(message): db = SQLightHelper(config.database) if not db.select_single(message.chat.id): # no user in database bot.send_message( message.chat.id, "Вас приветствует mpei_bot! Для начала введите вашу группу в формате X-XX-XX. (Например А-08м-17)" ) user_step[message.chat.id] = 'init_group_1' # waiting for group name else: bot.send_message(message.chat.id, "Бот уже запущен!") db.close()
def check_user_group(chat_id): if chat_id in users: users[chat_id].last_used = time.time() return users[chat_id].group else: database = SQLightHelper(config.database) user = database.select_single(chat_id) if not user: return False user_group = user[0][1] user_spec = UserSpec(user_group) if len(users) > 20: # cleaning dictionary for i in users: if time.time( ) - users[i].last_used > config.timeout_to_clear_buffer: users.pop(i) users[user[0][0]] = user_spec return user_group
def delete_user(chat_id): db = SQLightHelper(config.database) if chat_id in users: users.pop(chat_id) if db.delete_user(chat_id): db.close() return True else: db.close() return False
def messages_handler(message): chat_id = message.chat.id if chat_id in user_step: if user_step[chat_id] == 'schedule_1': # return schedule by day user_step[chat_id] = 'schedule_2' bot.send_chat_action(chat_id, 'typing') parser = MPEIParser(config.phantom_driver_path) db = SQLightHelper(config.database) hide_board = types.ReplyKeyboardRemove() response = parser.get_by_day(db, check_user_group(chat_id), days.index(message.text) + 1, week=1) if not response: bot.send_message(message.chat.id, 'Расписание не найдено!', reply_markup=hide_board) else: bot.send_message(message.chat.id, response, reply_markup=hide_board) response = parser.get_by_day(db, check_user_group(chat_id), days.index(message.text) + 1, week=2) bot.send_message(message.chat.id, response) db.close() user_step[chat_id] = 0 elif user_step[chat_id] == 'init_group_1': # save user group db = SQLightHelper(config.database) db.save_user(message.chat.id, message.text) bot.send_message( message.chat.id, "Группа сохранена! Теперь можно получить свое расписание.") user_step[chat_id] = 0 else: bot.send_message(message.chat.id, "Неизвестная команда") else: bot.send_message(message.chat.id, "Неизвестная команда")