-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsb-prayer
executable file
·65 lines (56 loc) · 2.13 KB
/
sb-prayer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/python3
import subprocess
import os
from datetime import datetime, timedelta
from zoneinfo import ZoneInfo
from adhanpy.PrayerTimes import PrayerTimes
from adhanpy.calculation import CalculationParameters
# set parameters according to Egyptian General Authority of Survey
today = datetime.now()
today_delta = timedelta(hours=today.hour, minutes=today.minute)
cairo_coordinates = (30.0444, 31.2357)
prayer_times = PrayerTimes(
cairo_coordinates,
today,
calculation_parameters=CalculationParameters(fajr_angle=19.5, isha_angle=17.5),
time_zone=ZoneInfo("Africa/Cairo"),
)
prayers = {"fajr": None, "dhuhr": None, "asr": None, "maghrib": None, "isha": None}
next_prayer_time, next_prayer_name = float("inf"), None
for prayer in prayers:
time = eval(f"prayer_times.{prayer}")
hours = int(time.strftime('%H'))
minutes = int(time.strftime('%M'))
prayers[prayer] = "%s:%s" % (hours % 12, minutes)
left = timedelta(hours=hours, minutes=minutes) - today_delta
left = left.total_seconds()
if left >= 0 and left < next_prayer_time:
next_prayer_name = prayer
next_prayer_time = left
if next_prayer_time == float("inf"):
next_prayer_time = (
timedelta(
hours=int(prayer_times.fajr.strftime("%H")),
minutes=int(prayer_times.fajr.strftime("%M")),
)
- today_delta
)
next_prayer_time = 24 * 3600 + (next_prayer_time.total_seconds())
next_prayer_name = "fajr"
print(next_prayer_name.lower(), str(timedelta(seconds=next_prayer_time))[:-3])
button = os.getenv("BLOCK_BUTTON", None)
if button == "1":
times = "".join([
'<span size="15pt" foreground="#FB617F">',
"<b> 🕌 Prayer Times</b></span>\n",
'<span size="14pt"><b>',
"Salah \t Time</b>\n",
"-----------------------\n",
"<b>Fajr</b> \t %s\n" % prayers["fajr"],
"<b>Dhuhr</b> \t %s\n" % prayers["dhuhr"],
"<b>Asr</b> \t %s\n" % prayers["asr"],
"<b>Maghrib</b> \t %s\n" % prayers["maghrib"],
"<b>Isha</b> \t %s\n" % prayers["isha"],
"</span>"
])
subprocess.run(["notify-send", " ", times])