33 lines
1.0 KiB
Python
33 lines
1.0 KiB
Python
import datetime
|
|
import logging
|
|
|
|
campus_timdelta = {
|
|
"Москва": 3,
|
|
"Санкт-Петербург": 3,
|
|
"Нижний Новгород": 3,
|
|
"Пермь": 5
|
|
}
|
|
|
|
|
|
def now(user: dict):
|
|
today = datetime.datetime.now() + datetime.timedelta(hours=campus_timdelta[user.get('campus', 'Москва')])
|
|
return today
|
|
|
|
|
|
def get_next_daily_notify_time(user: dict) -> datetime.datetime:
|
|
time_now = now(user)
|
|
hours, minutes = map(int, user['daily_notify_time'].split(":"))
|
|
next_time = datetime.datetime(
|
|
year=time_now.year,
|
|
month=time_now.month,
|
|
day=time_now.day,
|
|
hour=hours,
|
|
minute=minutes
|
|
)
|
|
logging.info('now time is %s', time_now)
|
|
logging.info('user wants to notify at %s %s', hours, minutes)
|
|
if time_now.hour * 60 + time_now.minute > hours * 60 + minutes:
|
|
logging.info('go to next day')
|
|
next_time = next_time + datetime.timedelta(days=1)
|
|
return next_time - datetime.timedelta(hours=campus_timdelta[user.get('campus', 'Москва')])
|