<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -43,3 +43,15 @@ case class CompoundFilter(val textFilters: List[TextFilter],
     retweet.toString, commentedRetweet.toString).mkString(&quot;&#8597;&quot;)
 }
 
+object CompoundFilter {
+  def muteRtSender(sender: String) = 
+      CompoundFilter(List(FromTextFilter(sender, false)), Some(true), None)
+
+  def muteCRtSender(sender: String) = 
+      CompoundFilter(List(FromTextFilter(sender, false)), None, Some(true))
+  
+  def muteApp(app: String) = CompoundFilter(List(SourceTextFilter(app, false)), None, None)
+  
+  def muteSender(sender: String) = CompoundFilter(List(FromTextFilter(sender, false)), None, None)
+}
+</diff>
      <filename>desktop/src/main/scala/org/talkingpuffin/filter/CompoundFilter.scala</filename>
    </modified>
    <modified>
      <diff>@@ -6,36 +6,34 @@ package org.talkingpuffin.filter
 class FilterAdder(filterSet: FilterSet) {
 
   def muteApps(apps: List[String]) {
-    apps.foreach(app =&gt; filterSet.excludeSet.cpdFilters.add(
-        CompoundFilter(List(SourceTextFilter(app, false)), None, None)))
+    apps.foreach(app =&gt; exclude(CompoundFilter.muteApp(app)))
     filterSet.publish
   }
 
   def muteSenders(senders: List[String]) {
-    senders.foreach(sender =&gt; filterSet.excludeSet.cpdFilters.add(
-        CompoundFilter(List(FromTextFilter(sender, false)), None, None)))
+    senders.foreach(sender =&gt; exclude(CompoundFilter.muteSender(sender)))
     filterSet.publish
   }
 
   def muteRetweetUsers(senders: List[String]) {
-    senders.foreach(sender =&gt; filterSet.excludeSet.cpdFilters.add(
-        CompoundFilter(List(FromTextFilter(sender, false)), Some(true), None)))
+    senders.foreach(sender =&gt; exclude(CompoundFilter.muteRtSender(sender)))
     filterSet.publish
   }
 
   def muteSelectedUsersCommentedRetweets(senders: List[String]) {
     senders.foreach(sender =&gt; {
-      val filters = List(FromTextFilter(sender, false))
-      filterSet.excludeSet.cpdFilters.add(CompoundFilter(filters, Some(true), None))
-      filterSet.excludeSet.cpdFilters.add(CompoundFilter(filters, None, Some(true)))
+      exclude(CompoundFilter.muteRtSender(sender))
+      exclude(CompoundFilter.muteCRtSender(sender))
     })
     filterSet.publish
   }
 
   def muteSenderReceivers(srs: List[(String, String)]) {
-    srs.foreach(sr =&gt; filterSet.excludeSet.cpdFilters.add(
+    srs.foreach(sr =&gt; exclude(
         CompoundFilter(List(FromTextFilter(sr._1, false), 
         ToTextFilter(sr._2, false)), None, None)))
     filterSet.publish
   }
+  
+  private def exclude(filter: CompoundFilter) = filterSet.excludeSet.cpdFilters.add(filter) 
 }
\ No newline at end of file</diff>
      <filename>desktop/src/main/scala/org/talkingpuffin/filter/FilterAdder.scala</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,8 @@ object RetweetDetector {
   private val regexes = List(rtUser, viaUser)
   
   implicit def string2RetweetDetector(text: String) = new RetweetDetector(text)
-  implicit def status2RetweetDetector(status: TwitterStatus) = new RetweetDetector(status.text)
+  implicit def status2RetweetDetector(status: TwitterStatus) = 
+      new RetweetDetector(status.text)
 }
   
 class RetweetDetector(text: String) {</diff>
      <filename>desktop/src/main/scala/org/talkingpuffin/filter/RetweetDetector.scala</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b947d4dc762d96d72a6551ea237c9725e235b052</id>
    </parent>
  </parents>
  <author>
    <name>Dave Briccetti</name>
    <email>daveb@davebsoft.com</email>
  </author>
  <url>http://github.com/dcbriccetti/talking-puffin/commit/439112cd60dc8e666ad7531a289b7d79be022675</url>
  <id>439112cd60dc8e666ad7531a289b7d79be022675</id>
  <committed-date>2009-11-07T16:23:35-08:00</committed-date>
  <authored-date>2009-11-07T16:23:35-08:00</authored-date>
  <message>Refactor, comment the filters code</message>
  <tree>ae41578f34c656f8df3c8dd7d44138db31ddca92</tree>
  <committer>
    <name>Dave Briccetti</name>
    <email>daveb@davebsoft.com</email>
  </committer>
</commit>
