예제 #1
0
def cancel(bot, update):
    user = db.get_user(update.message.chat_id)
    if user is None or user.state == states.NONE:
        # user is None if /start was not sent
        return bot.send_message(chat_id=user.user_id,
                                text=strings.CANCEL_ALREADY_NONE)
    else:
        db.update_user_state(user.user_id, states.NONE)
        return bot.send_message(chat_id=user.user_id, text=strings.CANCEL_OK)
예제 #2
0
def handle_messages_state_add_prompt_code(bot, update):
    """When user sends a text message in response to the bot's prompt to send a
    module code over."""
    code = update.message.text.upper()
    user_id = update.message.chat_id
    if not validate.is_code_valid(code):
        return bot.send_message(chat_id=user_id, text=strings.ADD_INVALID_CODE)
    elif not validate.is_code_unique(code):
        return bot.send_message(chat_id=user_id, text=strings.ADD_CODE_EXISTS)
    else:
        db.update_user_state(user_id, states.ADD_PROMPT_URL)
        db.update_user_saved_state(user_id, code)
        return bot.send_message(chat_id=user_id, text=strings.ADD_PROMPT_URL)
예제 #3
0
def handle_messages_state_add_prompt_url(bot, update):
    """When user sends a text message in response to the bot's prompt to send a
    URL invite link over."""
    url = update.message.text
    user_id = update.message.chat_id
    if not validate.is_url_valid(url):
        return bot.send_message(chat_id=user_id, text=strings.ADD_INVALID_URL)
    elif not validate.is_url_unique(url):
        return bot.send_message(chat_id=user_id, text=strings.ADD_URL_EXISTS)
    else:
        user = db.get_user(user_id)
        db.insert_group(user.saved_state, url, user.user_id)
        db.update_user_state(user_id, states.NONE)
        db.update_user_saved_state(user_id, None)
        return bot.send_message(chat_id=user_id,
                                text=strings.ADD_OK.format(
                                    user.saved_state, url),
                                parse_mode=telegram.ParseMode.HTML)
예제 #4
0
def test_update_user_state(user_row):
    new_state = random.randint(0, 999)
    assert db.insert_user(*user_row) == True
    assert db.update_user_state(user_row[0], new_state) == True
    assert db.get_user(user_row[0]).state == new_state
예제 #5
0
def test_update_user_state_not_exist(user_row):
    new_state = random.randint(0, 999)
    assert db.update_user_state(user_row[0], new_state) is None
예제 #6
0
def add(bot, update):
    db.update_user_state(update.message.chat_id, states.ADD_PROMPT_CODE)
    return bot.send_message(chat_id=update.message.chat_id, text=strings.ADD)