You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@esme.apache.org by vd...@apache.org on 2009/01/21 06:51:10 UTC

svn commit: r736230 - in /incubator/esme/trunk/server/src/main/scala/us/esme: external/RssFeed.scala model/Action.scala

Author: vdichev
Date: Tue Jan 20 21:51:09 2009
New Revision: 736230

URL: http://svn.apache.org/viewvc?rev=736230&view=rev
Log:
ESME-22 - Fix duplicate entries in RSS feed when pubDate element is missing.

Modified:
    incubator/esme/trunk/server/src/main/scala/us/esme/external/RssFeed.scala
    incubator/esme/trunk/server/src/main/scala/us/esme/model/Action.scala

Modified: incubator/esme/trunk/server/src/main/scala/us/esme/external/RssFeed.scala
URL: http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/scala/us/esme/external/RssFeed.scala?rev=736230&r1=736229&r2=736230&view=diff
==============================================================================
--- incubator/esme/trunk/server/src/main/scala/us/esme/external/RssFeed.scala (original)
+++ incubator/esme/trunk/server/src/main/scala/us/esme/external/RssFeed.scala Tue Jan 20 21:51:09 2009
@@ -20,6 +20,10 @@
 import java.util.Locale.US
 
 import us.esme.model.User
+import us.esme.model.Message
+import us.esme.actor.Distributor.{UserCreatedMessage=>Msg}
+
+import net.liftweb.util.Empty
 
 object RssFeed {
   val dateFormats = List(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", US))
@@ -60,5 +64,17 @@
       parseInternetDate(date text).getTime
   }
   
+  // need to compare by text since a pubDate is not mandatory and indeed, often is missing
+  override def getLastSortedMessages(msgs: List[Msg], lastMessage: Option[Msg]): List[Msg] = {
+    lastMessage match {
+      case Some(message: Msg) =>
+        msgs.reverse.takeWhile{ msg =>
+          // a hack to format text identically- difference in urls & trailing whitespace
+          Message.setTextAndTags(msg.text, Nil, Empty).get.getText !=
+          Message.setTextAndTags(message.text, Nil, Empty).get.getText
+        }
+      case None => msgs
+    }
+  }.reverse
 }
 

Modified: incubator/esme/trunk/server/src/main/scala/us/esme/model/Action.scala
URL: http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/scala/us/esme/model/Action.scala?rev=736230&r1=736229&r2=736230&view=diff
==============================================================================
--- incubator/esme/trunk/server/src/main/scala/us/esme/model/Action.scala (original)
+++ incubator/esme/trunk/server/src/main/scala/us/esme/model/Action.scala Tue Jan 20 21:51:09 2009
@@ -151,7 +151,7 @@
             val lastMsg = if (msgList.isEmpty) None 
               else {
                 val m = msgList.first
-                Some(Distributor.UserCreatedMessage(user, m.text, m.tags, m.when, Empty, m.source, Full(m.replyTo)))
+                Some(Distributor.UserCreatedMessage(user, m.getText, m.tags, m.when, Empty, m.source, Full(m.replyTo)))
               }
 
             val feed = a match {