コード例 #1
0
        public static IEnumerable <FeedItem> Parse(Uri path, Encoding encoding)
        {
            WebRequest  req = (WebRequest)HttpWebRequest.Create(path);
            WebResponse res = req.GetResponse();

            return(FeedParser.Parse(res.GetResponseStream(), encoding));
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: bambidarra/FeedReader
        static void Main(string[] args)
        {
            DB = DataBase.GetInstance();

            while (true)
            {
                foreach (var f in DB.Feeds.Where(i => i.LastChecked.AddMinutes(15) < DateTime.Now).AsParallel())
                {
                    try
                    {
                        foreach (var fi in FeedParser.Parse(new Uri(f.Url)))
                        {
                            try
                            {
                                FeedReader.Models.FeedItem nFeedItem = new FeedReader.Models.FeedItem
                                {
                                    FeedID      = f.ID,
                                    Created     = fi.PublicationDate,
                                    Description = PrepareString(fi.Description),
                                    Title       = PrepareString(fi.Title),
                                    Url         = fi.Link.ToString()
                                };

                                if (!DB.FeedItems.Any(i => i.Url == nFeedItem.Url && i.FeedID == f.ID))
                                {
                                    DB.FeedItems.InsertOnSubmit(nFeedItem);
                                    Console.WriteLine("{0}: {1}", f.Title, nFeedItem.Title);
                                }
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Error occurred inserting {0}.", fi.Title.TrimEnd('.'));
                                Console.WriteLine(e);
                            }
                        }

                        f.LastChecked = DateTime.Now;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Failed to download or parse {0}.", f.Title);
                        Console.WriteLine(e);
                    }
                }


                try
                {
                    DB.SubmitChanges();
                    Thread.Sleep(30 * 1000);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Error inserting feeds:");
                    Console.WriteLine(e.Message);
                    Thread.Sleep(10 * 1000);
                }

                DB.ClearInternalCache();
            }
        }
コード例 #3
0
 public static IEnumerable <FeedItem> Parse(string path, Encoding encoding)
 {
     return(FeedParser.Parse(new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite), encoding));
 }
コード例 #4
0
 public static IEnumerable <FeedItem> Parse(Uri path)
 {
     return(FeedParser.Parse(path, null));
 }
コード例 #5
0
 public static IEnumerable <FeedItem> Parse(Stream stream)
 {
     return(FeedParser.Parse(stream, null));
 }