Ответы пользователя по тегу Telegram
  • Как сделать интервал на команду телеграм бота?

    @RINAMI
    Занимаюсь монтажом и дизайном. PSD,AEX,VEG.
    Добрый день, чтобы ограничивать определенные команды, нужен модуль threading, самый простой способ:
    import threading
    def test()
         #options
    def thread2():  # Поток 2
        thr2 = Thread(target=test)
        thr2.start()

    Пример на vk_api:
    mes = event.object.message['text']
    if mes == 'ваша_команда':
      try:
       test()  #Пользователь один раз использует команду
       time.sleep(5) #Лимит на 5 секунд
      except:
            pass

    P.S в конце кода добавьте:
    if __name__ == '__main__':
        thread2()

    Итог: способ простой и эффективный, пользователь пишет команду один раз, далее ограничение и можно опять использовать.
    Ответ написан
  • Как сделать получение аватарки по id через vkapi и отправку ее в телеграм боте?

    @RINAMI
    Занимаюсь монтажом и дизайном. PSD,AEX,VEG.
    Добрый день! Вот пример на vk_api BotsLongPoll
    #Функция получения аватарки
    def get_ava():
        ava = vk.method('users.get', {'user_ids': mes.split(' ')[1], 'fields': 'photo_id', 'name_case': 'nom'})[0]['photo_id']
        return ava
    #Функия отправки аватарки + айди пользователя
    id = event.chat_id
    mes = event.object.message['text']
    def unicalssender(id):
        user_id = event.object.message['from_id']
        vk.method("messages.send", {'chat_id': id, "message": 'сообщение которое хотите отправить' + ' ' + '\n' + str(user_id) + '\n', 'random_id': 0})
        vk.method("messages.send", {"chat_id": id, "message": 'ваша аватарка', 'attachment': 'photo' + str(get_ava()), 'random_id': 0})

    Функция работает, вместо "ваша аватарка" можно поставить любой текст
    6107d28f5c944691071595.png
    Для того чтобы все это работало, пользователь должен написать что-то в чат!
    Ответ написан
    Комментировать
  • Как дать боту возможность одновременно ждать сообщения от пользователя и проверять время для запланированного вывода сообщения?

    @RINAMI
    Занимаюсь монтажом и дизайном. PSD,AEX,VEG.
    Для того чтобы планировать задачи для своего кода, нужен schedule
    Пример:
    import schedule
    def primer():
          #func options
         schedule.every().day.at('8:00').do(primer)
         while True:
                schedule.run_pending()
                time.sleep(3)


    Чтобы бот делал все как вы хотите, создайте два потока пример:
    import threading
    from threading import Thread
    def thread2():
          thr2 = Thread(target=primer)
          thr2.start()


    В конец кода добавьте:
    if __name__ == '__main__':
        thread2()


    Итог:
    Функции которые вам нужны, будут выполнятся в основном потоке, а в потоке номер 2 будет выполнятся schedule.
    Ответ написан
    Комментировать