that's the latest commit made to deviantart files before switching from
the developer API to the Javascript backend from the new "Eclipse"
frontend.
This is necessary because it's basically impossible to download posts
now with the JS backend without being logged in, i.e. having the cookies
from a logged in user, which can't be used for very long even if
exporting them from a browser. You would have to save the cookies
deviantart sends you back via the "Set-Cookie" header in a database
somewhere in addition to the other added complexity.
also
* (temporarily) replace HttpartyCache with HTTParty as it's long been
removed
* fix one case of "last argument as keyword parameter"
* change repository url (5d1a1cc87e)
* remove self-explanatory comment
59 lines
2.6 KiB
Ruby
59 lines
2.6 KiB
Ruby
require 'test_helper'
|
|
|
|
module Sources
|
|
class StashTest < ActiveSupport::TestCase
|
|
def setup
|
|
super
|
|
skip "DeviantArt API keys not set" unless Danbooru.config.deviantart_client_id.present?
|
|
end
|
|
|
|
context "A https://sta.sh/:id page url" do
|
|
should "work" do
|
|
@site = Sources::Strategies.find("https://sta.sh/0wxs31o7nn2")
|
|
|
|
assert_equal("noizave", @site.artist_name)
|
|
assert_equal("https://www.deviantart.com/noizave", @site.profile_url)
|
|
|
|
assert_equal("A pepe", @site.artist_commentary_title)
|
|
assert_equal("This is a test.", @site.artist_commentary_desc)
|
|
|
|
assert_equal("https://sta.sh/0wxs31o7nn2", @site.page_url)
|
|
assert_equal("https://sta.sh/0wxs31o7nn2", @site.canonical_url)
|
|
assert_equal("http://origin-orig.deviantart.net/0fd2/f/2018/252/9/c/a_pepe_by_noizave-dcmga0s.png", @site.image_url)
|
|
assert_equal(["http://origin-orig.deviantart.net/0fd2/f/2018/252/9/c/a_pepe_by_noizave-dcmga0s.png"], @site.image_urls)
|
|
end
|
|
end
|
|
|
|
context "A https://orig00.deviantart.net/* image url" do
|
|
context "with a https://sta.sh/:id referer" do
|
|
should "work" do
|
|
@site = Sources::Strategies.find("https://orig00.deviantart.net/0fd2/f/2018/252/9/c/a_pepe_by_noizave-dcmga0s.png", "https://sta.sh/0wxs31o7nn2")
|
|
|
|
assert_equal("noizave", @site.artist_name)
|
|
assert_equal("https://www.deviantart.com/noizave", @site.profile_url)
|
|
|
|
assert_equal("A pepe", @site.artist_commentary_title)
|
|
assert_equal("This is a test.", @site.artist_commentary_desc)
|
|
|
|
assert_equal("https://sta.sh/0wxs31o7nn2", @site.page_url)
|
|
assert_equal("https://sta.sh/0wxs31o7nn2", @site.canonical_url)
|
|
assert_equal("http://origin-orig.deviantart.net/0fd2/f/2018/252/9/c/a_pepe_by_noizave-dcmga0s.png", @site.image_url)
|
|
assert_equal(["http://origin-orig.deviantart.net/0fd2/f/2018/252/9/c/a_pepe_by_noizave-dcmga0s.png"], @site.image_urls)
|
|
end
|
|
end
|
|
|
|
context "without a referer" do
|
|
should "use the base deviantart strategy" do
|
|
@site = Sources::Strategies.find("https://orig00.deviantart.net/0fd2/f/2018/252/9/c/a_pepe_by_noizave-dcmga0s.png")
|
|
|
|
# if all we have is the image url, then we can't tell that this is really a sta.sh image.
|
|
assert_equal("Deviant Art", @site.site_name)
|
|
|
|
# this is the wrong page, but there's no way to know the correct sta.sh page without the referer.
|
|
assert_equal("https://www.deviantart.com/deviation/763305148", @site.page_url)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|