Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from telegram.ext import Updater, CommandHandler, MessageHandler
- from telegram.ext import filters
- from datetime import datetime
- import logging
- # Ваш токен от BotFather
- bot_token = ''
- # Настройка логирования
- logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
- level=logging.INFO)
- logger = logging.getLogger(__name__)
- # Словарь для хранения количества сообщений от каждого пользователя
- user_posts_count = {}
- # Обработчик сообщений для подсчета
- def count_messages(update, context):
- user_id = update.effective_user.id
- user_posts_count[user_id] = user_posts_count.get(user_id, 0) + 1
- # Команда для вывода статистики
- def show_stats(update, context):
- start_date = datetime(2023, 12, 1)
- end_date = datetime(2023, 12, 30)
- message = ''
- for user_id, count in user_posts_count.items():
- # Получаем информацию о пользователе
- user = context.bot.get_chat_member(update.effective_chat.id, user_id).user
- user_name = user.first_name + ' ' + user.last_name if user.last_name else user.first_name
- message += f'{user_name} - {count} постов\n'
- update.message.reply_text(message)
- def main():
- updater = Updater(bot_token)
- dp = updater.dispatcher
- # Регистрируем обработчики
- dp.add_handler(MessageHandler(Filters.text & ~Filters.command, count_messages))
- dp.add_handler(CommandHandler("stats", show_stats))
- updater.start_polling()
- updater.idle()
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement