diff --git a/app/logical/downloads/rewrite_strategies/pixiv.rb b/app/logical/downloads/rewrite_strategies/pixiv.rb index 71069e42e..89d2f9ceb 100644 --- a/app/logical/downloads/rewrite_strategies/pixiv.rb +++ b/app/logical/downloads/rewrite_strategies/pixiv.rb @@ -8,9 +8,12 @@ module Downloads end def rewrite(url, headers, data = {}) - if url =~ /https?:\/\/(?:\w+\.)?pixiv\.net/ + if url =~ /\Ahttps?:\/\/(?:\w+\.)?pixiv\.net/ url, headers = rewrite_headers(url, headers) url, headers = rewrite_cdn(url, headers) + end + + if url =~ /\Ahttps?:\/\/(?:\w+\.)?pixiv\.net/ && source.illust_id_from_url url, headers = rewrite_html_pages(url, headers) url, headers = rewrite_thumbnails(url, headers) url, headers = rewrite_old_small_manga_pages(url, headers) diff --git a/app/logical/sources/site.rb b/app/logical/sources/site.rb index ed56f3003..8c76c1b95 100644 --- a/app/logical/sources/site.rb +++ b/app/logical/sources/site.rb @@ -7,7 +7,7 @@ module Sources :profile_url, :image_url, :tags, :artist_record, :unique_id, :page_count, :file_url, :ugoira_frame_data, :ugoira_content_type, :image_urls, :has_artist_commentary?, :artist_commentary_title, - :artist_commentary_desc, :rewrite_thumbnails, :to => :strategy + :artist_commentary_desc, :rewrite_thumbnails, :illust_id_from_url, :to => :strategy def self.strategies [Strategies::PixivWhitecube, Strategies::Pixiv, Strategies::NicoSeiga, Strategies::DeviantArt, Strategies::Nijie, Strategies::Twitter, Strategies::Tumblr] diff --git a/app/logical/sources/strategies/base.rb b/app/logical/sources/strategies/base.rb index 54a95a5cd..9140026dd 100644 --- a/app/logical/sources/strategies/base.rb +++ b/app/logical/sources/strategies/base.rb @@ -74,6 +74,10 @@ module Sources [image_url] end + def tags + @tags || [] + end + # Should be set to a url for sites that prevent hotlinking, or left nil for sites that don't. def fake_referer nil diff --git a/app/logical/sources/strategies/pixiv.rb b/app/logical/sources/strategies/pixiv.rb index 502de8764..eb98a80c6 100644 --- a/app/logical/sources/strategies/pixiv.rb +++ b/app/logical/sources/strategies/pixiv.rb @@ -65,7 +65,8 @@ module Sources end def get - @illust_id = illust_id_from_url! + return unless illust_id_from_url + @illust_id = illust_id_from_url @metadata = get_metadata_from_papi(@illust_id) page = agent.get(URI.parse(normalized_url))