Пример #1
0
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, "Неизвестная команда")
Пример #2
0
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()
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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, "Неизвестная команда")