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)))))
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)))