示例#1
0
        public void HandleLogMessage(TimestampMessage message)
        {
            var userMessage = message as UserTimestampMessage;

            if (userMessage?.Type != UserTimestampMessage.MessageType.Regular)
            {
                return;
            }

            var match = LogRegex.Emote.Match(message.RawContent);

            if (!match.Success)
            {
                return;
            }

            string[] emote     = match.Groups[1].Value.Split('-');
            string   baseEmote = emote[0];

            if (!_userEmoteDictionary.ContainsKey(userMessage.Username))
            {
                _userEmoteDictionary[userMessage.Username] = new Dictionary <string, EmoteStats>();
            }


            var dict = _userEmoteDictionary[userMessage.Username];

            if (!dict.ContainsKey(baseEmote))
            {
                dict[baseEmote] = new EmoteStats();
            }

            dict[baseEmote].Count++;
            emote.Skip(1).ForEach(effect => dict[baseEmote].Effects.AddAndIncrement(effect));
        }
示例#2
0
        public void HandleLogMessage(TimestampMessage message)
        {
            var userMessage = message as UserTimestampMessage;

            if (userMessage?.Type != UserTimestampMessage.MessageType.Join)
            {
                return;
            }

            if (!loggedInUsers.Contains(userMessage.Username))
            {
                loggedInUsers.Add(userMessage.Username);
            }
        }
示例#3
0
        public void HandleLogMessage(TimestampMessage message)
        {
            var userMessage = message as UserTimestampMessage;

            if (userMessage?.Type != UserTimestampMessage.MessageType.Join)
            {
                return;
            }

            if (!LoginCount.ContainsKey(userMessage.Username))
            {
                LoginCount[userMessage.Username] = 0;
            }

            LoginCount[userMessage.Username]++;
        }
示例#4
0
        public void HandleLogMessage(TimestampMessage message)
        {
            var userMessage = message as UserTimestampMessage;

            if (userMessage?.Type != UserTimestampMessage.MessageType.Regular)
            {
                return;
            }

            if (!NumberMessagesDict.ContainsKey(userMessage.Username))
            {
                NumberMessagesDict[userMessage.Username] = 0;
            }

            NumberMessagesDict[userMessage.Username]++;
        }
示例#5
0
        public void ReadLines()
        {
            string line;

            while ((line = fileStreamReader.ReadLine()) != null)
            {
                TimestampMessage message = TimestampMessage.Create(baseDate, line);
                if (message == null)
                {
                    continue;
                }

                foreach (var metric in metrics)
                {
                    metric.HandleLogMessage(message);
                }
            }
        }
示例#6
0
        public void HandleLogMessage(TimestampMessage message)
        {
            var userMessage = message as UserTimestampMessage;

            if (userMessage?.Type != UserTimestampMessage.MessageType.Join)
            {
                return;
            }

            var date = new LocalDate(message.Timestamp.Year, message.Timestamp.Month, message.Timestamp.Day);

            LastLoginDict[userMessage.Username] = date;

            if (!FirstLoginDict.ContainsKey(userMessage.Username))
            {
                FirstLoginDict[userMessage.Username] = date;
            }
        }
        public void HandleLogMessage(TimestampMessage message)
        {
            var userMessage = message as UserTimestampMessage;

            if (userMessage?.Type != UserTimestampMessage.MessageType.Join &&
                userMessage?.Type != UserTimestampMessage.MessageType.Leave)
            {
                return;
            }

            if (userMessage.Type == UserTimestampMessage.MessageType.Join)
            {
                UserJoin(userMessage);
            }
            else if (userMessage.Type == UserTimestampMessage.MessageType.Leave)
            {
                UserLeave(userMessage);
            }
        }
示例#8
0
        public void HandleLogMessage(TimestampMessage message)
        {
            var userMessage = message as UserTimestampMessage;

            if (userMessage?.Type != UserTimestampMessage.MessageType.Join &&
                userMessage?.Type != UserTimestampMessage.MessageType.Leave)
            {
                return;
            }

            var messageInOffset = userMessage.ToZone(this.TimeZone);

            if (messageInOffset.Type == UserTimestampMessage.MessageType.Join)
            {
                UserJoin(messageInOffset);
            }
            else if (messageInOffset.Type == UserTimestampMessage.MessageType.Leave)
            {
                UserLeave(messageInOffset);
            }
        }
示例#9
0
 public TimestampMessage(TimestampMessage message)
 {
     this.Timestamp      = message.Timestamp;
     this.RawContent     = message.RawContent;
     this.ZonedTimestamp = message.ZonedTimestamp;
 }