hacker342
@hacker342
Like Linux

Как добавить https в ссылку telebot?

Использую библиотеку telebot для ботов.
Проблема такая, не получается обработать ссылку. Сценарий такой, пользователь вводит ссылку, но бывает такое, что ссылка может быть коротка, без https, www, например - test.ru. Мне надо сделать такую обработку, что бы бот сам добавлял https и www, а если пользователь указывает полную ссылку, т.е с https://www.test.ru - то все ок и переходим к следующему шагу.

Когда пользователь нажимает - start, вызывается функция:
@bot.callback_query_handler(func=lambda message: True)
def send_anytext(message):
    chat_id = message.message.chat.id
    if message.data == 'utm_links':
       msg = bot.send_message(chat_id, 'Введите адрес сайта в формате https://domain.ru/\n\nНапример, https://yandex.ru/', parse_mode='HTML')
    bot.register_next_step_handler(msg, get_utm_source)


Следующий шаг, поидее на функции get_utm_source - происходит обработка
def get_utm_source(message):
    global get_utm_source;
    get_utm_source = message.text;
    
    chat_id = message.chat.id
    msg = bot.send_message(chat_id, "Введите сообщение")
    bot.register_next_step_handler(msg, get_utm_medium)


Я сделал отдельно вот такую конструкцию:
def convert(url):
    if url.startswith('http://www.'):
        return 'http://' + url[len('http://www.'):]
    if url.startswith('www.'):
        return 'http://' + url[len('www.'):]
    if not url.startswith('http://'):
        return 'http://' + url
    return url


Но что-то не могу понять как это встроить в код бота.
  • Вопрос задан
  • 304 просмотра
Пригласить эксперта
Ответы на вопрос 1
Aveyloff
@Aveyloff
Вам нужно примерно так сделать конверт
def convert(url):
    if not 'https://' in url:
        return 'https://' + url
    else:
        return url
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы