self._cfg = config;
self._funcs = tuple(self.parse_cfg(self._cfg.site.api_q_element));
+ self.oh_start = datetime.time.strptime(
+ self._cfg.site.oh_start,
+ "%H:%M");
+ self.oh_end = datetime.time.strptime(
+ self._cfg.site.oh_end,
+ "%H:%M");
+
def fetch(self):
resp = urllib3.request(
"GET",
cur_students = [];
self.build_elements(cur_students, tk_parent);
while True:
- students = self.fetch();
- nu_students = len(students);
- d = self.diff_students(cur_students, students);
- if len(d[1]):
- self.build_elements(students, tk_parent);
- self.announce(d);
- n_students = nu_students;
- cur_students = students;
- time.sleep(2);
+ cur_time = datetime.datetime.now().time()
+ if cur_time >= self.oh_start \
+ and cur_time <= self.oh_end:
+ students = self.fetch();
+ nu_students = len(students);
+ d = self.diff_students(cur_students, students);
+ if len(d[1]):
+ self.build_elements(students, tk_parent);
+ self.announce(d);
+ n_students = nu_students;
+ cur_students = students;
+ time.sleep(2);
+ else:
+ for el in tk_parent.winfo_children():
+ el.destroy()
+ null_fnt = Font(tk_parent,
+ family=self._cfg.style.q_empty__family,
+ size=int(self._cfg.style.q_empty__size),
+ weight=self._cfg.style.q_empty__weight,
+ slant=self._cfg.style.q_empty__slant,
+ );
+
+ lbl = tk.Label(tk_parent,
+ text=("Office Hours are closed!\n"
+ "Please come between office hours:\n")\
+ + self.oh_start.strftime("%I:%M %p") \
+ + " - " \
+ + self.oh_end.strftime("%I:%M %p"),
+ font=null_fnt,
+ fg=self._cfg.style.q_empty__fgcolor,
+ bg=self._cfg.style.q_empty__bgcolor,
+ padx=4,
+ pady=4,
+ anchor='n'
+ );
+ lbl.pack(side='top', fill='x', anchor='n', expand=1);
+ time.sleep(60);
def announce(self, data):
new_joinees, d = data