<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,7 +1,18 @@
+# Unfuddle RSS echo plugin. Uses the following config.yml settings:
+#
+# unfuddle:
+#   domain: you.unfuddle.com
+#   rss_path: &quot;/account/activity.rss?aak=aaaaaaaaaaaaabbbbbbbbccccccccddddddeeee0000&quot;
+#   port: 443
+#   msg_filters:
+#     - reassigned
+#     - closed
+#     - commented
+#     - resolved
+
 require 'rubygems'
 require 'simple-rss'
 require 'net/https'
-require 'htmlentities'
 
 class Unfuddle &lt; CampfireBot::Plugin
   at_interval 2.minutes, :fetch_rss
@@ -9,23 +20,50 @@ class Unfuddle &lt; CampfireBot::Plugin
 
   def initialize
     @last_item = 12.hours.ago
-    @http = Net::HTTP.new(bot.config['unfuddle_domain'], bot.config['unfuddle_port'])
+    @http = Net::HTTP.new(bot.config['unfuddle']['domain'], bot.config['unfuddle']['port'])
 
-    if bot.config['unfuddle_port'] == 443
+    if bot.config['unfuddle']['port'] == 443
       @http.use_ssl = true
       @http.verify_mode = OpenSSL::SSL::VERIFY_NONE
     end
   end
 
   def fetch_rss(msg)
-    feed = SimpleRSS.parse(@http.get(bot.config['unfuddle_rss_path']).body)
+    feed = SimpleRSS.parse(@http.get(bot.config['unfuddle']['rss_path']).body)
 
     feed.items.each do |item|
-      msg.speak HTMLEntities.new.decode(&quot;#{item.title} #{item.link}&quot;) if item.pubDate &gt; @last_item
+      msg.speak &quot;#{item.title} #{item.link}&quot; if published?(item) &amp;&amp; !filtered?(item.title)
     end
 
     @last_item = feed.items.first.pubDate
   rescue =&gt; e
     msg.speak e
   end
+
+  def published?(item)
+    item.pubDate &gt; @last_item
+  end
+
+  def filtered?(title)
+    bot.config['unfuddle']['msg_filters'].each do |msg_filter|
+      return true if send(&quot;#{msg_filter}?&quot;, title)
+    end
+    return false
+  end
+
+  def closed?(title)
+    (title =~ /Closed Ticket:/) != nil
+  end
+
+  def reassigned?(title)
+    (title =~ /Reassigned Ticket:/) != nil
+  end
+
+  def commented?(title)
+    (title =~ /Created Ticket Comment:/) != nil
+  end
+
+  def resolved?(title)
+    (title =~ /Resolved Ticket:/) != nil
+  end
 end</diff>
      <filename>plugins/unfuddle.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f542d25d1e4cff4a4cf844fbd7ce817d4add766f</id>
    </parent>
  </parents>
  <author>
    <name>Tim Riley</name>
    <email>tim@openmonkey.com</email>
  </author>
  <url>http://github.com/timriley/campfire-bot/commit/e90fa7db4cf4aaf3dcbec2da5f721620c196ee02</url>
  <id>e90fa7db4cf4aaf3dcbec2da5f721620c196ee02</id>
  <committed-date>2009-05-19T16:35:14-07:00</committed-date>
  <authored-date>2009-05-19T16:35:14-07:00</authored-date>
  <message>Revert &quot;html entities decoding in unfuddle plugin&quot;

This reverts commit f542d25d1e4cff4a4cf844fbd7ce817d4add766f.</message>
  <tree>1573c0fb508fb5d4122aaca80d8624d61bfa3117</tree>
  <committer>
    <name>Tim Riley</name>
    <email>tim@openmonkey.com</email>
  </committer>
</commit>
