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 возвращает интервалы, которые могут начинаться вчера, но включать активность сегодня
|
# Lichess возвращает интервалы, которые могут начинаться вчера, но включать активность сегодня
|
||||||
|
# Для "сегодня" нужен интервал, который НАЧИНАЕТСЯ сегодня (start_date == today)
|
||||||
|
# Если интервал начинается вчера и заканчивается сегодня, это интервал за вчера (еще не закрыт)
|
||||||
today_activity = None
|
today_activity = None
|
||||||
for activity in activity_data:
|
for activity in activity_data:
|
||||||
interval = activity['interval']
|
interval = activity['interval']
|
||||||
|
|
@ -242,10 +244,11 @@ class StatsService:
|
||||||
|
|
||||||
logger.debug(f"🔍 Checking activity interval: {start_date} to {end_date} vs today: {today}")
|
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
|
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
|
break
|
||||||
|
|
||||||
if not today_activity:
|
if not today_activity:
|
||||||
|
|
@ -299,17 +302,36 @@ class StatsService:
|
||||||
message=f"Пользователь {username} не найден или неактивен"
|
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
|
yesterday_activity = None
|
||||||
for activity in activity_data:
|
for activity in activity_data:
|
||||||
activity_date = self._parse_lichess_interval(activity['interval'])
|
interval = activity['interval']
|
||||||
if activity_date == yesterday:
|
# Парсим начало и конец интервала
|
||||||
|
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
|
yesterday_activity = activity
|
||||||
|
logger.info(f"✅ Found yesterday activity for {username} (interval: {start_date} to {end_date})")
|
||||||
break
|
break
|
||||||
|
|
||||||
if not yesterday_activity:
|
if not yesterday_activity:
|
||||||
|
logger.info(f"ℹ️ No activity found for yesterday ({yesterday}) for {username}")
|
||||||
return ActivityResponse(
|
return ActivityResponse(
|
||||||
message=f"Активности за вчерашний день ({yesterday}) не было"
|
message=f"Активности за вчерашний день ({yesterday}) не было"
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue