1
0
Fork 0
mirror of https://github.com/Findus23/suntracking.git synced 2024-08-27 19:52:18 +02:00
suntracking/main.py

55 lines
1.5 KiB
Python

import time
from datetime import timedelta, datetime
import schedule
import telegram
import guess
from config import telegram_token, telegram_chat_id
def timedelta_to_string(delta: timedelta):
minutes, seconds = divmod(delta.seconds, 60)
return ":".join(map(str, [minutes, seconds]))
def send_notification(time, accuracy, future=False):
subject = "☀️ at {time}{acc})".format(time=time.strftime("%H:%M:%S"), acc=timedelta_to_string(accuracy))
if future:
subject += " - 10 minutes left"
bot = telegram.Bot(token=telegram_token)
bot.sendMessage(chat_id=telegram_chat_id, text=subject)
# sendmail(subject, subject)
return schedule.CancelJob
def create_schedule():
with open("average.txt") as file:
lines = file.readlines()
altitude = float(lines[0].strip())
standard_derivation = float(lines[1].strip())
print(altitude, standard_derivation)
sunset = guess.get_time(altitude)
accuracy = guess.get_time(altitude - standard_derivation) - sunset
print(accuracy)
print(sunset)
s = schedule.every().day
s.at_time = sunset.time()
s.do(send_notification, sunset, accuracy)
p = schedule.every().day
p.at_time = (sunset - timedelta(minutes=10)).time()
p.do(send_notification, sunset, accuracy, True)
create_schedule()
schedule.every().day.at("12:00").do(create_schedule)
if datetime.now().hour > 12:
create_schedule()
while True:
schedule.run_pending()
time.sleep(1)