-
Notifications
You must be signed in to change notification settings - Fork 0
/
utils.py
30 lines (28 loc) · 1.21 KB
/
utils.py
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
from datetime import datetime
from message import message_contest_today
from contest import Contest
def is_contest_time(contest_list:list[Contest], now:datetime):
for contest in contest_list:
if contest.is_contest_time(now):
return True
return False
def remind(reminded:bool, remind_time_str:str, interval_mins:int, contest_list:list[Contest], phone_numbers:dict, now:datetime):
remind_h, remind_min = map(int, remind_time_str.split(":"))
begin_remind = now.replace(hour=remind_h, minute=remind_min, second=0, microsecond=0)
end_remind = now.replace(hour=remind_h, minute=remind_min + interval_mins * 2, second=0, microsecond=0)
if now < begin_remind:
return False
if reminded == True:
return True
if now < end_remind:
remained_contest_list = []
today_contest_list = []
for contest in contest_list:
if contest.is_same_date(now):
today_contest_list.append(contest)
else:
remained_contest_list.append(contest)
if len(today_contest_list) > 0:
message_contest_today(today_contest_list, remained_contest_list, phone_numbers, now.tzinfo)
return True
return False