lib/rrimm/publisher/reddit.rb in rrimm-0.14.6 vs lib/rrimm/publisher/reddit.rb in rrimm-0.14.7

- old
+ new

@@ -1,7 +1,12 @@ +require_relative '../logger' + module RRImm class Reddit < Publisher + + include Logger + def initialize require 'redd' # avoid requirment if necessary HACK # patch redd to allow creating subreddits Redd::Models::Subreddit.class_eval do @@ -20,15 +25,16 @@ end def publish(input, feed, item) subreddit = subreddits[feed.title] || check_subreddit!(feed) subreddits[feed.title] = subreddit - puts "Will submit #{item.title} (from #{feed.title}) to #{subreddit.display_name}" - subreddit.submit(item.title, url: item.url) + info "Will submit #{item.title} (from #{feed.title}) to #{subreddit.display_name}" + submission = subreddit.submit(item.title, url: item.url) + submission.undo_vote # let user decide whether content worth it rescue Redd::APIError => e if e.message =~ /that link has already been submitted/ - puts "#{item.title} had already been posted. Is the local cache working?" + info "#{item.title} had already been posted. Is the local cache working?" else raise end end @@ -41,11 +47,11 @@ retry end end def create_subreddit!(feed) - puts "Will create subreddit named #{feed2sr(feed)}" + info "Will create subreddit named #{feed2sr(feed)}" sr(feed2sr(feed)).create( allow_discovery: true, allow_images: true, allow_top: true, allow_videos: true, @@ -79,10 +85,10 @@ wikimode: 'disabled' ) rescue Redd::APIError => e if e.message =~ /doing that too much.*again in (.*) minutes/ delay = $1.to_i + 1 - puts "API limit for subreddit creation reached, wait #{delay} minutes" + info "API limit for subreddit creation reached, wait #{delay} minutes" sleep(delay * 60) retry else raise end