<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>views/preview.haml</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -83,7 +83,7 @@ namespace :gems do
   task :install do
     required_gems = %w{ sinatra dm-core dm-aggregates dm-validations dm-timestamps dm-is-paginated 
                         dm-is-searchable shanna-dm-sphinx-adapter merb-pagination haml
-                        pauldix-feedzirra thoughtbot-factory_girl rspec rspec_hpricot_matchers }
+                        pauldix-feedzirra thoughtbot-factory_girl rspec rspec_hpricot_matchers jnunemaker-columbus}
     required_gems.each { |required_gem| system &quot;sudo gem install #{required_gem}&quot; }
   end
 end</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -33,6 +33,16 @@ get '/feed' do
   builder :feed
 end
 
+post '/suggest' do
+  @preview_contents = Feed.preview_url(params[:url])
+  if @preview_contents.size == 1
+    Feed.create(:feed_url =&gt; @preview_contents[0][1])
+    redirect '/'
+  else
+    haml :preview
+  end
+end
+
 post '/search' do
   @entries = Entry.search({ :content =&gt; params[:q] })
   haml :search</diff>
      <filename>application.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,6 +10,7 @@ require 'merb-pagination'
 require 'haml'
 require 'ostruct'
 require 'feedzirra'
+require 'columbus'
 
 require 'sinatra' unless defined?(Sinatra)
 </diff>
      <filename>environment.rb</filename>
    </modified>
    <modified>
      <diff>@@ -38,6 +38,18 @@ class Feed
     @feed == 0 ? nil : @feed
   end
 
+  def self.preview_url(feed_or_blog_url, recurse = true)
+    @feed = Feedzirra::Feed.fetch_and_parse(feed_or_blog_url.to_s)
+    if @feed
+      [[@feed.title, feed_or_blog_url, @feed.entries.map { |e| [e.title, e.url] }]]
+    elsif recurse
+      urls = Columbus.new(feed_or_blog_url).all
+      urls.map { |u| preview_url(u.url, false) }.reject { |u| u.empty? }.inject([]) { |a, c| a + c }
+    else
+      []
+    end
+  end
+
   private
 
   # update feed attributes from remote feed</diff>
      <filename>lib/feed.rb</filename>
    </modified>
    <modified>
      <diff>@@ -22,6 +22,10 @@
               %a{:href =&gt; feed.url}= feed.title
         %h2 Subscribe
         %a{:href =&gt; '/feed'} Atom Feed
+        %h2 Suggest a feed
+        %form.suggest-form{:action =&gt; '/suggest', :method =&gt; 'post'}
+          %input{:type =&gt; 'text', :value =&gt; '', :name =&gt; 'url'}/
+          %input{:type =&gt; 'submit', :value =&gt; &quot;suggest &amp;raquo;&quot;}/
       #content= yield
       .clear
       #footer</diff>
      <filename>views/layout.haml</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>c1b5c4df0e6780b195b2770f8ee2ec467165c55f</id>
    </parent>
  </parents>
  <author>
    <name>Darcy Laycock</name>
    <email>sutto@sutto.net</email>
  </author>
  <url>http://github.com/Sutto/mogo/commit/31f04b801f002b46daa476e800928db4a238f2b3</url>
  <id>31f04b801f002b46daa476e800928db4a238f2b3</id>
  <committed-date>2009-03-30T08:52:11-07:00</committed-date>
  <authored-date>2009-03-30T08:52:11-07:00</authored-date>
  <message>Added in suggest feature via columbus, requires styling</message>
  <tree>bf1ed588c7ea11d73cecfaebbe0908b3564bc335</tree>
  <committer>
    <name>Darcy Laycock</name>
    <email>sutto@sutto.net</email>
  </committer>
</commit>
