Advertisement
rem3

Untitled

Dec 28th, 2023
11
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. from telegram.ext import Updater, CommandHandler, MessageHandler
  2. from telegram.ext import filters
  3. from datetime import datetime
  4. import logging
  5.  
  6. # Ваш токен от BotFather
  7. bot_token = ''
  8.  
  9. # Настройка логирования
  10. logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
  11. level=logging.INFO)
  12. logger = logging.getLogger(__name__)
  13.  
  14. # Словарь для хранения количества сообщений от каждого пользователя
  15. user_posts_count = {}
  16.  
  17. # Обработчик сообщений для подсчета
  18. def count_messages(update, context):
  19. user_id = update.effective_user.id
  20. user_posts_count[user_id] = user_posts_count.get(user_id, 0) + 1
  21.  
  22. # Команда для вывода статистики
  23. def show_stats(update, context):
  24. start_date = datetime(2023, 12, 1)
  25. end_date = datetime(2023, 12, 30)
  26. message = ''
  27.  
  28. for user_id, count in user_posts_count.items():
  29. # Получаем информацию о пользователе
  30. user = context.bot.get_chat_member(update.effective_chat.id, user_id).user
  31. user_name = user.first_name + ' ' + user.last_name if user.last_name else user.first_name
  32. message += f'{user_name} - {count} постов\n'
  33.  
  34. update.message.reply_text(message)
  35.  
  36. def main():
  37. updater = Updater(bot_token)
  38. dp = updater.dispatcher
  39.  
  40. # Регистрируем обработчики
  41. dp.add_handler(MessageHandler(Filters.text & ~Filters.command, count_messages))
  42. dp.add_handler(CommandHandler("stats", show_stats))
  43.  
  44. updater.start_polling()
  45. updater.idle()
  46.  
  47. if __name__ == '__main__':
  48. main()
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement