8
8
from gettext import gettext as _
9
9
class CheckAlarmThread(Thread):
10
def __init__(self, status, main,StatusIcon,alarm_model, row, treesel, GUI, PREFIX):
10
def __init__(self, status, main,StatusIcon,alarm_model, row, treesel, GUI, PREFIX, MainClass):
11
11
Thread.__init__(self)
12
12
self.setDaemon(True)
13
self.MainClass = MainClass
14
15
self.CheckTodayAlarms()
15
16
self.status = status
38
41
self.status.push(0, time.strftime(_("Current time: %c")))
39
42
gtk.gdk.threads_leave()
41
46
for tup in self.today:
42
48
if tup[0] == time.localtime().tm_hour and\
43
49
tup[1] == time.localtime().tm_min and\
44
50
time.localtime().tm_sec == 0:
45
51
FileHandler = file(os.getenv("HOME")\
46
+ "/.config/alarm-clock/alarms")
52
+ "/.config/alarm-clock/alarms", 'r')
47
53
AlarmContents = FileHandler.readlines()
48
54
FileHandler.close()
49
55
gtk.gdk.threads_enter()
50
self.GUI().RunAlarm(eval(AlarmContents[tup[2]]))
56
self.MainClass.UpdateList = False
57
self.GUI().RunAlarm(eval(AlarmContents[tup[2]]), Count, self.RemoveOldAlarm,
58
self.MainClass.LoadConfigFiles, self.MainClass.ChangeAlarmPrefs,
59
self.ChangeUpdateList)
61
if eval(AlarmContents[tup[2]])[2] == 0 and not eval(AlarmContents[tup[2]])[19]:
62
self.RemoveOldAlarm(Count, True)
63
self.MainClass.LoadConfigFiles()
51
65
gtk.gdk.threads_leave()
67
if not eval(AlarmContents[tup[2]])[19]:
68
self.MainClass.UpdateList = True
54
70
if time.localtime().tm_hour == 0 and time.localtime().tm_min == 0 and time.localtime().tm_sec < 1 and self.RefreshList == False:
55
71
self.RefreshList = True
153
178
self.fbuf.write(line)
154
179
self.fbuf.close()
158
def ParseTupletToList(self,line):
159
self.string = eval(line)
162
self.weekdays = self.string[4][0]
163
self.months = self.string[4][1]
165
self.t_weekday = time.localtime().tm_wday
166
self.t_month = time.localtime().tm_mon
167
self.t_day = time.localtime().tm_mday
174
self.t = re.search('(\d+):(\d+)', self.string[1])
176
self.h = "%s" % self.t.group(1)
178
if int (self.t.group(2)) < 10:
179
self.m = "0%s" % self.t.group(2)
181
self.m = "%s" % self.t.group(2)
190
self.weekdays = self.string[4][0]
191
self.months = self.string[4][1]
193
if self.weekdays[self.t_weekday] == True and self.months[self.t_month - 1] == True:
196
for t in self.string[5]:
197
if t[0] == self.t_month and t[1] == self.t_day:
204
if self.Good == True and self.string[2] == 1:
205
self.time = _("%s:%s - Today") % (self.h, self.m)
208
self.time = _("%s:%s - Cancelled") % (self.h, self.m)
210
self.time = "%s:%s" % (self.h, self.m)
224
if self.string[2] == 1:
225
self.AlarmType = _("Scheduled")
226
self.datetime = "%s" % self.time
227
icon = self.MainWindowGlade.get_widget('main_window').render_icon('gtk-refresh', gtk.ICON_SIZE_SMALL_TOOLBAR)
229
self.AlarmType = _("Single")
230
self.date_data = re.search('(\d+)/(\d+)/(\d+)', self.string[3])
231
icon = self.MainWindowGlade.get_widget('main_window').render_icon('gtk-jump-to', gtk.ICON_SIZE_SMALL_TOOLBAR)
234
if int(self.date_data.group(3)) < 10:
235
self.day = "0%s" % self.date_data.group(3)
237
self.day = self.date_data.group(3)
239
if int (self.date_data.group(2)) < 9:
241
self.month = "0%i" % (int(self.date_data.group(2)) + 1)
243
self.month = "%i" % (int(self.date_data.group(2)) + 1)
244
self.datetime = "%s %s/%s/%s" % (self.time, self.day, self.month, self.date_data.group(1))
246
self.alarm_model.append([self.AlarmType, icon, self.datetime, self.string[0]])
254
def LoadConfigFiles(self):
256
if os.path.isdir(os.getenv("HOME") + "/.config/alarm-clock/") == False:
257
os.mkdir (os.getenv("HOME") + "/.config/alarm-clock")
259
if os.path.isfile(os.getenv("HOME") + "/.config/alarm-clock/configuration") == False:
260
self.fc = file(os.getenv("HOME") + "/.config/alarm-clock/configuration", "w")
261
print >> self.fc, [MainWindow.get_position(), MainWindow.get_size()]
263
if os.path.isfile(os.getenv("HOME") + "/.config/alarm-clock/alarms") == False:
264
self.af = file(os.getenv("HOME") + "/.config/alarm-clock/alarms", "w")
265
self.ClearAlarmValues()
267
if os.path.isfile(os.getenv("HOME") + "/.config/alarm-clock/templates") == False:
268
self.af = file(os.getenv("HOME") + "/.config/alarm-clock/templates", "w")
272
self.ConfigFile = file(os.getenv("HOME") + "/.config/alarm-clock/configuration", "rw")
273
self.AlarmFile = file(os.getenv("HOME") + "/.config/alarm-clock/alarms", "rw")
275
for line in self.ConfigFile:
276
self.configlist = eval(line)
278
self.alarm_model.clear()
280
for line in self.AlarmFile:
282
self.ParseTupletToList(line)
289
self.MainWindowGlade.get_widget('notebook').set_current_page(1)
290
self.MainWindowGlade.get_widget('remove_alarm_toolbutton').set_sensitive(False)
291
self.MainWindowGlade.get_widget('test_alarm_toolbutton').set_sensitive(False)
292
self.MainWindowGlade.get_widget('alarm_properties_toolbutton').set_sensitive(False)
293
self.MainWindowGlade.get_widget('edit_remove').set_sensitive(False)
296
self.MainWindowGlade.get_widget('notebook').set_current_page(0)
297
self.MainWindowGlade.get_widget('remove_alarm_toolbutton').set_sensitive(True)
298
self.MainWindowGlade.get_widget('alarm_properties_toolbutton').set_sensitive(True)
299
self.MainWindowGlade.get_widget('edit_remove').set_sensitive(True)
300
self.MainWindowGlade.get_widget('test_alarm_toolbutton').set_sensitive(True)
304
if self.row >= self.i:
305
self.TreeSelection.select_path(self.i - 1,)
307
self.TreeSelection.select_path(self.row,)
309
self.TreeSelection.select_path(0,)
311
181
def CheckTodayBirthdays(self, StatusIcon):
312
182
self.BirthdaysNames = []
313
183
self.BDay = False