fix silent addgamer drop on restart and periodic-check backlog buildup
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 13s

Persist user_data (PicklePersistence) so an in-flight /addgamer username
prompt survives a bot restart instead of being silently swallowed by
handle_username when the in-memory awaiting flag is gone.

Collapse periodic-check backlog into a single request spanning the whole
missed gap instead of replaying it one period_minutes window at a time —
with enough tracked gamers sharing one RequestQueue, per-window replay
could never catch up and the checkpoint fell further behind indefinitely.
Notification period label now reflects the actual queried span (minutes/
hours/days) instead of the configured interval, so a weeks-old catch-up
no longer gets mislabeled as "for 15 minutes".
This commit is contained in:
vrubelroman 2026-07-04 18:33:45 +00:00
parent 62cdd750f8
commit b0173950b8
3 changed files with 62 additions and 21 deletions

View file

@ -113,6 +113,8 @@ TRANSLATIONS = {
'period_1_minute': "for 1 minute",
'period_2_3_4_minutes': "for {period} minutes",
'period_minutes_text': "for {period} minutes",
'period_hours_text': "for {hours}h",
'period_days_text': "for {days}d",
'period_notification_title': "📊 Statistics {username}{period_text}\n\n",
'period_puzzles_section': "🧩 Puzzles: {total} (✅ {solved} - ❌ {failed})\n\n",
'no_activity': "📭 No activity for this period",
@ -254,6 +256,8 @@ TRANSLATIONS = {
'period_1_minute': "за 1 минуту",
'period_2_3_4_minutes': "за {period} минуты",
'period_minutes_text': "за {period} минут",
'period_hours_text': "за {hours}ч",
'period_days_text': "за {days}д",
'period_notification_title': "📊 Статистика {username}{period_text}\n\n",
'period_puzzles_section': "🧩 Пазлы: {total} (✅ {solved} - ❌ {failed})\n\n",
'no_activity': "📭 Нет активности за этот период",