Author: gonzalo
Date: 2005-03-17 22:34:17 -0500 (Thu, 17 Mar 2005)
New Revision: 41971

Modified:
   trunk/monologue/ChangeLog
   trunk/monologue/worker/monologue-worker.cs
Log:
2005-03-17 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>

        * worker/monologue-worker.cs: group requests by URL.



Modified: trunk/monologue/ChangeLog
===================================================================
--- trunk/monologue/ChangeLog   2005-03-18 00:40:21 UTC (rev 41970)
+++ trunk/monologue/ChangeLog   2005-03-18 03:34:17 UTC (rev 41971)
@@ -1,3 +1,7 @@
+2005-03-17 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>
+
+       * worker/monologue-worker.cs: group requests by URL.
+
 2005-03-13  Mark Crichton  <[EMAIL PROTECTED]>
 
        * worker/blogger.xml: changed the URL.  Don't think people would be

Modified: trunk/monologue/worker/monologue-worker.cs
===================================================================
--- trunk/monologue/worker/monologue-worker.cs  2005-03-18 00:40:21 UTC (rev 
41970)
+++ trunk/monologue/worker/monologue-worker.cs  2005-03-18 03:34:17 UTC (rev 
41971)
@@ -91,7 +91,7 @@
                bool somethingChanged = false;
                int [] counters = new int [(int) UpdateStatus.MAX];
                
-               foreach (Blogger b in bloggers.Bloggers) {
+               foreach (Blogger b in bloggers.BloggersByUrl) {
                        UpdateStatus st;
                        b.Feed = FeedCache.Read (b.Name, b.RssUrl, out st);
                        b.UpdateFeed ();
@@ -117,7 +117,7 @@
                ArrayList stories = new ArrayList ();
                
                DateTime minPubDate = DateTime.Now.AddDays (-14);
-               foreach (Blogger b in bloggers.Bloggers) {
+               foreach (Blogger b in bloggers.BloggersByUrl) {
                        if (b.Channel == null) continue;
                        foreach (RssItem i in b.Channel.Items) {
                                if (i.PubDate >= minPubDate) {
@@ -240,6 +240,7 @@
        }
 
        ArrayList bloggers;
+       ArrayList bloggersByUrl;
        Hashtable idToBlogger;
        [XmlElement ("Blogger", typeof (Blogger))]
        public ArrayList Bloggers {
@@ -254,19 +255,36 @@
                                idToBlogger.Add (b.ID, b);
                }
        }
-       
+
+       public ArrayList BloggersByUrl {
+               get {
+                       if (bloggersByUrl == null) {
+                               bloggersByUrl = new ArrayList (bloggers);
+                               bloggersByUrl.Sort (new UrlComparer ());
+                       }
+                       return bloggersByUrl;
+               }
+       }
+
        public Blogger this [string id] {
                get {
                        return (Blogger)idToBlogger [id];
                }
        }
-       
+
        public class BloggerComparer : IComparer {
                int IComparer.Compare (object x, object y)
                {
                        return String.Compare (((Blogger)x).Name, 
((Blogger)y).Name);
                }
        }
+
+       public class UrlComparer : IComparer {
+               int IComparer.Compare (object x, object y)
+               {
+                       return String.Compare (((Blogger)x).RssUrl, 
((Blogger)y).RssUrl);
+               }
+       }
 }
 
 public enum UpdateStatus {

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to