#1866 update for new deviantart urls

This commit is contained in:
Toks
2015-03-13 14:12:17 -04:00
parent 097914ca67
commit 04e6aa7474
3 changed files with 13 additions and 9 deletions

View File

@@ -22,12 +22,16 @@ module Downloads
end end
def rewrite_thumbnails(url, headers) def rewrite_thumbnails(url, headers)
if url =~ %r{^(https?://.+?\.deviantart\.net/.+?/)200H/} if url =~ %r{^(https?://(?:fc|th)\d{2}\.deviantart\.net/.+?/)200H/}
match = $1 match = $1
url.sub!(match + "200H/", match) url.sub!(match + "200H/", match)
elsif url =~ %r{^(https?://.+?\.deviantart\.net/.+?/)PRE/} elsif url =~ %r{^(https?://(?:fc|th)\d{2}\.deviantart\.net/.+?/)PRE/}
match = $1 match = $1
url.sub!(match + "PRE/", match) url.sub!(match + "PRE/", match)
elsif url =~ %r{^https?://(?:pre|img)\d{2}\.deviantart\.net/}
source = ::Sources::Strategies::DeviantArt.new(url)
source.get
return [source.image_url, headers]
end end
return [url, headers] return [url, headers]

View File

@@ -47,10 +47,10 @@ module Sources
end end
def get_image_url_from_page(page) def get_image_url_from_page(page)
image = page.search("div.dev-view-deviation img.dev-content-normal") download_link = page.link_with(:class => /dev-page-download/)
if image.any? if download_link
image[0]["src"] download_link.click.uri.to_s # need to follow the redirect now to get the full size url, following it later seems to not work.
else else
nil nil
end end
@@ -58,9 +58,9 @@ module Sources
def normalized_url def normalized_url
@normalized_url ||= begin @normalized_url ||= begin
if url =~ %r{\Ahttps?://(?:fc|th)\d{2}\.deviantart\.net/.+/[a-z0-9_]*_by_[a-z0-9_]+-d([a-z0-9]+)\.}i if url =~ %r{\Ahttps?://(?:fc|th|pre|orig|img)\d{2}\.deviantart\.net/.+/[a-z0-9_]*_by_[a-z0-9_]+-d([a-z0-9]+)\.}i
"http://fav.me/d#{$1}" "http://fav.me/d#{$1}"
elsif url =~ %r{\Ahttps?://(?:fc|th)\d{2}\.deviantart\.net/.+/[a-f0-9]+-d([a-z0-9]+)\.}i elsif url =~ %r{\Ahttps?://(?:fc|th|pre|orig|img)\d{2}\.deviantart\.net/.+/[a-f0-9]+-d([a-z0-9]+)\.}i
"http://fav.me/d#{$1}" "http://fav.me/d#{$1}"
elsif url =~ %r{deviantart\.com/art/} elsif url =~ %r{deviantart\.com/art/}
url url

View File

@@ -324,10 +324,10 @@ class Post < ActiveRecord::Base
base_36_id = base_10_id.to_s(36) base_36_id = base_10_id.to_s(36)
"http://twitpic.com/#{base_36_id}" "http://twitpic.com/#{base_36_id}"
when %r{\Ahttps?://(?:fc|th)\d{2}\.deviantart\.net/.+/[a-z0-9_]*_by_([a-z0-9_]+)-d([a-z0-9]+)\.}i when %r{\Ahttps?://(?:fc|th|pre|orig|img)\d{2}\.deviantart\.net/.+/[a-z0-9_]*_by_([a-z0-9_]+)-d([a-z0-9]+)\.}i
"http://#{$1}.deviantart.com/gallery/#/d#{$2}" "http://#{$1}.deviantart.com/gallery/#/d#{$2}"
when %r{\Ahttps?://(?:fc|th)\d{2}\.deviantart\.net/.+/[a-f0-9]+-d([a-z0-9]+)\.}i when %r{\Ahttps?://(?:fc|th|pre|orig|img)\d{2}\.deviantart\.net/.+/[a-f0-9]+-d([a-z0-9]+)\.}i
"http://deviantart.com/gallery/#/d#{$1}" "http://deviantart.com/gallery/#/d#{$1}"
when %r{\Ahttp://www\.karabako\.net/images(?:ub)?/karabako_(\d+)(?:_\d+)?\.}i when %r{\Ahttp://www\.karabako\.net/images(?:ub)?/karabako_(\d+)(?:_\d+)?\.}i