get the time of the in and out of the Åabbat
This commit is contained in:
91
šabbat.py
Normal file
91
šabbat.py
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
import wx, urllib3, threading
|
||||||
|
from wx import adv
|
||||||
|
|
||||||
|
def get_sabbat(geotag: int = 281184, shabat_min: int = 50, d = None, m = None, y = None):
|
||||||
|
if geotag == 0:
|
||||||
|
geotag = 281184
|
||||||
|
if d and m and y:
|
||||||
|
raw_data = urllib3.PoolManager().request('GET',f'https://www.hebcal.com/shabbat/?cfg=json&geonameid={geotag}&m={shabat_min}&gy={y}&gm={m}&gd={d}').data.decode()
|
||||||
|
else:
|
||||||
|
raw_data = urllib3.PoolManager().request('GET',f'https://www.hebcal.com/shabbat/?cfg=json&geonameid={geotag}&m={shabat_min}').data.decode()
|
||||||
|
data =[i for i in eval(raw_data)['items'] if i["category"] == "havdalah" or i["category"] == "candles"]
|
||||||
|
return [data[0]['title'],data[-1]['title']]
|
||||||
|
|
||||||
|
def get_in(geotag: int = 281184, shabat_min: int = 72, d = None, m = None, y = None):
|
||||||
|
return get_sabbat(geotag, shabat_min, d, m, y)[0][get_sabbat()[0].find(r":")+2:]
|
||||||
|
|
||||||
|
def get_out(geotag: int = 281184, shabat_min: int = 72, d = None, m = None, y = None):
|
||||||
|
return get_sabbat(geotag, shabat_min, d, m, y)[-1][get_sabbat(geotag, shabat_min, d, m, y)[-1].find(r":")+2:]
|
||||||
|
|
||||||
|
def convert_time(time: str):
|
||||||
|
if eval(time.split(":")[0]) > 12 or time.find("m") < 0:
|
||||||
|
return time
|
||||||
|
if time.find("am") > -1:
|
||||||
|
return time.split("am")[0]
|
||||||
|
time = time.split("pm")[0]
|
||||||
|
time = str(eval(time.split(":")[0])+12) + ":" + time.split(":")[1]
|
||||||
|
return time
|
||||||
|
|
||||||
|
cities = {"מודיעין":282926,"מודיעין־מכבים־רעות":282926,"תל־אביב–יפו":293397,"ירושלים":281184,"חיפה":294801,"בחר עיר":0}
|
||||||
|
cit = sorted(list(cities.keys()))
|
||||||
|
|
||||||
|
|
||||||
|
class dater(adv.DatePickerCtrl):
|
||||||
|
def __init__(self, parent, dt=wx.DateTime.Now(), style=adv.DP_DROPDOWN):
|
||||||
|
super().__init__(parent, dt=dt, style=style)
|
||||||
|
|
||||||
|
|
||||||
|
class Panel(wx.Panel):
|
||||||
|
def __init__(self, parent):
|
||||||
|
super().__init__(parent)
|
||||||
|
self.Sizer = wx.GridSizer(3, 2, wx.Size(50,50))
|
||||||
|
self.Sizer.Add(wx.StaticText(self,label="זמן כניסת השבת:\t"))
|
||||||
|
self.s_in = wx.TextCtrl(self)
|
||||||
|
self.s_in.Value = convert_time(get_in())
|
||||||
|
self.s_in.SetEditable(False)
|
||||||
|
self.Sizer.Add(self.s_in)
|
||||||
|
self.Sizer.Add(wx.StaticText(self,label="זמן יציאת השבת:\t"))
|
||||||
|
self.s_out = wx.TextCtrl(self)
|
||||||
|
self.s_out.SetEditable(False)
|
||||||
|
self.s_out.Value = convert_time(get_out())
|
||||||
|
self.Sizer.Add(self.s_out)
|
||||||
|
self.city = wx.ComboBox(self,choices = cit, value = "בחר עיר")
|
||||||
|
self.city.Bind(wx.EVT_COMBOBOX_CLOSEUP,self.choose)
|
||||||
|
self.city.Bind(wx.EVT_KEY_DOWN, self.choose_enter)
|
||||||
|
self.Sizer.Add(self.city)
|
||||||
|
self.date = dater(self)
|
||||||
|
self.date.Bind(adv.EVT_DATE_CHANGED, self.date_change)
|
||||||
|
self.Sizer.Add(self.date)
|
||||||
|
self.dy , self.dm , self.dd = str(self.date.Value).split(" ")[0].split("/")[2] , str(self.date.Value).split(" ")[0].split("/")[1] , str(self.date.Value).split(" ")[0].split("/")[0]
|
||||||
|
|
||||||
|
def choose(self, event: wx.Event):
|
||||||
|
self.set_values()
|
||||||
|
event.Skip()
|
||||||
|
|
||||||
|
def choose_enter(self, event: wx.KeyEvent):
|
||||||
|
self.set_values()
|
||||||
|
event.Skip()
|
||||||
|
|
||||||
|
def date_change(self, event: adv.DateEvent):
|
||||||
|
self.dy , self.dm , self.dd = str(self.date.Value).split(" ")[0].split("/")[2] , str(self.date.Value).split(" ")[0].split("/")[1] , str(self.date.Value).split(" ")[0].split("/")[0]
|
||||||
|
self.set_values()
|
||||||
|
event.Skip()
|
||||||
|
|
||||||
|
def set_values(self):
|
||||||
|
self.s_in.Value = convert_time(get_in(cities[self.city.Value],d = self.dd, y = self.dy , m = self.dm))
|
||||||
|
self.s_out.Value = convert_time(get_out(cities[self.city.Value],d = self.dd, y = self.dy , m = self.dm))
|
||||||
|
|
||||||
|
class Frame(wx.Frame):
|
||||||
|
def __init__(self, parent, title=""):
|
||||||
|
super().__init__(parent, title=title)
|
||||||
|
self.panel = Panel(self)
|
||||||
|
|
||||||
|
class App(wx.App):
|
||||||
|
def OnInit(self):
|
||||||
|
self.frame = Frame(None, "שבת")
|
||||||
|
self.frame.Show()
|
||||||
|
return True
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app = App()
|
||||||
|
app.MainLoop()
|
Reference in New Issue
Block a user