Задать вопрос
  • Почему может падать код бота?

    @arynyklas
    1) pip install telebot
    2) pip install pytelegrambotapi
    Ответ написан
    Комментировать
  • Ambiguous column name 'Number'? Что это?

    tsklab
    @tsklab Куратор тега SQL Server
    Здесь отвечаю на вопросы.
    SELECT PC.Number …
    Ответ написан
    2 комментария
  • Почему при нажатии на label не меняется состояние radiobutton?

    Exebeche
    @Exebeche Автор вопроса
    Осваиваю программирование
    И таки нарыл сам, после написания вопроса.
    Может еще кому пригодится
    Добавляем js и радуемся
    $('.form-check').click(
        function(){
            $(this).find(':radio').attr('checked','checked');
            //выделение всех чекбоксов на кликнутом контейнере, снять выделение через removeAttr("checked")
    });
    Ответ написан
    4 комментария
  • Время от времени открывается реклама "Вулкан", как убрать?

    @9uvwyuwo6pqt
    adwcleaner
    Ответ написан
    Комментировать
  • Webhook на https, но без самого .pem файла сертификата?

    copist
    @copist
    Empower people to give
    Ты веб-хук настраиваешь на HTTPS а SSL прицепить не можешь. Так работать не сможет.

    1. Попробуй сделать так, чтобы твой бот работал через HTTP, если это разрешено
    2. Меняй хостера, возьми VDS, устанавливай свой SSL (могу порекомендовать DigitalOcean или FirstVDS
    Ответ написан
    2 комментария
  • Можно на пальцах объяснить, про суть localhost и порты?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Если человек, не знакомый с арифметикой захочет понять, что означает "два плюс три равно пять", ему недостаточно объяснить, что такое "два", или что такое "плюс"! Так же и тут. Для понимания, что такое localhost, сначала нужно понять, что такое хост вообще, что такое сеть, что такое имя хоста, что такое сервер, как это все связано с адресами и номерами портов, а те - с, собственно, одним конкретным компом (который, в зависимости от контекста, могут называть и "хостом", и "сервером", и "localhost"). Так что, на всякий случай:

    Комп, подключенный к сети, называют хостом. К нему обращаются по уникальному адресу или имени. Одному имени (т.е. одному хосту) могут соответствовать несколько разных адресов.

    Когда к хосту обращаются по имени, это имя сначала разрешается в адрес хоста, по которому, собственно, и происходит обращение. В сети этим обычно занимается DNS (который, кстати говоря, тоже является сервером... но это уже другая история, которая сейчас не так важна для понимания сути), но если DNS нет, соответствие имен-адресов можно прописать в файле hosts на самом хосте. Если некое имя хоста и там не прописано, обратиться к нему по имени не удастся... хотя прямое обращение по адресу будет работать.

    Сервер - это программа, отвечающая на запросы из сети. Комп, на котором она выполняется, также называют "сервером". Причем, даже если выполнение программы приостановлено (например, проводят профилактику или программа-сервер упала), этот комп все равно будут называть "сервером", ибо он предназначен, в основном, для выполнения этой программы.

    На одном компе (=хосте, сервере) может одновременно выполняться несколько разных программ-серверов. Для того, чтоб обратиться к конкретной из них (адрес-то у всех один и тот же!), в протоколе TCP/IP используются разные номера портов.

    Если на компе запущен, например, HTTP сервер (= Webserver, например, Nginx или Apache), он "слушает" порт 80, а если не запущен, порт 80 никто не слушает, и если обратиться к такому хосту (= серверу, компу) по его адресу в порт 80, никакого ответа не придет... хотя сам хост и будет доступен.

    Для разных общеизвестных типов программ-серверов (в этом случае также говорят о "сервисах" или же "протоколах", что в данном контексте практически одно и то же) принято использовать общеизвестные номера портов, а для наиболее распространенных (как тот же HTTP) можно даже не указывать номер порта при обращении, как мы обычно и делаем в строке броузера, т.к. клиент автоматически использует номер порта по умолчанию, в данном случае 80. Но, в принципе, любой сервис можно (переконфигурировав) использовать на любом порту... если, конечно, в этом есть смысл. Единственно, что нельзя - одновременно использовать разные серверы на одном порту.

    И, наконец, было бы совсем глупо, если бы для обращения к какому-то серверу на одном хосте в сети обязательно был бы нужен еще и другой комп, с которого обращаться. Вот и придумали возможность обратиться к программе-серверу с того же хоста, на котором она выполняется, т.е. локально, а чтоб не гадать, по какому адресу или имени это делать, ввели понятие localhost.

    localhost - "общеизвестное" имя компа для самого себя и ему соответствует IP адрес 127.0.0.1. Это - общепринятая договоренность, которую просто нужно знать. Если говорят "установить сервер на localhost", это означает "установить на тот самый комп, с которого и обращаться к этому серверу".
    Ответ написан
    1 комментарий
  • Telegram+python+flask+PyTelegramBotApi+pythonanywhere+webhook?

    @egor201
    Для PyTelegramBotApi работает следующее:

    from flask import Flask, request
    import telebot
    from telebot import types
    import time
    
    secret = "GUID"
    bot = telebot.TeleBot('TOKEN_TELEGRAM', threaded=False)
    
    bot.remove_webhook()
    time.sleep(1)
    bot.set_webhook(url="https://YOURNAME.pythonanywhere.com/{}".format(secret))
    
    app = Flask(__name__)
    
    @app.route('/{}'.format(secret), methods=["POST"])
    def webhook():
        bot.process_new_updates([telebot.types.Update.de_json(request.stream.read().decode("utf-8"))])
        print("Message")
        return "ok", 200
    
    
    @bot.message_handler(commands=['start', 'help'])
    def startCommand(message):
        bot.send_message(message.chat.id, 'Hi *' + message.chat.first_name + '*!' , parse_mode='Markdown', reply_markup=types.ReplyKeyboardRemove())


    проверено на платном аккаунте
    Ответ написан
    3 комментария
  • Как устранить ошибку ssl сертификата в Python?

    npanuhin
    @npanuhin Автор вопроса
    В этой ситуации код должен быть следующим (модулями для python3, позволяющими "проще" взаимодействовать с VK API лучше не пользоваться):

    import requests
    r = requests.get("url", params={"key_1": "value_1", "key_N": "value_N"}, verify=False)


    "verify=False" говорит requests, что не нужно проверять сертификат при выполнении запроса.

    Возможны предупреждения со стороны python, но они не влияют на ход выполнения программы.
    Как отключить уведомление безопасности

    До выполнения запросов с "verify=False" вставьте:
    from urllib3 import disable_warnings, exceptions
    disable_warnings(exceptions.InsecureRequestWarning)

    Ответ написан
    Комментировать
  • Открыть доступ к серверу flask из вне?

    NeiroNx
    @NeiroNx
    Программист
    app.run(host="0.0.0.0", port="80")
    Ответ написан
    Комментировать
  • Как запустить телеграм бота из-за прокси?

    @psy667
    Node.js backend developer
    Установите последние версии библиотек gunicorn, PySocks, pyTelegramBotAPI, requests и urllib3

    Затем попробуйте использовать другой прокси, например этот
    ip = '195.201.137.246'
    port = '1080'
    
    apihelper.proxy = {
      'https': 'socks5://{}:{}'.format(ip,port)
    }
    Ответ написан
    2 комментария
  • Как подключить телеграм бота python?

    t0rr
    @t0rr
    PM
    Самый свежая, современная и всегда самая актуальная библиотека - aiogram.
    По ссылке открывается репозиторий. В нём есть примеры.

    Если машина, с которой вы запускаете бота, находится в РФ, то вам понадобится использование proxy (в связи с блокировкой от РКН).
    Бесплатные прокси можно поискать в телеграм, или купить доступ к прокси за небольшие деньги.
    Ответ написан
    Комментировать
  • Не срабатывает callback у inline keyboard в telegram боте. В чем может быть причина?

    @AndrewPythonBuilder
    Новичок Питонист
    Замените:
    update.message.reply_text('Please choose:', reply_markup=reply_markup)

    На:
    bot.send_message(update.message.chat.id,'Please choose:', reply_markup=reply_markup)

    И если вы хотите, чтобы отвечало, замените функцию button на:
    def button(bot, update):
        query = update.callback_query
    
        # query.edit_message_text(text="Selected option: {}".format(query.data))
    
        print(query)
    
        bot.send_message(query.message.chat_id, str(query.data))
    Ответ написан
    Комментировать
  • Python и SQlite3. В чём проблема?

    @vitHlJT62b7VCE2 Автор вопроса
    Понял, нужно было взять в кавычки название таблицы. В примерах такого не видел.
    Вопрос закрыт.
    Ответ написан
    Комментировать
  • Чем нейронные сети отличаются от ИИ?

    adugin
    @adugin
    ИИ - область машинного обучения, нейросеть - один из инструментов.
    Ответ написан
    1 комментарий
  • Чем нейронные сети отличаются от ИИ?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    5e7096d14cca5837411277.jpeg
    Искусственный интеллект — название всей области, как биология или химия.

    Машинное обучение — это раздел искусственного интеллекта. Важный, но не единственный.

    Нейросети — один из видов машинного обучения. Популярный, но есть и другие, не хуже.

    Глубокое обучение — архитектура нейросетей, один из подходов к их построению и обучению. На практике сегодня мало кто отличает, где глубокие нейросети, а где не очень. Говорят название конкретной сети и всё.

    источник
    Ответ написан
    Комментировать
  • Чат-бот на Python + SQLite. Где искать информацию?

    @xdgadd
    ML/Python/Cpp
    Годный гайд по ботам.
    1) Для учебных/маленьких проектов sqlite подойдет.
    2) Документацию гуглите сами, в интернете полно сайтов. Тем более, vk api, которое изначально на русском(учите английский, без него вы не сможете нормально учиться и работать).
    3) PEP8
    4) Вот, вот и вот.
    Ответ написан
    Комментировать
  • Как запустить телеграм бота из-за прокси?

    Danya_Violet
    @Danya_Violet
    CTO/CIO
    https://github.com/eternnoir/pyTelegramBotAPI#proxy

    документация:
    apihelper.proxy = {'https':'socks5://userproxy:password@proxy_address:port'}

    но если не работает, попробуйте:
    apihelper.proxy = {'https':'socks5h://userproxy:password@proxy_address:port'}


    Найдено тут
    Ответ написан
    1 комментарий
  • Как заставить python-telegram-bot работать с прокси?

    @OlegPyatakov
    pyatakov.com
    Сейчас, чтобы законнектить Телеграм бота через прокси, нужно выполнить два условия:

    • Используемый Socks прокси должен поддерживать SSL. Далеко не каждый прокси в интернете его поддерживает - нужно проверять. Указанный в вашем конфиге - не поддерживает или делает это как-то необычно.
    • Боту нужно передавать дополнительно параметры для библиотеки коннекта, чтобы та игнорировала ошибки сертификатов. В вашем случае, нужны параметры для Urllib3.


    Попробуйте вот так. Я только что проверил - мой бот с таким конфигом нормально коннектится и посылает сообщение с картинкой.

    REQUEST_KWARGS={
        'proxy_url': 'socks4://171.103.9.22:4145/',
        # Optional, if you need authentication:
        'urllib3_proxy_kwargs': {
            'assert_hostname': 'False',
            'cert_reqs': 'CERT_NONE'
            # 'username': 'user',
            # 'password': 'password'
        }
    }
    Ответ написан
    3 комментария
  • Проблема с ботом на python?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    bot.send_message(message.chat.id,'Посмотри на клавиатуру и выбери свой город',reply_markup=markup)

    Между chat и id нужна точка вместо запятой.
    Ответ написан
    Комментировать
  • Где искать удаленку за бугром?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Искать так же как неудаленку.
    Сделать хорошее CV, искать вакансии, рассылать резюме, проходить собеседования.

    Есть сайты с вакансиями для удаленщиков.
    Есть агенства которые сводят удаленщиков с заказчиками в разном формате.

    Результат зависит от вашего уровня, специализации, нетворкинга способности общаться и прочего.
    То что вы зарегались в linkedin (я предполагаю что с профилем там все ок иначе нет смысла) это хорошо, но это пассивный поиск - может кто-то вас сам найдет, а может и 10 лет прождете.
    Ответ написан
    Комментировать