Sha256: 68fba23632a779d7028bf80577f5c2381d6f3fbf70d59b2ea0673a9b78aeff9e

Contents?: true

Size: 1.69 KB

Versions: 4

Compression:

Stored size: 1.69 KB

Contents

require File.dirname(__FILE__) + '/base'
require 'builder'

module GData

  class Blogger < GData::Base

    def initialize(blog_id, entry_id=nil)
      @blog_id = blog_id
      @entry_id = entry_id
      super 'blogger', 'gdata-ruby', 'www.blogger.com'
    end

    def feed
      request "/feeds/#{@blog_id}/posts/default"
    end

    def list_blogs(profile_id)
      request "/feeds/#{profile_id}/blogs"
    end

    def entry
      @entry ||= Hpricot(request("/feeds/#{@blog_id}/posts/default/#{@entry_id}"))
    end

    def enclosure
      entry.search('//link[@rel="enclosure"]')
    end

    def enclosure?
      enclosure.any?
    end
  
    def add_enclosure(enclosure_url, enclosure_length)
      raise "An enclosure has already been added to this entry" if enclosure?
      # todo(stevejenson): replace with builder
      entry.search('//entry').append(%Q{<link rel="enclosure" type="audio/mpeg" title="MP3" href="#{enclosure_url}" length="#{enclosure_length}" />})
      save_entry
    end

    def remove_enclosure
      if enclosure?
        enclosure.remove
        save_entry
      end
    end

    def save_entry
      path = "/feeds/#{@blog_id}/posts/default/#{@entry_id}"
  
      put(path, entry.to_s)
    end

    # Creates a new entry with the given title and body
    def entry(title, body)
      x = Builder::XmlMarkup.new :indent => 2
      @entry = x.entry 'xmlns' => 'http://www.w3.org/2005/Atom' do
        x.title title, 'type' => 'text'
        x.content 'type' => 'xhtml' do
          x.div 'xmlns' => 'http://www.w3.org/1999/xhtml' do
            x << body
          end
        end
      end
      
      path = "/feeds/#{@blog_id}/posts/default"
      post(path, @entry)
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
csexton-twitter_archive-0.0.1 lib/twitter_archive/backends/blogger/blogger.rb
csexton-twitter_archive-0.0.3 lib/twitter_archive/backends/blogger/blogger.rb
csexton-twitter_archive-0.0.4 lib/twitter_archive/backends/blogger/blogger.rb
csexton-twitter_archive-0.0.5 lib/twitter_archive/backends/blogger/blogger.rb