lib/twog/twitter_handler.rb in twog-0.3.0 vs lib/twog/twitter_handler.rb in twog-0.3.1

- old
+ new

@@ -1,51 +1,39 @@ -class RSS::Atom::Feed::Entry - def <=>(other_entry) - this_time = Time.parse(updated.content.to_s) - other_time = Time.parse(other_entry.updated.content.to_s) - if this_time < other_time - -1 - elsif this_time > other_time - 1 - else - 0 +module Twog + module TwitterHandler + def tweet(posts, conf, bitly) + return unless posts && posts.length > 0 + raise Exception.new('OAuth Consumer Key missing') unless conf['consumer_key'] + raise Exception.new('OAuth Consumer Secret missing') unless conf['consumer_secret'] + raise Exception.new('OAuth Access Token missing') unless conf['access_token'] + raise Exception.new('OAuth Access Secret missing') unless conf['access_secret'] + posts.sort.each do |post| + link = bitly ? bitly.shorten(post.link).short_url : item.link + use_twitter_oauth(post, link, conf) + update_config_file_with_latest_tweet_date(post.date.to_s, conf) + end end - end -end -module TwitterHandler - def tweet(posts, conf, bitly) - return unless posts && posts.length > 0 - raise Exception.new('OAuth Consumer Key missing') unless conf['consumer_key'] - raise Exception.new('OAuth Consumer Secret missing') unless conf['consumer_secret'] - raise Exception.new('OAuth Access Token missing') unless conf['access_token'] - raise Exception.new('OAuth Access Secret missing') unless conf['access_secret'] - posts.sort.each do |item| - link = bitly ? bitly.shorten(item.link.href).short_url : item.link.href - use_twitter_oauth(item, link, conf) - update_config_file_with_latest_tweet_date(item.updated.content.to_s, conf) + def use_twitter_oauth(post, link, conf) + client = TwitterOAuth::Client.new( + :consumer_key => conf['consumer_key'], + :consumer_secret => conf['consumer_secret'], + :token => conf['access_token'], + :secret => conf['access_secret'] + ) + raise Exception.new('TwitterOAuth unauthorized') unless client.authorized? + text = ensure_text_is_of_length(140, post.title, link) + client.update(text) end - end - def use_twitter_oauth(item, link, conf) - client = TwitterOAuth::Client.new( - :consumer_key => conf['consumer_key'], - :consumer_secret => conf['consumer_secret'], - :token => conf['access_token'], - :secret => conf['access_secret'] - ) - raise Exception.new('TwitterOAuth unauthorized') unless client.authorized? - text = ensure_text_is_of_length(140, item.title.content, link) - client.update(text) - end + def ensure_text_is_of_length(length, title, link) + blogged = "blogged:" + title = title[0,(length-((" "*2).length+blogged.length+link.length))] + [blogged, title, link].join(' ') + end - def ensure_text_is_of_length(length, title, link) - blogged = "blogged:" - title = title[0,(length-((" "*2).length+blogged.length+link.length))] - [blogged, title, link].join(' ') - end - - def update_config_file_with_latest_tweet_date(last_blog_post_tweeted, conf) - conf['last_blog_post_tweeted'] = last_blog_post_tweeted - File.open("#{ENV['HOME']}/.twog/conf.yaml","w") { |out| out.write(conf.to_yaml) } + def update_config_file_with_latest_tweet_date(last_blog_post_tweeted, conf) + conf['last_blog_post_tweeted'] = last_blog_post_tweeted + File.open("#{ENV['HOME']}/.twog/conf.yaml","w") { |out| out.write(conf.to_yaml) } + end end end