public void FindClosestTweetToTimeTest()
        {
            // Set up
            TweetMiner miner = new TweetMiner();
            DateTime time = DateTime.Now.AddDays(-1);
            TimeSpan oneMin = new TimeSpan(0,1,0);

            // Execute
            var tweet = miner.FindClosestTweetToTime(time, "I");

            // Validate
            Assert.IsNotNull(tweet);
            Assert.IsNotNull(tweet.Text);
            Assert.IsTrue(tweet.CreatedAt.Subtract(time) < oneMin);
        }
        public void SearchTest()
        {
            // Set up
            TweetMiner miner = new TweetMiner();
            int count = 20;
            DateTime time = DateTime.Now.AddDays(-2);
            DateTime until = new DateTime(time.Year, time.Month, time.Day);

            // Execute
            var task = miner.Search("I", 20, until);
            var statuses = task.Result;

            // Validate
            Assert.IsNotNull(statuses);
            Assert.AreEqual(count, statuses.Count);
            foreach (var status in statuses)
            {
                // check the tweet actually happened before the until parameter
                Assert.IsTrue(status.CreatedAt < until);
            }
        }
        public void BuildQueryTest()
        {
            string expected = "#chelsea OR #cfc OR #coys OR #thfc OR #CFCTHFC";
            // Set up teams
            Team chelsea = new Team()
            {
                Name = "Chelsea",
                ShortName = "CFC",
                Hashtags = new List<Hashtag>()
            };
            foreach (var tag in new List<string>() { "#chelsea", "#cfc" })
                chelsea.Hashtags.Add(new Hashtag() { Value = tag });
            Team spurs = new Team()
            {
                Name = "Tottenham Hotspur",
                ShortName = "THFC",
                Hashtags = new List<Hashtag>()
            };
            foreach (var tag in new List<string>() { "#coys", "#thfc" })
                chelsea.Hashtags.Add(new Hashtag() { Value = tag });
            // Set up the Game
            Game game = new Game()
            {
                HomeTeam = chelsea,
                AwayTeam = spurs,
                Start = new DateTime(2014, 3, 8, 17, 30, 0),
            };
            TweetMiner miner = new TweetMiner();

            // Execute
            string actual = miner.BuildQuery(game);

            // Validate
            Assert.IsNotNull(actual);
            Assert.AreEqual(expected, actual);
        }
예제 #4
0
        static void Main(string[] args)
        {
            if (args[0] == "fixture")
            {
                int start = Int32.Parse(args[1]);
                int end = Int32.Parse(args[2]);
                var miner = new FixtureMiner()
                {
                    StartWeek = start,
                    EndWeek = end
                };
                miner.Mine();
            }
            else if (args[0] == "event")
            {
                int matchId = -1;
                int dayIdStart = -1;
                int dayIdEnd = -1;
                if (args.Length == 4)
                {
                    matchId = Int32.Parse(args[1]);
                    dayIdStart = Int32.Parse(args[2]);
                    dayIdEnd = Int32.Parse(args[3]);
                }
                else if (args.Length == 2)
                {
                    dayIdEnd = Int32.Parse(args[1]);
                    using (var repository = new GameRepository())
                    {
                        var game = repository.GetAll()
                            .Where(g => g.MatchDay == dayIdEnd - 1)
                            .OrderByDescending(g => g.LiveMatchId ?? -1).Take(1).First();
                        matchId = (int)game.LiveMatchId + 1;
                        dayIdStart = dayIdEnd;
                    }
                }
                else
                {
                    using (var repository = new GameRepository())
                    {
                        var game = repository.GetAll().OrderByDescending(g => g.LiveMatchId ?? -1).Take(1).First();
                        matchId = (int)game.LiveMatchId + 1;
                        dayIdStart = (int)game.MatchDay;
                        dayIdEnd = 38; // assume 38 weeks in season
                    }
                }
                GameEventMiner miner = new GameEventMiner()
                {
                    StartMatchId = matchId,
                    StartMatchDayId = dayIdStart,
                    EndMatchDayId = dayIdEnd
                };
                miner.Mine();

            }
            else if (args[0] == "twitter")
            {
                int minMatchDay = 0;
                if (args.Length == 2)
                {
                    minMatchDay = Int32.Parse(args[1]);
                }
                TweetMiner miner = new TweetMiner()
                {
                    MinGameDay = minMatchDay
                };
                var task = miner.Mine();
                Console.Out.WriteLine("Complete!");
            }
            else if (args[0] == "print")
            {
                long id = 0;
                DateTime time;
                if (args.Length == 3)
                {
                    time = DateTime.Parse(args[1]);
                    DateTimeOffset offset = new DateTimeOffset(time, new TimeSpan(0, 0, 0));
                    id = long.Parse(args[2]);
                    TweetMiner miner = new TweetMiner();
                    miner.PrintTweetsAfterTime(time, id);
                }
            }
            else if (args[0] == "activity")
            {
                ActivityChartManager manager = new ActivityChartManager();
                manager.UpdateAll();

                Console.Out.WriteLine("Complete!");
            }
            else if (args[0] == "counts")
            {
                TweetCountManager manager = new TweetCountManager();
                manager.UpdateAll();

                Console.Out.WriteLine("Complete!");
            }
            else if (args[0] == "topevents")
            {
                TopEventManager top = new TopEventManager();
                top.Update();
                Console.Out.WriteLine("Complete!");
            }
        }