import shelve def create_report_text(): top_users = '' flooders = [] with shelve.open('chat_stats') as s: for n in range(min(3, len(s['Messages']))): top_user = s['Messages'][sorted(s['Messages'], key=lambda a: s['Messages'][a]['Count'], reverse=True)[n]] if top_user['Count'] >= 10: flooders.append(top_user) for i, flooder in enumerate(flooders): user = flooder["User"] name = f"{user.first_name} {user.last_name}" if user.last_name else user.first_name top_users += f'\n {i + 1}. {name} ({flooder["Count"]})' report = f"Hello, World! 🌍\n" if s['Banned'] or s['Deleted']: report += f""" Заблокировано ⛔ ├ Пользователей: {s['Banned']} └ Сообщений: {s['Deleted']} """ if len(flooders) >= 3: report += f"\nТоп 🗣{top_users}" return report def reset_report_stats(): with shelve.open('chat_stats') as s: s['Messages'] = {} s['Banned'] = s['Deleted'] = 0 return f""" {s['Messages']=} {s['Banned']=} {s['Deleted']=}"""