From 4118a3f3c94d082ddff277dc200474be7a7a74ff Mon Sep 17 00:00:00 2001 From: nonamethanks Date: Sat, 6 Mar 2021 08:44:24 +0100 Subject: [PATCH] Baraag: fix image regex Fixes a bug for Baraag.net that caused the batch bookmarklet to always pick the first picture in multi-image posts. --- app/logical/sources/strategies/mastodon.rb | 3 ++- test/unit/sources/mastodon_test.rb | 16 +++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/logical/sources/strategies/mastodon.rb b/app/logical/sources/strategies/mastodon.rb index 3fef4810e..6d1f1d348 100644 --- a/app/logical/sources/strategies/mastodon.rb +++ b/app/logical/sources/strategies/mastodon.rb @@ -17,7 +17,7 @@ module Sources::Strategies class Mastodon < Base HOST = %r{\Ahttps?://(?:www\.)?(?pawoo\.net|baraag\.net)}i - IMAGE = %r{\Ahttps?://(?:img\.pawoo\.net|baraag\.net)/media_attachments/files/(\d+/\d+/\d+)} + IMAGE = %r{\Ahttps?://(?:img\.pawoo\.net|baraag\.net(?:/system(?:/cache)?)?)/media_attachments/files/((?:\d+/)+\d+)} NAMED_PROFILE = %r{#{HOST}/@(?\w+)}i ID_PROFILE = %r{#{HOST}/web/accounts/(?\d+)} @@ -35,6 +35,7 @@ module Sources::Strategies def file_host case site_name when "pawoo.net" then "img.pawoo.net" + when "baraag.net" then "baraag.net/system" else site_name end end diff --git a/test/unit/sources/mastodon_test.rb b/test/unit/sources/mastodon_test.rb index 59d31d0f7..4472ccdc9 100644 --- a/test/unit/sources/mastodon_test.rb +++ b/test/unit/sources/mastodon_test.rb @@ -101,14 +101,20 @@ module Sources setup do skip "Baraag keys not set" unless Danbooru.config.baraag_client_id @url = "https://baraag.net/@bardbot/105732813175612920" - @site = Sources::Strategies.find(@url) + @site1 = Sources::Strategies.find(@url) + + @img = "https://baraag.net/system/media_attachments/files/105/803/948/862/719/091/original/54e1cb7ca33ec449.png" + @ref = "https://baraag.net/@Nakamura/105803949565505009" + @site2 = Sources::Strategies.find(@img, @ref) end should "work" do - assert_equal("https://baraag.net/@bardbot", @site.profile_url) - assert_equal(["https://baraag.net/system/media_attachments/files/105/732/803/241/495/700/original/556e1eb7f5ca610f.png"], @site.image_urls) - assert_equal("bardbot", @site.artist_name) - assert_equal("🍌", @site.dtext_artist_commentary_desc) + assert_equal("https://baraag.net/@bardbot", @site1.profile_url) + assert_equal(["https://baraag.net/system/media_attachments/files/105/732/803/241/495/700/original/556e1eb7f5ca610f.png"], @site1.image_urls) + assert_equal("bardbot", @site1.artist_name) + assert_equal("🍌", @site1.dtext_artist_commentary_desc) + + assert_equal([@img], @site2.image_urls) end end