Add site icons for the following sites: * 4chan * Catbox * Danbooru * Drawcrowd * E-Hentai * Enty * Gelbooru * Hitomi * Imgur * Joyreactor * Kemono Party * Konachan * Luscious.net * Mega.nz * Monappy * Mihoyo * Overdoll * Pinterest * Rule34.us * Sankaku Complex * Steam * Webmshare * Yande.re * Zerochan These are mainly used for source links on the https://danbooru.donmai.us/post_events?search[category]=Replacement page.
55 lines
1.5 KiB
Ruby
55 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# https://rule34.us is running a modified fork of Gelbooru 0.1, so its URL structure is similar but not identical to
|
|
# that of other Gelbooru-based sites.
|
|
#
|
|
# @see Source::URL::Gelbooru
|
|
class Source::URL::Rule34DotUs < Source::URL
|
|
attr_reader :post_id, :md5, :image_type, :full_image_url
|
|
|
|
def self.match?(url)
|
|
url.domain.in?(%w[rule34.us])
|
|
end
|
|
|
|
def site_name
|
|
"Rule34.us"
|
|
end
|
|
|
|
def parse
|
|
case [domain, *path_segments]
|
|
|
|
# https://rule34.us/index.php?r=posts/view&id=6204967
|
|
in _, "index.php" if params[:r] == "posts/view" && params[:id].present?
|
|
@post_id = params[:id].to_i
|
|
|
|
# https://rule34.us/hotlink.php?hash=236690fd962fa394edf9894450261dac
|
|
in _, "hotlink.php" if params[:hash]&.match?(/\A\h{32}\z/)
|
|
@md5 = params[:hash]
|
|
|
|
# https://img2.rule34.us/thumbnails/23/66/thumbnail_236690fd962fa394edf9894450261dac.jpg
|
|
# https://img2.rule34.us/images/23/66/236690fd962fa394edf9894450261dac.png
|
|
# https://video.rule34.us/images/d8/1d/d81d79f0292cdb096a8653efa001342d.webm
|
|
# no samples
|
|
in _, ("images" | "thumbnails") => image_type, /\A\h{2}\z/ => h1, /\A\h{2}\z/ => h2, /\A(?:thumbnail_)?(\h{32})\.\w+\z/i
|
|
@md5 = $1
|
|
@image_type = image_type
|
|
@full_image_url = url.to_s if image_type == "images"
|
|
|
|
else
|
|
nil
|
|
end
|
|
end
|
|
|
|
def image_url?
|
|
image_type.present?
|
|
end
|
|
|
|
def page_url
|
|
if post_id.present?
|
|
"https://rule34.us/index.php?r=posts/view&id=#{post_id}"
|
|
elsif md5.present?
|
|
"https://rule34.us/hotlink.php?hash=#{md5}"
|
|
end
|
|
end
|
|
end
|