def extractMinuteBasedTrafficByUser(chat: Chat, user: str) -> Counter:
    userObj = chat.getUser(user)
    return _fillUpEmptyMinuteSlotsWithZeroTrafficDenotation(
        Counter(
            map(
                lambda e: datetime.combine(
                    date(2000, 1, 1),
                    e.getTime.replace(
                        minute=(e.getTime.minute + 1)
                        if e.getTime.minute < 59 else e.getTime.minute,
                        second=0) if e.getTime.second >= 30 else e.getTime.
                    replace(second=0)),
                chain(
                    map(lambda e: chat.getActivity(e), userObj.messageIDs),
                    map(lambda e: chat.getActivity(e),
                        userObj.getViaBotMessageIds)))))
Beispiel #2
0
def getTopXParticipantsAlongWithContribution(x: int, chat: Chat) -> Dict[str, float]:
    _tmp = chat.totalMessageCount
    return dict(map(lambda e: (e, chat.getUser(e).totalMessageCount / _tmp * 100),
                    chat.getTopXParticipants(x)))