diff --git a/app/logical/sources/strategies/tumblr.rb b/app/logical/sources/strategies/tumblr.rb
index b6cb0a8aa..0532c8eae 100644
--- a/app/logical/sources/strategies/tumblr.rb
+++ b/app/logical/sources/strategies/tumblr.rb
@@ -8,6 +8,10 @@ module Sources::Strategies
IMAGE = %r!\Ahttps?://#{DOMAIN}/(?
#{MD5}/)?#{FILENAME}_#{SIZES}\.#{EXT}\z!i
POST = %r!\Ahttps?://(?[^.]+)\.tumblr\.com/(?:post|image)/(?\d+)!i
+ def self.enabled?
+ Danbooru.config.tumblr_consumer_key.present?
+ end
+
def self.match?(*urls)
urls.compact.any? do |url|
blog_name, post_id = parse_info_from_url(url)
@@ -174,7 +178,7 @@ module Sources::Strategies
memoize :inline_images
def client
- raise NotImplementedError.new("Tumblr support is not available (API key not configured).") if Danbooru.config.tumblr_consumer_key.nil?
+ return {} unless self.class.enabled?
TumblrApiClient.new(Danbooru.config.tumblr_consumer_key)
end
diff --git a/test/unit/sources/tumblr_test.rb b/test/unit/sources/tumblr_test.rb
index 7d5104f96..04a5bb6f6 100644
--- a/test/unit/sources/tumblr_test.rb
+++ b/test/unit/sources/tumblr_test.rb
@@ -3,8 +3,7 @@ require 'test_helper'
module Sources
class TumblrTest < ActiveSupport::TestCase
def setup
- super
- skip "Tumblr key is not configured" unless Danbooru.config.tumblr_consumer_key
+ skip "Tumblr key is not configured" unless Sources::Strategies::Tumblr.enabled?
end
context "The source for a 'http://*.tumblr.com/post/*' photo post with a single image" do