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