fix bug today yesterday
This commit is contained in:
parent
123749415a
commit
0c9a66a73c
1 changed files with 28 additions and 6 deletions
|
|
@ -231,6 +231,8 @@ class StatsService:
|
|||
|
||||
# Ищем активность за сегодня
|
||||
# Lichess возвращает интервалы, которые могут начинаться вчера, но включать активность сегодня
|
||||
# Для "сегодня" нужен интервал, который НАЧИНАЕТСЯ сегодня (start_date == today)
|
||||
# Если интервал начинается вчера и заканчивается сегодня, это интервал за вчера (еще не закрыт)
|
||||
today_activity = None
|
||||
for activity in activity_data:
|
||||
interval = activity['interval']
|
||||
|
|
@ -242,10 +244,11 @@ class StatsService:
|
|||
|
||||
logger.debug(f"🔍 Checking activity interval: {start_date} to {end_date} vs today: {today}")
|
||||
|
||||
# Проверяем, попадает ли сегодняшняя дата в интервал
|
||||
if start_date <= today <= end_date:
|
||||
# Проверяем, что интервал НАЧИНАЕТСЯ СЕГОДНЯ
|
||||
# Это гарантирует, что мы берем интервал за сегодняшний день
|
||||
if start_date == today:
|
||||
today_activity = activity
|
||||
logger.info(f"✅ Found today activity for {username} (interval: {start_date} to {end_date})")
|
||||
logger.info(f"✅ Found today activity for {username} (interval starts today: {start_date} to {end_date})")
|
||||
break
|
||||
|
||||
if not today_activity:
|
||||
|
|
@ -299,17 +302,36 @@ class StatsService:
|
|||
message=f"Пользователь {username} не найден или неактивен"
|
||||
)
|
||||
|
||||
yesterday = date.today() - timedelta(days=1)
|
||||
today = date.today()
|
||||
yesterday = today - timedelta(days=1)
|
||||
logger.info(f"🔍 Looking for activity for yesterday: {yesterday} (today: {today})")
|
||||
|
||||
# Ищем активность за вчера
|
||||
# Lichess возвращает интервалы, которые могут начинаться позавчера, но включать активность вчера
|
||||
# Для "вчера" нужен интервал, который:
|
||||
# 1. ЗАКАНЧИВАЕТСЯ вчера (end_date == yesterday) - закрытый интервал за вчера
|
||||
# 2. ИЛИ начинается вчера и заканчивается сегодня (start_date == yesterday and end_date == today) - открытый интервал за вчера
|
||||
yesterday_activity = None
|
||||
for activity in activity_data:
|
||||
activity_date = self._parse_lichess_interval(activity['interval'])
|
||||
if activity_date == yesterday:
|
||||
interval = activity['interval']
|
||||
# Парсим начало и конец интервала
|
||||
start_timestamp = interval['start'] / 1000
|
||||
end_timestamp = interval['end'] / 1000
|
||||
start_date = datetime.fromtimestamp(start_timestamp).date()
|
||||
end_date = datetime.fromtimestamp(end_timestamp).date()
|
||||
|
||||
logger.debug(f"🔍 Checking activity interval: {start_date} to {end_date} vs yesterday: {yesterday}, today: {today}")
|
||||
|
||||
# Проверяем два случая:
|
||||
# 1. Интервал заканчивается вчера (закрытый интервал за вчера)
|
||||
# 2. Интервал начинается вчера и заканчивается сегодня (открытый интервал за вчера, еще не закрыт)
|
||||
if end_date == yesterday or (start_date == yesterday and end_date == today):
|
||||
yesterday_activity = activity
|
||||
logger.info(f"✅ Found yesterday activity for {username} (interval: {start_date} to {end_date})")
|
||||
break
|
||||
|
||||
if not yesterday_activity:
|
||||
logger.info(f"ℹ️ No activity found for yesterday ({yesterday}) for {username}")
|
||||
return ActivityResponse(
|
||||
message=f"Активности за вчерашний день ({yesterday}) не было"
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue