Foundation: add support for unconventional account names
This commit is contained in:
@@ -6,15 +6,22 @@
|
|||||||
# * https://foundation.app/@mochiiimo/~/97376
|
# * https://foundation.app/@mochiiimo/~/97376
|
||||||
# * https://foundation.app/@huwari/~/88982 (video)
|
# * https://foundation.app/@huwari/~/88982 (video)
|
||||||
#
|
#
|
||||||
|
# Even if the username is wrong, the ID is still fetched correctly. Example:
|
||||||
|
# * https://foundation.app/@asdasdasd/~/97376
|
||||||
|
#
|
||||||
# Profile URLs
|
# Profile URLs
|
||||||
#
|
#
|
||||||
|
# Profile urls seem to accept any character in them, even no character at all:
|
||||||
# * https://foundation.app/@mochiiimo
|
# * https://foundation.app/@mochiiimo
|
||||||
|
# * https://foundation.app/@ <- This seems to be a novelty account.
|
||||||
|
# Probably not worth supporting it given its
|
||||||
|
# uniqueness and chance for headaches
|
||||||
|
|
||||||
module Sources
|
module Sources
|
||||||
module Strategies
|
module Strategies
|
||||||
class Foundation < Base
|
class Foundation < Base
|
||||||
BASE_URL = %r{\Ahttps?://(www\.)?foundation\.app}i
|
BASE_URL = %r{\Ahttps?://(www\.)?foundation\.app}i
|
||||||
PROFILE_URL = %r{#{BASE_URL}/@(?<artist_name>\w+)}i
|
PROFILE_URL = %r{#{BASE_URL}/@(?<artist_name>[^/]+)/?}i
|
||||||
PAGE_URL = %r{#{PROFILE_URL}/~/(?<illust_id>\d+)}i
|
PAGE_URL = %r{#{PROFILE_URL}/~/(?<illust_id>\d+)}i
|
||||||
|
|
||||||
IMAGE_HOST = /f8n-ipfs-production\.imgix\.net/
|
IMAGE_HOST = /f8n-ipfs-production\.imgix\.net/
|
||||||
|
|||||||
@@ -49,5 +49,17 @@ module Sources
|
|||||||
assert_nothing_raised { @image3.to_h }
|
assert_nothing_raised { @image3.to_h }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "non-alphanumeric usernames" do
|
||||||
|
should "still work" do
|
||||||
|
case1 = Sources::Strategies.find("https://foundation.app/@brandon.dalmer/~/6792")
|
||||||
|
case2 = Sources::Strategies.find("https://foundation.app/@~/~/6792")
|
||||||
|
image = "https://f8n-ipfs-production.imgix.net/QmVnpe39qodMjTe8v3fijPfB1tjwhT8hgobtgLPtsangqc/nft.png"
|
||||||
|
assert_nothing_raised { case1.to_h }
|
||||||
|
assert_nothing_raised { case2.to_h }
|
||||||
|
assert_equal(image, case1.image_url)
|
||||||
|
assert_equal(image, case2.image_url)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user