@ProooNoob

Как правильно выставить Class и условия для ping'а?

Всех приветствую!
Подскажите, как при соблюдении условия "else" отправить сообщение пользователю один раз, а не спамить? И в случае появления повторного появления пинга - отправить пользователю сообщение "Соединение восстановлено" и обратно вернуть в начало цикла.

Заранее благодарен!

hostname = "*****" 
channel = '*****'
bot = telebot.TeleBot(<TOKEN>)


class RepeatTimer(Timer):
    def run(self):
        while not self.finished.wait(self.interval):
            self.function(*self.args, **self.kwargs)

def select():
    response = os.system('ping ' + hostname)
    if response == 0:
        print(hostname + ' пингуется')
        bot.send_message(channel , hostname + ' интернет есть')
    else:
        print(hostname + ' не пингуется')
        bot.send_message(channel , hostname + ' интернета нет')



if  __name__=='__main__':
    RepeatTimer(30, select).start()
    bot.polling(none_stop=True)


Пробовал с помощью Class
Но не хватает знаний и опыта для правильной постановки.
Поэтому получаю ошибку:
type object 'stat' has no attribute 'status'


class stat():
    def contrl_stat(self):
        self.status = True

def check_ip_two(): 
    hostname = Config.ip
    if check_ip():
        if not stat.status:
            stat.status = True
            bot.send_message(channel, hostname + ' интернет есть')
    else:
        if (stat.status):
            stat.status = False
            bot.send_message(channel, hostname + ' интернет есть')
            
def check_ip():
    hostname = Config.ip
    response = os.system('ping ' + hostname)
    if response == 0:
        return True 
    else:
        return False
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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