rely on preview urls if available for gallery

This commit is contained in:
Albert Yi
2018-09-11 14:57:18 -07:00
parent e0e85a3139
commit 4972c998f8
8 changed files with 42 additions and 2 deletions

View File

@@ -53,6 +53,16 @@ module Sources
image_urls.first
end
# A smaller representation of the image that's suitable for
# displaying previews.
def preview_urls
image_urls
end
def preview_url
preview_urls.first
end
# Whatever <tt>url</tt> is, this method should return a link to the HTML
# page containing the resource. It should not be a binary file. It will
# eventually be assigned as the source for the post, but it does not

View File

@@ -50,6 +50,12 @@ module Sources
[url]
end
def preview_urls
image_urls.map do |x|
x.sub(%r!pximg\.net/img-original/img!, "pximg.net/c/240x240/img-master/img")
end
end
def page_url
if novel_id.present?
return "https://www.pixiv.net/novel/show.php?id=#{novel_id}&mode=cover"

View File

@@ -36,6 +36,12 @@ module Sources::Strategies
.uniq
end
def preview_urls
image_urls.map do |x|
x.sub(%r!_1280\.(jpg|png|gif|jpeg)\z!, '_250.\1')
end
end
def page_url
[url, referer_url].each do |x|
if x =~ POST

View File

@@ -36,6 +36,12 @@ module Sources::Strategies
end
memoize :image_urls
def preview_urls
image_urls.map do |x|
x.sub(%r!\.(jpg|jpeg|png|gif)(?::orig)?\z!i, '.\1:small')
end
end
def page_url
[url, referer_url].each do |x|
if self.class.status_id_from_url(x).present?

View File

@@ -9,7 +9,7 @@
<% if @source.present? %>
<section>
<% @source.image_urls.each.with_index do |url, i| %>
<% @source.image_urls.zip(@source.preview_urls).each.with_index do |(url, preview_url), i| %>
<div class="upload-preview">
<p class="caption-top">
<%= link_to "Image ##{i}", new_upload_path(url: url, ref: @url), target: "_blank" %>
@@ -17,7 +17,7 @@
<%= link_to new_upload_path(url: url, ref: @url), target: "_blank" do %>
<% if ImageProxy.needs_proxy?(url) %>
<%= image_tag(image_proxy_uploads_path(url: url)) %>
<%= image_tag(image_proxy_uploads_path(url: preview_url)) %>
<% elsif url.is_a?(String) %>
<%= image_tag url %>
<% else %>

View File

@@ -102,6 +102,10 @@ module Sources
assert_equal("https://i.pximg.net/img-original/img/2017/11/21/05/12/37/65981735_p0.jpg", @site.image_url)
end
should "get the preview size image url" do
assert_equal("https://i.pximg.net/c/240x240/img-master/img/2017/11/21/05/12/37/65981735_p0.jpg", @site.preview_url)
end
should "get the page count" do
assert_equal(1, @site.image_urls.size)
end

View File

@@ -70,6 +70,10 @@ module Sources
assert_equal("https://media.tumblr.com/3bbfcbf075ddf969c996641b264086fd/tumblr_os2buiIOt51wsfqepo1_1280.png", @site.image_url)
end
should "get the preview url" do
assert_equal("https://media.tumblr.com/3bbfcbf075ddf969c996641b264086fd/tumblr_os2buiIOt51wsfqepo1_250.png", @site.preview_url)
end
should "get the artist" do
CurrentUser.user = FactoryBot.create(:user)
CurrentUser.ip_addr = "127.0.0.1"

View File

@@ -78,6 +78,10 @@ module Sources
assert_equal("https://pbs.twimg.com/media/C1kt72yVEAEGpOv.jpg:orig", @site.image_url)
end
should "get the preview url" do
assert_equal("https://pbs.twimg.com/media/C1kt72yVEAEGpOv.jpg:small", @site.preview_url)
end
should "get the canonical url" do
assert_equal("https://twitter.com/aranobu/status/817736083567820800", @site.canonical_url)
end