<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>app/models/mozes_user.rb</filename>
    </added>
    <added>
      <filename>db/migrate/20081024164149_create_mozes_users.rb</filename>
    </added>
    <added>
      <filename>db/migrate/20081024170120_add_reports_mozes_fields.rb</filename>
    </added>
    <added>
      <filename>test/fixtures/mozes_users.yml</filename>
    </added>
    <added>
      <filename>test/unit/mozes_user_test.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1 +1,3 @@
 config/database.yml
+log/*
+.DS_Store</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -12,6 +12,9 @@ class Report &lt; ActiveRecord::Base
   after_save  :assign_filters
   
   named_scope :with_location, :conditions =&gt; 'location_id IS NOT NULL'
+  
+  SOURCE_TWITTER = 1
+  SOURCE_MOZES = 2
 
   def name
     &quot;#votereport #{self[:id]}&quot; + (self.twitter_user ? &quot; - #{twitter_user.name}&quot; : &quot;&quot;)</diff>
      <filename>app/models/report.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ development:
   database: votereport_development
   username: root
   password:
-  socket: /private/var/mysql/mysql.sock
+  socket: /tmp/mysql.sock
 
 test:
   adapter: mysql</diff>
      <filename>config/database.yml</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,7 @@
 #
 # It's strongly recommended to check this file into your version control system.
 
-ActiveRecord::Schema.define(:version =&gt; 20081023221200) do
+ActiveRecord::Schema.define(:version =&gt; 20081024170120) do
 
   create_table &quot;filters&quot;, :options=&gt;'ENGINE=MyISAM', :force =&gt; true do |t|
     t.column &quot;name&quot;, :string, :limit =&gt; 80
@@ -57,6 +57,14 @@ ActiveRecord::Schema.define(:version =&gt; 20081023221200) do
 
   add_index &quot;locations&quot;, [&quot;point&quot;], :name =&gt; &quot;index_locations_on_point&quot;, :spatial=&gt; true 
 
+  create_table &quot;mozes_users&quot;, :force =&gt; true do |t|
+    t.column &quot;mozes_id&quot;, :integer, :null =&gt; false
+    t.column &quot;created_at&quot;, :datetime
+    t.column &quot;updated_at&quot;, :datetime
+  end
+
+  add_index &quot;mozes_users&quot;, [&quot;mozes_id&quot;], :name =&gt; &quot;index_mozes_users_on_mozes_id&quot;
+
   create_table &quot;report_filters&quot;, :options=&gt;'ENGINE=MyISAM', :force =&gt; true do |t|
     t.column &quot;report_id&quot;, :integer
     t.column &quot;filter_id&quot;, :integer
@@ -86,9 +94,13 @@ ActiveRecord::Schema.define(:version =&gt; 20081023221200) do
     t.column &quot;wait_time&quot;, :integer
     t.column &quot;created_at&quot;, :datetime
     t.column &quot;updated_at&quot;, :datetime
+    t.column &quot;mozes_user_id&quot;, :integer
+    t.column &quot;mozes_feed_id&quot;, :integer
   end
 
   add_index &quot;reports&quot;, [&quot;tid&quot;], :name =&gt; &quot;index_reports_on_tid&quot;, :unique =&gt; true
+  add_index &quot;reports&quot;, [&quot;mozes_user_id&quot;], :name =&gt; &quot;index_reports_on_mozes_user_id&quot;
+  add_index &quot;reports&quot;, [&quot;mozes_feed_id&quot;], :name =&gt; &quot;index_reports_on_mozes_feed_id&quot;
 
   create_table &quot;tags&quot;, :force =&gt; true do |t|
     t.column &quot;pattern&quot;, :string, :limit =&gt; 30</diff>
      <filename>db/schema.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@
     &lt;description&gt;Nationwide VoteReport&lt;/description&gt;
     &lt;title&gt;Messages for votereport on Mozes.com&lt;/title&gt;
     &lt;item&gt;
-      &lt;title&gt;&lt;![CDATA[Message to votereport]]&gt;&lt;/title&gt;
+      &lt;title&gt;&lt;![CDATA[#votereport they won't let grandma vote! L:Lansing, MI]]&gt;&lt;/title&gt;
       &lt;description&gt;&lt;![CDATA[
       &lt;a href=&quot;http://www.mozes.com/302574403185/&quot;&gt;&lt;img src=&quot;http://www.mozes.com/_common/images/default_avatars/phone_default_0.jpg&quot; width=&quot;40&quot; height=&quot;40&quot; title=&quot;&quot;/&gt;&lt;/a&gt;
         long lines at l:02130        
@@ -17,7 +17,7 @@
       &lt;mozes:mozesUserId&gt;302574403185&lt;/mozes:mozesUserId&gt;
     &lt;/item&gt;
     &lt;item&gt;
-      &lt;title&gt;&lt;![CDATA[Message from yotowoti]]&gt;&lt;/title&gt;
+      &lt;title&gt;&lt;![CDATA[#votereport long lines here L:11211 ]]&gt;&lt;/title&gt;
       &lt;description&gt;&lt;![CDATA[
       &lt;a href=&quot;http://www.mozes.com/3216502430/yotowoti&quot;&gt;&lt;img src=&quot;http://www.mozes.com/_common/images/default_avatars/phone_default_0.jpg&quot; width=&quot;40&quot; height=&quot;40&quot; title=&quot;yotowoti&quot;/&gt;&lt;/a&gt;
         test        
@@ -26,5 +26,15 @@
       &lt;link&gt;&lt;![CDATA[http://www.mozes.com/3216502430/yotowoti]]&gt;&lt;/link&gt;
       &lt;mozes:mozesUserId&gt;3216502430&lt;/mozes:mozesUserId&gt;
     &lt;/item&gt;
+    &lt;item&gt;
+      &lt;title&gt;&lt;![CDATA[#votereport long lines where? Jacksonville, FL ]]&gt;&lt;/title&gt;
+      &lt;description&gt;&lt;![CDATA[
+      &lt;a href=&quot;http://www.mozes.com/3216502430/yotowoti&quot;&gt;&lt;img src=&quot;http://www.mozes.com/_common/images/default_avatars/phone_default_0.jpg&quot; width=&quot;40&quot; height=&quot;40&quot; title=&quot;yotowoti&quot;/&gt;&lt;/a&gt;
+        test        
+      ]]&gt;&lt;/description&gt;
+      &lt;pubDate&gt;Thu, 23 Oct 2008 14:11:20 -0700&lt;/pubDate&gt;
+      &lt;link&gt;&lt;![CDATA[http://www.mozes.com/3216502430/yotowoti]]&gt;&lt;/link&gt;
+      &lt;mozes:mozesUserId&gt;3216502430&lt;/mozes:mozesUserId&gt;
+    &lt;/item&gt;
   &lt;/channel&gt;
 &lt;/rss&gt;</diff>
      <filename>lib/daemons/mozes_sample.xml</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,9 @@
 ENV[&quot;RAILS_ENV&quot;] ||= 'production'
 
-# TODO: this needs completed!  Only a skeleton right now!
-# See mozes_sample.xml for contents of feed
-
-FEED = &quot;http://www.mozes.com/_/rss?keyword_id=1031894&quot;
+FEED = 'http://www.mozes.com/_/rss?keyword_id=1031894'
 
 require File.dirname(__FILE__) + &quot;/../../config/environment&quot;
-require 'json'
+require 'hpricot'
 require 'open-uri'
 
 $running = true
@@ -14,19 +11,42 @@ Signal.trap(&quot;TERM&quot;) do
   $running = false
 end
 
-while($running) do
-  # Populate these fields ONLY
-    # report.text = description body (exclude &lt;a&gt;&lt;img&gt;*&lt;/a&gt;)
-    # report.callerid = mozes:mozesUserId
-    # report.input_source_id = 2
+# for chucking errors about bad data
+class PollMozesException &lt; StandardError
+end
 
+while($running) do
+  begin
   # DO NOT populate these fields for this dataset
     # report.uniqueid = nil                 (asterisk ONLY)
     # report.tid = nil                      (twitter ONLY)
     # report.twitter_user_id = nil          (twitter ONLY)
     
-  
-  messages = open(FEED).read
+    doc = Hpricot.XML(open(FEED))
+    
+    (doc/:item).each do |item|
+      begin
+        user = MozesUser.find_or_create_by_mozes_id( (item/'mozes:mozesUserId').inner_html.strip )
+        
+        # Populate these fields ONLY
+        # report.text = description body (exclude &lt;a&gt;&lt;img&gt;*&lt;/a&gt;)
+        # report.callerid = mozes:mozesUserId
+        # report.input_source_id = 2
+        user.reports.create! { 
+          :text =&gt; (item/:description).inner_text, 
+          :mozes_user_id =&gt; user.id, 
+          :mozes_feed_id =&gt; nil,
+          :input_source_id =&gt; REPORT::SOURCE_MOZES 
+        }
+        
+      rescue ActiveRecord::InvalidRecord =&gt; e
+        puts &quot;Error while creating report from Mozes feed: #{e.class}: #{e.message}&quot;
+      end
+    end
+  rescue Exception =&gt; e
+    puts &quot;Uncaught exception during loop: \n#{e.class}: #{e.message}\n\t#{e.backtrace.join(&quot;\n&quot;)} &quot;
+  end
+  #messages = open(FEED).read
   sleep 10
 end
 </diff>
      <filename>lib/daemons/poll_mozes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -22,7 +22,7 @@ while($running) do
     next unless user = TwitterUser.add(user_info)
     
     screen_name, text = entry['title'].match(EXTRACTOR).captures
-    report_info = { :text =&gt; text, :tid =&gt; entry['status_id'], :input_source_id =&gt; 1 }
+    report_info = { :text =&gt; text, :tid =&gt; entry['status_id'], :input_source_id =&gt; REPORT::SOURCE_TWITTER }
     user.reports.create(report_info)
   end
   sleep 10</diff>
      <filename>lib/daemons/poll_tweets.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>5d8483833ed0e2ec8e54a022b54b3aa25d9a06a1</id>
    </parent>
  </parents>
  <author>
    <name>Billy Gray</name>
    <email>wgray@zetetic.net</email>
  </author>
  <url>http://github.com/davetroy/votereport/commit/9930911adeedac244a2eed8c6725557f2ec0bd02</url>
  <id>9930911adeedac244a2eed8c6725557f2ec0bd02</id>
  <committed-date>2008-10-24T10:33:55-07:00</committed-date>
  <authored-date>2008-10-24T10:33:55-07:00</authored-date>
  <message>- okay, shaping up here
- beginning to get these mozes items imported</message>
  <tree>f573d19e2498d694b53ef6061b16846f98a5f61b</tree>
  <committer>
    <name>Billy Gray</name>
    <email>wgray@zetetic.net</email>
  </committer>
</commit>
