Всех приветствую!
Подскажите, как при соблюдении условия "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