Exemplo n.º 1
0
    def _display_statistic(self, bot, update):
        message = update.message
        
        if message.chat_id not in (self._chat_id, self._admin_id):
            return

        user, _ = User.get_or_create(user_id=message.from_user.id,
                                     defaults={
                                         'username': get_username_or_name(
                                             message.from_user)})
        
        if not user.user_messages_info.exists():
            bot.sendMessage(chat_id=message.chat_id,
                            reply_to_message_id=message.message_id,
                            text='Ты не писал ещё ничего, алло')
            return
        
        number = user.user_messages_info.get().number
        
        if 11 <= number % 100 <= 14:
            words = 'нужных сообщений'
        elif number % 10 == 1:
            words = 'нужное сообщение'
        elif 2 <= number % 10 <= 4:
            words = 'нужных сообщения'
        else:
            words = 'нужных сообщений'
        
        bot.sendMessage(chat_id=message.chat_id,
                        reply_to_message_id=message.message_id,
                        text='ты написал {0} никому не {1}.'.format(number,
                                                                    words))
Exemplo n.º 2
0
    def _update_statistic(self, bot, update):
        message: Message = update.message
        if message.chat_id != self._chat_id:
            return
        
        user, _ = User.get_or_create(user_id=message.from_user.id, defaults={
            'username': get_username_or_name(message.from_user)})

        actual_username = get_username_or_name(message.from_user)
        if user.username != actual_username:
            user.username = actual_username
            user.save()
        
        user_messages_info, _ = UserMessagesInfo \
            .get_or_create(user=user, defaults={'number': 0})
        user_messages_info.number += 1
        user_messages_info.save()