Пример #1
0
        public void UpdateOnMessage(string from, string message)
        {
            var user = _userDatabase.GetUser(from);

            if (message.Contains("<3"))
            {
                user.HeartCount++;
            }
            if (message.Contains("Kappa"))
            {
                user.KappaCount++;
            }

            user.MessageCount++;
            user.LastSpoke = DateTime.Now;

            user.CharacterCount += message.Length;

            //Gets the game currently being streamed.
            var stream = _twitch.GetTwitchStream(Chat.MainChannel.Substring(1));

            if (stream != null)
            {
                //update game stats
                var game = _gameDatabase.GetGame(stream.game);

                game.MessageCount++;

                if ((DateTime.Now + TimeSpan.FromHours(2)).Date != (game.LastPlayed + TimeSpan.FromHours(2)).Date)
                {
                    game.DaysPlayed++;
                    game.LastPlayed = DateTime.Now;
                }

                // case where game played changes while person is still in channel (change without join event)
                if (user.LastGame.CompareTo(stream.game) != 0)
                {
                    game.UniqueMessageCount++;
                    game.VisitCount++;
                    user.UniqueMessageFlag = false;
                }

                // case where user speaks for the first time after join event in a new game
                if (user.UniqueMessageFlag)
                {
                    game.UniqueMessageCount++;
                    user.UniqueMessageFlag = false;
                }

                _gameDatabase.Update(stream.game, game);

                user.LastGame = stream.game;
            }
            // write to the database
            _userDatabase.Update(from, user);
        }
Пример #2
0
        private User NewUser(string username)
        {
            var user = new User(username);

            user.FirstSeen = DateTime.Now;
            var stream = _twitch.GetTwitchStream(Chat.MainChannel.Substring(1));

            if (stream != null)
            {
                user.FirstGame = stream.game;
            }

            var data = user.ToDictionary();

            data.Add("user", user.Name);
            _db.Insert("users", data);

            return(user);
        }