Задать вопрос
  • Блокируется бот во время выполнения функции, как исправить?

    @theurus Автор вопроса
    Александр Нестеров, вариант от bing ai вроде работает как надо

    import cfg
    import telebot
    import threading
    import time
    import random
    
    bot = telebot.TeleBot(cfg.token)
    
    @bot.message_handler(commands=["cmd1"])
    def task(message):
        bot.send_message(message.chat.id, "Хорошо, я начинаю выполнять задание.")
        thread = threading.Thread(target=do_task, args=(message.chat.id,))
        thread.start()
    
    def do_task(chat_id):
        t = random.randint(1,5)
        time.sleep(t)
        bot.send_message(chat_id, f"Я закончил задание за {t} секунд.")
    
    bot.polling()
  • Блокируется бот во время выполнения функции, как исправить?

    @theurus Автор вопроса
    могут выполнятся параллельно - никак не взаимодействуют друг с другом и не имеют общих ресурсов

    можно мне их как то по простому запускать не изучая asyncio?

    просто запустить как asyncio.run(func(arg)) или как?
  • Как сделать постоянную запись с новой строки Python?

    @theurus
    test = open("save.txt", 'w', encoding = 'utf-8')

    вынести из цикла тут напрашивается
  • Как отключить пароль в убунту?

    @theurus
    сделай пароль = 1 если лень вводить длинный пароль
  • WIREGUARD без реального/белого ip будет ли работать?

    @theurus
    zerotier и tailscale могут
    с их помощью можно сделать себе впн сервис даже на сервере без белого адреса Ж) или с адресом в ipv6
  • Не могу подключится к устройству по SSH Python paramiko?

    @theurus
    import paramiko
    
    # создаем объект SSH клиента
    ssh = paramiko.SSHClient()
    
    # автоматически добавляем хост в список известных хостов
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    # подключаемся к серверу
    ssh.connect('192.168.0.210', username='root', password='')
    
    # выполнение команды
    stdin, stdout, stderr = ssh.exec_command('uname -a')
    
    # вывод результатов
    print(stdout.read().decode())
    
    # закрываем соединение
    ssh.close()


    Linux NAS 5.10.0-23-amd64 #1 SMP Debian 5.10.179-1 (2023-05-12) x86_64 GNU/Linux
  • Как сделать так чтобы бот отправлял сообщение пользователя его автору?

    @theurus
    r.randint(0,10) вернёт тебе сразу целое число

    bot.send_message(message.from_user.id, "") можно повторить, сделать ещё 1 такую же но указать свой id чтоб тебе тоже самое отправляло
  • Как вычислить вчерашнюю и позавчерашнюю дату в mikrotik?

    @theurus
    как тебе такая идея от ии?

    :local today [:put [/system clock get date]]
    :local yesterday [:put [/system clock get date]]
    :local day-before-yesterday [:put [/system clock get date]]
    
    # вычисляем вчерашнюю дату
    :for i from=1 to=86400 do={
      :set $yesterday [/system clock set date=($today-$i)]
      :if ($yesterday = $today) do={
        :set $yesterday [/system clock set date=($today-$i-1)]
        :put ("Yesterday: " . [:pick $yesterday 4 6] . "-" . [:pick $yesterday 0 3] . "-" . [:pick $yesterday 7 10])
        :put ("")
        :put ("Day before yesterday: " . [:pick $day-before-yesterday 4 6] . "-" . [:pick $day-before-yesterday 0 3] . "-" . [:pick $day-before-yesterday 7 10])
        :return
      }
    }
    
    # вычисляем позавчерашнюю дату
    :for i from=2 to=172800 do={
      :set $day-before-yesterday [/system clock set date=($today-$i)]
      :if ($day-before-yesterday = $yesterday) do={
        :put ("Yesterday: " . [:pick $yesterday 4 6] . "-" . [:pick $yesterday 0 3] . "-" . [:pick $yesterday 7 10])
        :put ("")
        :put ("Day before yesterday: " . [:pick $day-before-yesterday 4 6] . "-" . [:pick $day-before-yesterday 0 3] . "-" . [:pick $day-before-yesterday 7 10])
        :return
      }
    }


    Этот скрипт на языке скриптования RouterOS выполняет следующие действия:

    Получает текущую дату и время в формате "dd-mm-yyyy hh:mm:ss" с помощью команды "/system clock get date".

    Инициализирует три переменные: $today, $yesterday и $day-before-yesterday, которые будут использоваться для хранения текущей, вчерашней и позавчерашней дат соответственно.

    Вычисляет вчерашнюю дату путем последовательных вычитаний от текущей даты и времени количества секунд в одном дне (86400 секунд). Затем проверяет, что полученная дата отличается от текущей даты (это нужно для того, чтобы учесть возможное изменение системного времени). Если полученная дата совпадает с вчерашней, то сохраняет ее в переменную $yesterday.

    Вычисляет позавчерашнюю дату аналогично вчерашней, только вычитает из текущей даты и времени количество секунд в двух днях (172800 секунд). Затем проверяет, что полученная дата совпадает с вчерашней датой, и если это так, то сохраняет ее в переменную $day-before-yesterday.

    Выводит на экран вчерашнюю и позавчерашнюю даты в формате "dd-mm-yyyy".

    Обратите внимание, что скрипт использует циклы для поиска нужных дат, что может занять некоторое время. Также результаты могут быть неточными, если время на роутере было изменено или системное время было изменено вручную.
  • Как правильно поставлять готовые приложения на Python?

    @theurus
    можно скомпилировать в бинарник который понесет всё в себе и избавит заодно от требования устанавливать питон