Refactor sources

This commit is contained in:
Albert Yi
2018-08-06 17:39:25 -07:00
parent 54363ffecf
commit 762dc3da24
71 changed files with 2340 additions and 2430 deletions

View File

@@ -4,8 +4,7 @@ module Sources
class ArtStationTest < ActiveSupport::TestCase
context "The source site for an art station artwork page" do
setup do
@site = Sources::Site.new("https://www.artstation.com/artwork/04XA4")
@site.get
@site = Sources::Strategies.find("https://www.artstation.com/artwork/04XA4")
end
should "get the image url" do
@@ -32,8 +31,7 @@ module Sources
context "The source site for an art station projects page" do
setup do
@site = Sources::Site.new("https://dantewontdie.artstation.com/projects/YZK5q")
@site.get
@site = Sources::Strategies.find("https://dantewontdie.artstation.com/projects/YZK5q")
end
should "get the image url" do
@@ -61,8 +59,7 @@ module Sources
context "The source site for a www.artstation.com/artwork/$slug page" do
setup do
@site = Sources::Site.new("https://www.artstation.com/artwork/cody-from-sf")
@site.get
@site = Sources::Strategies.find("https://www.artstation.com/artwork/cody-from-sf")
end
should "get the image url" do
@@ -75,8 +72,7 @@ module Sources
setup do
@url = "https://cdna.artstation.com/p/assets/images/images/006/029/978/large/amama-l-z.jpg"
@ref = "https://www.artstation.com/artwork/4BWW2"
@site = Sources::Site.new(@url, referer_url: @ref)
@site.get
@site = Sources::Strategies.find(@url, @ref)
end
should "fetch the source data" do
@@ -86,8 +82,7 @@ module Sources
context "The source site for an ArtStation gallery" do
setup do
@site = Sources::Site.new("https://www.artstation.com/artwork/BDxrA")
@site.get
@site = Sources::Strategies.find("https://www.artstation.com/artwork/BDxrA")
end
should "get only image urls, not video urls" do

View File

@@ -9,8 +9,7 @@ module Sources
context "A path-based artist url" do
setup do
@site = Sources::Site.new("https://www.deviantart.com/aeror404/art/Holiday-Elincia-424551484")
@site.get
@site = Sources::Strategies.find("https://www.deviantart.com/aeror404/art/Holiday-Elincia-424551484")
end
should "work" do
@@ -20,8 +19,7 @@ module Sources
context "The source for a private DeviantArt image URL" do
setup do
@site = Sources::Site.new("https://pre00.deviantart.net/423b/th/pre/i/2017/281/e/0/mindflayer_girl01_by_nickbeja-dbpxdt8.png")
@site.get
@site = Sources::Strategies.find("https://pre00.deviantart.net/423b/th/pre/i/2017/281/e/0/mindflayer_girl01_by_nickbeja-dbpxdt8.png")
end
should "work" do
@@ -31,25 +29,24 @@ module Sources
context "The source for a download-disabled DeviantArt artwork page" do
should "get the image url" do
@site = Sources::Site.new("https://noizave.deviantart.com/art/test-no-download-697415967")
@site = Sources::Strategies.find("https://noizave.deviantart.com/art/test-no-download-697415967")
assert_equal(["https://img00.deviantart.net/56ee/i/2017/219/2/3/test__no_download_by_noizave-dbj81lr.jpg"], @site.image_urls)
end
end
context "The source for a DeviantArt image url" do
should "fetch the source data" do
@site = Sources::Site.new("https://pre00.deviantart.net/b5e6/th/pre/f/2016/265/3/5/legend_of_galactic_heroes_by_hideyoshi-daihpha.jpg")
@site = Sources::Strategies.find("https://pre00.deviantart.net/b5e6/th/pre/f/2016/265/3/5/legend_of_galactic_heroes_by_hideyoshi-daihpha.jpg")
assert_equal("hideyoshi", @site.artist_name)
assert_equal("https://hideyoshi.deviantart.com", @site.profile_url)
assert_equal("https://orig00.deviantart.net/9e1f/f/2016/265/3/5/legend_of_galactic_heroes_by_hideyoshi-daihpha.jpg", @site.image_url)
assert_equal("https://www.deviantart.com/hideyoshi", @site.profile_url)
assert_equal("https://pre00.deviantart.net/b5e6/th/pre/f/2016/265/3/5/legend_of_galactic_heroes_by_hideyoshi-daihpha.jpg", @site.image_url)
end
end
context "The source for an DeviantArt artwork page" do
setup do
@site = Sources::Site.new("http://noizave.deviantart.com/art/test-post-please-ignore-685436408")
@site.get
@site = Sources::Strategies.find("http://noizave.deviantart.com/art/test-post-please-ignore-685436408")
end
should "get the image url" do
@@ -107,8 +104,7 @@ module Sources
context "The source for a login-only DeviantArt artwork page" do
setup do
@site = Sources::Site.new("http://noizave.deviantart.com/art/hidden-work-685458369")
@site.get
@site = Sources::Strategies.find("http://noizave.deviantart.com/art/hidden-work-685458369")
end
should "get the image url" do
@@ -118,8 +114,7 @@ module Sources
context "A source with malformed links in the artist commentary" do
should "fix the links" do
@site = Sources::Site.new("https://teemutaiga.deviantart.com/art/Kisu-620666655")
@site.get
@site = Sources::Strategies.find("https://teemutaiga.deviantart.com/art/Kisu-620666655")
assert_match(%r!"Print available at Inprnt":\[http://www.inprnt.com/gallery/teemutaiga/kisu\]!, @site.dtext_artist_commentary_desc)
end

View File

@@ -4,11 +4,8 @@ module Sources
class NicoSeigaTest < ActiveSupport::TestCase
context "The source site for nico seiga" do
setup do
@site_1 = Sources::Site.new("http://lohas.nicoseiga.jp/o/910aecf08e542285862954017f8a33a8c32a8aec/1433298801/4937663")
@site_1.get
@site_2 = Sources::Site.new("http://seiga.nicovideo.jp/seiga/im4937663")
@site_2.get
@site_1 = Sources::Strategies.find("http://lohas.nicoseiga.jp/o/910aecf08e542285862954017f8a33a8c32a8aec/1433298801/4937663")
@site_2 = Sources::Strategies.find("http://seiga.nicovideo.jp/seiga/im4937663")
end
should "get the profile" do
@@ -34,11 +31,11 @@ module Sources
should "get the tags" do
assert(@site_1.tags.size > 0)
first_tag = @site_1.tags.first
assert_equal(["アニメ", "http://seiga.nicovideo.jp/tag/%E3%82%A2%E3%83%8B%E3%83%A1"], first_tag)
assert_equal(["アニメ", "https://seiga.nicovideo.jp/tag/%E3%82%A2%E3%83%8B%E3%83%A1"], first_tag)
assert(@site_2.tags.size > 0)
first_tag = @site_2.tags.first
assert_equal(["アニメ", "http://seiga.nicovideo.jp/tag/%E3%82%A2%E3%83%8B%E3%83%A1"], first_tag)
assert_equal(["アニメ", "https://seiga.nicovideo.jp/tag/%E3%82%A2%E3%83%8B%E3%83%A1"], first_tag)
end
should "convert a page into a json representation" do
@@ -51,8 +48,7 @@ module Sources
end
should "work for a https://lohas.nicoseiga.jp/thumb/${id}i url" do
site = Sources::Site.new("https://lohas.nicoseiga.jp/thumb/6844226i")
site.get
site = Sources::Strategies.find("https://lohas.nicoseiga.jp/thumb/6844226i")
full_image_url = %r!https?://lohas.nicoseiga.jp/priv/[a-f0-9]{40}/[0-9]+/6844226!
assert_match(full_image_url, site.image_url)

View File

@@ -7,9 +7,7 @@ module Sources
CurrentUser.user = FactoryBot.create(:user)
CurrentUser.ip_addr = "127.0.0.1"
@site = Sources::Site.new("http://nijie.info/view.php?id=213043")
@site.get
sleep(5)
@site = Sources::Strategies.find("https://nijie.info/view.php?id=213043")
end
should "get the image url" do
@@ -17,7 +15,7 @@ module Sources
end
should "get the profile" do
assert_equal("http://nijie.info/members.php?id=728995", @site.profile_url)
assert_equal("https://nijie.info/members.php?id=728995", @site.profile_url)
end
should "get the artist name" do
@@ -25,15 +23,14 @@ module Sources
end
should "get the tags" do
assert_equal([["眼鏡", "http://nijie.info/search.php?word=%E7%9C%BC%E9%8F%A1"], ["リトルウィッチアカデミア", "http://nijie.info/search.php?word=%E3%83%AA%E3%83%88%E3%83%AB%E3%82%A6%E3%82%A3%E3%83%83%E3%83%81%E3%82%A2%E3%82%AB%E3%83%87%E3%83%9F%E3%82%A2"], ["アーシュラ先生", "http://nijie.info/search.php?word=%E3%82%A2%E3%83%BC%E3%82%B7%E3%83%A5%E3%83%A9%E5%85%88%E7%94%9F"]], @site.tags)
assert_equal([["眼鏡", "https://nijie.info/search.php?word=%E7%9C%BC%E9%8F%A1"], ["リトルウィッチアカデミア", "https://nijie.info/search.php?word=%E3%83%AA%E3%83%88%E3%83%AB%E3%82%A6%E3%82%A3%E3%83%83%E3%83%81%E3%82%A2%E3%82%AB%E3%83%87%E3%83%9F%E3%82%A2"], ["アーシュラ先生", "https://nijie.info/search.php?word=%E3%82%A2%E3%83%BC%E3%82%B7%E3%83%A5%E3%83%A9%E5%85%88%E7%94%9F"]], @site.tags)
end
should "normalize characters in tags" do
FactoryBot.create(:tag, :name => "kaga")
FactoryBot.create(:wiki_page, :title => "kaga", :other_names => "加賀(艦これ)")
@site = Sources::Site.new("http://nijie.info/view.php?id=208316")
@site.get
@site = Sources::Strategies.find("https://nijie.info/view.php?id=208316")
assert_includes(@site.tags.map(&:first), "加賀(艦これ)")
assert_includes(@site.translated_tags.map(&:first), "kaga")
@@ -50,16 +47,15 @@ module Sources
context "The source site for a nijie referer url" do
setup do
@site = Sources::Site.new("http://pic03.nijie.info/nijie_picture/728995_20170505014820_0.jpg", referer_url: "https://nijie.info/view_popup.php?id=213043")
@site.get
@site = Sources::Strategies.find("http://pic03.nijie.info/nijie_picture/728995_20170505014820_0.jpg", "https://nijie.info/view_popup.php?id=213043")
end
should "get the image url" do
assert_equal("https://pic03.nijie.info/nijie_picture/728995_20170505014820_0.jpg", @site.image_url)
assert_equal("http://pic03.nijie.info/nijie_picture/728995_20170505014820_0.jpg", @site.image_url)
end
should "get the profile" do
assert_equal("http://nijie.info/members.php?id=728995", @site.profile_url)
assert_equal("https://nijie.info/members.php?id=728995", @site.profile_url)
end
should "get the artist name" do
@@ -69,8 +65,7 @@ module Sources
context "The source site for a nijie popup" do
setup do
@site = Sources::Site.new("https://nijie.info/view_popup.php?id=213043")
@site.get
@site = Sources::Strategies.find("https://nijie.info/view_popup.php?id=213043")
end
should "get the image url" do
@@ -78,7 +73,7 @@ module Sources
end
should "get the profile" do
assert_equal("http://nijie.info/members.php?id=728995", @site.profile_url)
assert_equal("https://nijie.info/members.php?id=728995", @site.profile_url)
end
should "get the artist name" do
@@ -88,8 +83,7 @@ module Sources
context "The source site for a nijie gallery" do
setup do
@site = Sources::Site.new("http://nijie.info/view.php?id=218856")
@site.get
@site = Sources::Strategies.find("https://nijie.info/view.php?id=218856")
end
should "get the image urls" do

View File

@@ -5,8 +5,7 @@ module Sources
context "The source site for a https://pawoo.net/web/status/$id url" do
setup do
skip "Pawoo keys not set" unless Danbooru.config.pawoo_client_id
@site = Sources::Site.new("https://pawoo.net/web/statuses/1202176")
@site.get
@site = Sources::Strategies.find("https://pawoo.net/web/statuses/1202176")
end
should "get the profile" do
@@ -35,8 +34,7 @@ module Sources
context "The source site for a https://pawoo.net/$user/$id url" do
setup do
skip "Pawoo keys not set" unless Danbooru.config.pawoo_client_id
@site = Sources::Site.new("https://pawoo.net/@evazion/19451018")
@site.get
@site = Sources::Strategies.find("https://pawoo.net/@evazion/19451018")
end
should "get the profile" do
@@ -89,8 +87,7 @@ module Sources
skip "Pawoo keys not set" unless Danbooru.config.pawoo_client_id
@url = "https://img.pawoo.net/media_attachments/files/001/298/028/original/55a6fd252778454b.mp4"
@ref = "https://pawoo.net/@evazion/19451018"
@site = Sources::Site.new(@url, referer_url: @ref)
@site.get
@site = Sources::Strategies.find(@url, @ref)
end
should "fetch the source data" do

View File

@@ -3,8 +3,8 @@ require 'test_helper'
module Sources
class PixivTest < ActiveSupport::TestCase
def get_source(source)
@site = Sources::Site.new(source)
@site.get
@site = Sources::Strategies.find(source)
@site
rescue Net::OpenTimeout
skip "Remote connection to #{source} failed"
@@ -23,19 +23,22 @@ module Sources
context "in all cases" do
context "A touch page" do
setup do
@site = Sources::Site.new("http://touch.pixiv.net/member_illust.php?mode=medium&illust_id=59687915")
@image_urls = @site.get
@site = Sources::Strategies.find("http://touch.pixiv.net/member_illust.php?mode=medium&illust_id=59687915")
@image_urls = @site.image_urls
end
should "get all the image urls" do
assert_equal("https://i.pximg.net/img-original/img/2016/10/29/17/13/23/59687915_p0.png", @image_urls)
expected_urls = [
"https://i.pximg.net/img-original/img/2016/10/29/17/13/23/59687915_p0.png",
"https://i.pximg.net/img-original/img/2016/10/29/17/13/23/59687915_p1.png"
].sort
assert_equal(expected_urls, @image_urls.sort)
end
end
context "A gallery page" do
setup do
@site = Sources::Site.new("http://www.pixiv.net/member_illust.php?mode=medium&illust_id=49270482")
@site.get
@site = Sources::Strategies.find("http://www.pixiv.net/member_illust.php?mode=medium&illust_id=49270482")
@image_urls = @site.image_urls
end
@@ -46,8 +49,7 @@ module Sources
context "An ugoira source site for pixiv" do
setup do
@site = Sources::Site.new("http://www.pixiv.net/member_illust.php?mode=medium&illust_id=62247364")
@site.get
@site = Sources::Strategies.find("http://www.pixiv.net/member_illust.php?mode=medium&illust_id=62247364")
end
should "get the file url" do
@@ -66,8 +68,7 @@ module Sources
context "A https://i.pximg.net/img-zip/ugoira/* source" do
should "get the metadata" do
@site = Sources::Site.new("https://i.pximg.net/img-zip-ugoira/img/2017/04/04/08/57/38/62247364_ugoira1920x1080.zip")
@site.get
@site = Sources::Strategies.find("https://i.pximg.net/img-zip-ugoira/img/2017/04/04/08/57/38/62247364_ugoira1920x1080.zip")
assert_equal("uroobnad2", @site.artist_name)
end
@@ -79,7 +80,7 @@ module Sources
end
should "get the profile" do
assert_equal("http://www.pixiv.net/member.php?id=696859", @site.profile_url)
assert_equal("https://www.pixiv.net/member.php?id=696859", @site.profile_url)
end
should "get the artist name" do
@@ -142,12 +143,17 @@ module Sources
should "get the full size image url" do
assert_equal("https://i.pximg.net/img-original/img/2017/08/18/00/09/21/64476642_p0.jpg", @site.image_url)
end
should "get the full size image url for the canonical url" do
assert_equal("https://i.pximg.net/img-original/img/2017/08/18/00/09/21/64476642_p0.jpg", @site.canonical_url)
end
end
context "fetching source data for a deleted work" do
should "raise a bad id error" do
assert_raise(::PixivApiClient::BadIDError) do
get_source("https://i.pximg.net/img-original/img/2017/11/22/01/06/44/65991677_p0.png")
@site.image_urls
end
end
end

View File

@@ -9,8 +9,7 @@ module Sources
context "The source for a 'http://*.tumblr.com/post/*' photo post with a single image" do
setup do
@site = Sources::Site.new("https://noizave.tumblr.com/post/162206271767")
@site.get
@site = Sources::Strategies.find("https://noizave.tumblr.com/post/162206271767")
end
should "get the artist name" do
@@ -22,7 +21,7 @@ module Sources
end
should "get the tags" do
tags = [["tag", "https://tumblr.com/tagged/tag"], ["red_hair", "https://tumblr.com/tagged/red-hair"]]
tags = [["tag", "https://tumblr.com/tagged/tag"], ["red_hair", "https://tumblr.com/tagged/red_hair"]]
assert_equal(tags, @site.tags)
end
@@ -68,7 +67,7 @@ module Sources
end
should "get the image url" do
assert_equal("http://data.tumblr.com/3bbfcbf075ddf969c996641b264086fd/tumblr_os2buiIOt51wsfqepo1_raw.png", @site.image_url)
assert_equal("https://media.tumblr.com/3bbfcbf075ddf969c996641b264086fd/tumblr_os2buiIOt51wsfqepo1_1280.png", @site.image_url)
end
should "get the artist" do
@@ -82,16 +81,15 @@ module Sources
context "The source for a 'http://*.tumblr.com/image/*' image page" do
setup do
@site = Sources::Site.new("https://noizave.tumblr.com/image/162206271767")
@site.get
@site = Sources::Strategies.find("https://noizave.tumblr.com/image/162206271767")
end
should "get the image url" do
assert_equal("http://data.tumblr.com/3bbfcbf075ddf969c996641b264086fd/tumblr_os2buiIOt51wsfqepo1_raw.png", @site.image_url)
assert_equal("https://media.tumblr.com/3bbfcbf075ddf969c996641b264086fd/tumblr_os2buiIOt51wsfqepo1_1280.png", @site.image_url)
end
should "get the tags" do
tags = [["tag", "https://tumblr.com/tagged/tag"], ["red_hair", "https://tumblr.com/tagged/red-hair"]]
tags = [["tag", "https://tumblr.com/tagged/tag"], ["red_hair", "https://tumblr.com/tagged/red_hair"]]
assert_equal(tags, @site.tags)
end
end
@@ -100,20 +98,19 @@ module Sources
setup do
@url = "https://78.media.tumblr.com/7c4d2c6843466f92c3dd0516e749ec35/tumblr_orwwptNBCE1wsfqepo2_1280.jpg"
@ref = "https://noizave.tumblr.com/post/162094447052"
@site = Sources::Site.new(@url, referer_url: @ref)
@site.get
@site = Sources::Strategies.find(@url, @ref)
end
should "get the image urls" do
urls = %w[
http://data.tumblr.com/afed9f5b3c33c39dc8c967e262955de2/tumblr_orwwptNBCE1wsfqepo1_raw.png
http://data.tumblr.com/7c4d2c6843466f92c3dd0516e749ec35/tumblr_orwwptNBCE1wsfqepo2_raw.jpg
http://data.tumblr.com/d2ed224f135b0c81f812df81a0a8692d/tumblr_orwwptNBCE1wsfqepo3_raw.gif
http://data.tumblr.com/3bbfcbf075ddf969c996641b264086fd/tumblr_inline_os3134mABB1v11u29_raw.png
http://data.tumblr.com/34ed9d0ff4a21625981372291cb53040/tumblr_nv3hwpsZQY1uft51jo1_raw.gif
https://media.tumblr.com/afed9f5b3c33c39dc8c967e262955de2/tumblr_orwwptNBCE1wsfqepo1_1280.png
https://media.tumblr.com/7c4d2c6843466f92c3dd0516e749ec35/tumblr_orwwptNBCE1wsfqepo2_1280.jpg
https://media.tumblr.com/d2ed224f135b0c81f812df81a0a8692d/tumblr_orwwptNBCE1wsfqepo3_1280.gif
https://media.tumblr.com/3bbfcbf075ddf969c996641b264086fd/tumblr_inline_os3134mABB1v11u29_1280.png
https://media.tumblr.com/34ed9d0ff4a21625981372291cb53040/tumblr_nv3hwpsZQY1uft51jo1_1280.gif
]
assert_equal(urls, @site.image_urls)
assert_equal(urls.sort, @site.image_urls.sort)
end
should "get the tags" do
@@ -129,17 +126,16 @@ module Sources
context "The source for a 'http://*.tumblr.com/post/*' text post with inline images" do
setup do
@site = Sources::Site.new("https://noizave.tumblr.com/post/162221502947")
@site.get
@site = Sources::Strategies.find("https://noizave.tumblr.com/post/162221502947")
end
should "get the image urls" do
urls = %w[
http://data.tumblr.com/afed9f5b3c33c39dc8c967e262955de2/tumblr_inline_os2zhkfhY01v11u29_raw.png
http://data.tumblr.com/7c4d2c6843466f92c3dd0516e749ec35/tumblr_inline_os2zkg02xH1v11u29_raw.jpg
https://media.tumblr.com/afed9f5b3c33c39dc8c967e262955de2/tumblr_inline_os2zhkfhY01v11u29_1280.png
https://media.tumblr.com/7c4d2c6843466f92c3dd0516e749ec35/tumblr_inline_os2zkg02xH1v11u29_1280.jpg
]
assert_equal(urls, @site.image_urls)
assert_equal(urls.sort, @site.image_urls.sort)
end
should "get the commentary" do
@@ -151,14 +147,13 @@ module Sources
context "The source for a 'http://*.tumblr.com/post/*' video post with inline images" do
setup do
@site = Sources::Site.new("https://noizave.tumblr.com/post/162222617101")
@site.get
@site = Sources::Strategies.find("https://noizave.tumblr.com/post/162222617101")
end
should "get the image urls" do
urls = %w[
https://vtt.tumblr.com/tumblr_os31dkexhK1wsfqep.mp4
http://data.tumblr.com/afed9f5b3c33c39dc8c967e262955de2/tumblr_inline_os31dclyCR1v11u29_raw.png
https://media.tumblr.com/afed9f5b3c33c39dc8c967e262955de2/tumblr_inline_os31dclyCR1v11u29_1280.png
]
assert_equal(urls, @site.image_urls)
@@ -167,12 +162,11 @@ module Sources
context "The source for a 'http://*.tumblr.com/post/*' answer post with inline images" do
setup do
@site = Sources::Site.new("https://noizave.tumblr.com/post/171237880542/test-ask")
@site.get
@site = Sources::Strategies.find("https://noizave.tumblr.com/post/171237880542/test-ask")
end
should "get the image urls" do
urls = ["http://data.tumblr.com/cb481f031010e8ddad564b2150149c9a/tumblr_inline_p4nxoyLrSh1v11u29_raw.png"]
urls = ["https://media.tumblr.com/cb481f031010e8ddad564b2150149c9a/tumblr_inline_p4nxoyLrSh1v11u29_1280.png"]
assert_equal(urls, @site.image_urls)
end

View File

@@ -2,79 +2,16 @@ require 'test_helper'
module Sources
class TwitterTest < ActiveSupport::TestCase
context "A video" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Site.new("https://twitter.com/CincinnatiZoo/status/859073537713328129")
@site.get
end
should "get the image url" do
assert_equal("https://video.twimg.com/ext_tw_video/859073467769126913/pu/vid/1280x720/cPGgVROXHy3yrK6u.mp4", @site.image_url)
end
end
context "An animated gif" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Site.new("https://twitter.com/DaniStrawberry1/status/859435334765088769")
@site.get
end
should "get the image url" do
assert_equal("https://video.twimg.com/tweet_video/C-1Tns7WsAAqvqn.mp4", @site.image_url)
end
end
context "A twitter summary card" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Site.new("https://twitter.com/NatGeo/status/932700115936178177")
@site.get
end
should "get the image url" do
assert_equal("https://pmdvod.nationalgeographic.com/NG_Video/205/302/smpost_1510342850295.jpg", @site.image_url)
end
end
context "A twitter summary card from twitter" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Site.new("https://twitter.com/masayasuf/status/870734961778630656/photo/1")
@site.get
end
should "get the image url" do
assert_equal("https://pbs.twimg.com/media/DBV40M2UIAAHYlt.jpg:orig", @site.image_url)
end
end
context "A twitter summary card from twitter with a :large image" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Site.new("https://twitter.com/aranobu/status/817736083567820800")
@site.get
end
should "get the image url" do
assert_equal("https://pbs.twimg.com/media/C1kt72yVEAEGpOv.jpg:orig", @site.image_url)
end
end
context "An extended tweet" do
should "extract the correct image url" do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Site.new("https://twitter.com/onsen_musume_jp/status/865534101918330881")
@site.get
@site = Sources::Strategies.find("https://twitter.com/onsen_musume_jp/status/865534101918330881")
assert_equal(["https://pbs.twimg.com/media/DAL-ntWV0AEbhes.jpg:orig"], @site.image_urls)
end
should "extract all the image urls" do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Site.new("https://twitter.com/aoimanabu/status/892370963630743552")
@site.get
@site = Sources::Strategies.find("https://twitter.com/aoimanabu/status/892370963630743552")
urls = %w[
https://pbs.twimg.com/media/DGJWp59UIAA_-en.jpg:orig
@@ -85,12 +22,72 @@ module Sources
assert_equal(urls, @site.image_urls)
end
end
context "A video" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Strategies.find("https://twitter.com/CincinnatiZoo/status/859073537713328129")
end
should "get the image url" do
assert_equal("https://video.twimg.com/ext_tw_video/859073467769126913/pu/vid/1280x720/cPGgVROXHy3yrK6u.mp4", @site.image_url)
end
end
context "An animated gif" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Strategies.find("https://twitter.com/DaniStrawberry1/status/859435334765088769")
end
should "get the image url" do
assert_equal("https://video.twimg.com/tweet_video/C-1Tns7WsAAqvqn.mp4", @site.image_url)
end
end
context "A twitter summary card" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Strategies.find("https://twitter.com/NatGeo/status/932700115936178177")
end
should "get the image url" do
assert_equal("https://pmdvod.nationalgeographic.com/NG_Video/205/302/smpost_1510342850295.jpg", @site.image_url)
end
end
context "A twitter summary card from twitter" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Strategies.find("https://twitter.com/masayasuf/status/870734961778630656/photo/1")
end
should "get the image url" do
skip "Find another url, the masayasuf tweet no longer exists"
assert_equal("https://pbs.twimg.com/media/DBV40M2UIAAHYlt.jpg:orig", @site.image_url)
end
end
context "A twitter summary card from twitter with a :large image" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Strategies.find("https://twitter.com/aranobu/status/817736083567820800")
end
should "get the image url" do
assert_equal("https://pbs.twimg.com/media/C1kt72yVEAEGpOv.jpg:orig", @site.image_url)
end
should "get the canonical url" do
assert_equal("https://twitter.com/aranobu/status/817736083567820800", @site.canonical_url)
end
end
context "The source site for a restricted twitter" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Site.new("https://mobile.twitter.com/Strangestone/status/556440271961858051")
@site.get
@site = Sources::Strategies.find("https://mobile.twitter.com/Strangestone/status/556440271961858051")
end
should "get the image url" do
@@ -101,8 +98,7 @@ module Sources
context "The source site for twitter" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Site.new("https://mobile.twitter.com/nounproject/status/540944400767922176")
@site.get
@site = Sources::Strategies.find("https://mobile.twitter.com/nounproject/status/540944400767922176")
end
should "get the profile" do
@@ -135,8 +131,7 @@ module Sources
context "The source site for a direct image and a referer" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Site.new("https://pbs.twimg.com/media/B4HSEP5CUAA4xyu.png:large", referer_url: "https://twitter.com/nounproject/status/540944400767922176")
@site.get
@site = Sources::Strategies.find("https://pbs.twimg.com/media/B4HSEP5CUAA4xyu.png:large", "https://twitter.com/nounproject/status/540944400767922176")
end
should "get the artist name" do
@@ -151,8 +146,7 @@ module Sources
context "The source site for a https://twitter.com/i/web/status/:id url" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Site.new("https://twitter.com/i/web/status/943446161586733056")
@site.get
@site = Sources::Strategies.find("https://twitter.com/i/web/status/943446161586733056")
end
should "fetch the source data" do
@@ -163,8 +157,7 @@ module Sources
context "A tweet" do
setup do
skip "Twitter key is not set" unless Danbooru.config.twitter_api_key
@site = Sources::Site.new("https://twitter.com/noizave/status/875768175136317440")
@site.get
@site = Sources::Strategies.find("https://twitter.com/noizave/status/875768175136317440")
end
should "convert urls, hashtags, and mentions to dtext" do