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)
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)
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)
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
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
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)