コード例 #1
0
        private static void ParseScorecard(FileStore dataStore, ScorecardDetails md)
        {
            CricketMatch m = dataStore.Load <CricketMatch>(CricketMatch.GenerateId(md.Season, md.MatchCode));

            if (m != null)
            {
                Log.InfoFormat("Match {0} ({1}) has already been imported", md.MatchCode, m);
                return;
            }

            Log.InfoFormat("Parsing scorecard for {0}", md);

            string scorecard = dataStore.LoadText(md.GenerateScorecardKey(), "html");

            if (string.IsNullOrEmpty(scorecard))
            {
                return;
            }

            DependencyFinder finder = new DependencyFinder(dataStore);
            ScorecardParser  parser = new ScorecardParser(md, finder);

            parser.Parse(scorecard);

            CricketMatch match = parser.Match;

            dataStore.Save(match, match.Id);

            Log.Info(match.ToLongString());
        }
コード例 #2
0
ファイル: BaseCrawlCommand.cs プロジェクト: bugedone/somerset
        protected static string FormatValue(ScorecardDetails value, int length)
        {
            string asString = value.ToString();

            asString = Regex.Replace(asString, "\\s+", " ");
            if (asString.Length <= length)
            {
                return(asString.PadRight(length));
            }
            return(asString.Substring(0, length));
        }
コード例 #3
0
ファイル: ScorecardParser.cs プロジェクト: bugedone/somerset
 public ScorecardParser(ScorecardDetails details, DependencyFinder finder)
 {
     _finder = finder;
     _match  = new CricketMatch
     {
         Id        = CricketMatch.GenerateId(details.Season, details.MatchCode),
         MatchCode = details.MatchCode,
         HomeTeam  = details.HomeTeam,
         AwayTeam  = details.AwayTeam,
         Season    = details.Season,
         StartDate = details.Date,
         Players   = "11 per side",
         Innings   = new List <Innings>()
     };
 }
コード例 #4
0
        private static void SaveScorecard(ScorecardDetails details, Task <string> task, FileStore dataStore)
        {
            if (task.Exception != null)
            {
                Log.Error(string.Format("Failed to download file from http://www.cricketarchive.com{0}", details.ScorecardUrl),
                          task.Exception);
                return;
            }

            string scorecard = task.Result;

            if (string.IsNullOrEmpty(scorecard))
            {
                Log.WarnFormat("Nothing returned from http://www.cricketarchive.com{0}", details.ScorecardUrl);
                return;
            }

            dataStore.StoreText(scorecard, details.GenerateScorecardKey(), "html");
        }
コード例 #5
0
 private static Task DownloadScorecardAsync(ScorecardDetails details, FileStore dataStore)
 {
     Log.InfoFormat("Fetching URL {0}", details.ScorecardUrl);
     return(Task.Factory.StartNew(() => WebClient.FetchWebPageContent(details.ScorecardUrl))
            .ContinueWith(t => SaveScorecard(details, t, dataStore)));
 }