<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -106,9 +106,16 @@ url = base
 
 puts &quot;CONTACTING INTERNETS... #{url}&quot;
 agent = WWW::Mechanize.new
+agent.read_timeout = 30
 # agent.user_agent = &quot;KANYE RANT DETECTOR &lt;http://fffff.at&gt;&quot;
 agent.user_agent_alias = &quot;Mac Safari&quot;
-page = agent.get(url)
+retries = 3
+begin
+  page = agent.get(url)
+rescue Exception # Timeout::Error does not derive from StandardException, I h8 it O_o
+  STDERR.puts &quot;ERROR FETCHING: #{$!}   RETRIES REMAINING: #{retries}&quot;
+  retry if (retries -= 1) &gt; 0
+end
 
 # FOR PROPER ARCHIVAL
 reverse_pagination = true
@@ -117,7 +124,12 @@ reverse_pagination = true
 first = 0 # GETS OVERRIDDEN
 loop {
   # IN REVERSE MODE...
-  posts = (page/'.rapper').to_a.reverse
+  posts = (page/'.rapper').to_a.reverse rescue nil
+  if posts.blank?
+    STDERR.puts &quot;ERROR: NO POSTS ON PAGE; ABORTING...&quot;
+    exit 1 # Our whole purpose is to parse this page; bail
+  end
+
   puts &quot;PROCESSING #{posts.length} POSTS ...&quot;
   posts.each { |post|
 </diff>
      <filename>RANT-DETECTOR.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>10c8b84e3903cf546146be7326714ad17826d244</id>
    </parent>
  </parents>
  <author>
    <name>Jamie Wilkinson</name>
    <email>jamie@tramchase.com</email>
  </author>
  <url>http://github.com/jamiew/KANYE-RANT-DETECTOR/commit/886b399ed5d355761f1bef0be6369ebc7ea232b7</url>
  <id>886b399ed5d355761f1bef0be6369ebc7ea232b7</id>
  <committed-date>2009-09-15T14:35:17-07:00</committed-date>
  <authored-date>2009-09-15T14:35:17-07:00</authored-date>
  <message>better error handling... Kanye's website is down today. Fetch will retry 3 times before giving up.</message>
  <tree>e142a219c36c5adbc5a5093dcb83cb706e66968f</tree>
  <committer>
    <name>Jamie Wilkinson</name>
    <email>jamie@tramchase.com</email>
  </committer>
</commit>
