skeb: parse www.skeb.jp URLs.
This commit is contained in:
@@ -1,10 +1,12 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class Source::URL::Skeb < Source::URL
|
class Source::URL::Skeb < Source::URL
|
||||||
|
RESERVED_USERNAMES = %w[works users about terms creator client company]
|
||||||
|
|
||||||
attr_reader :username, :work_id, :image_id, :image_uuid
|
attr_reader :username, :work_id, :image_id, :image_uuid
|
||||||
|
|
||||||
def self.match?(url)
|
def self.match?(url)
|
||||||
url.host.in?(%w[skeb.jp skeb.imgix.net skeb-production.s3.ap-northeast-1.amazonaws.com])
|
url.host.in?(%w[www.skeb.jp skeb.jp skeb.imgix.net skeb-production.s3.ap-northeast-1.amazonaws.com])
|
||||||
end
|
end
|
||||||
|
|
||||||
def parse
|
def parse
|
||||||
@@ -15,15 +17,19 @@ class Source::URL::Skeb < Source::URL
|
|||||||
# https://skeb.jp/@asanagi/works/16 (age-restricted, watermarked)
|
# https://skeb.jp/@asanagi/works/16 (age-restricted, watermarked)
|
||||||
# https://skeb.jp/@asanagi/works/6 (private, returns 404)
|
# https://skeb.jp/@asanagi/works/6 (private, returns 404)
|
||||||
# https://skeb.jp/@nasuno42/works/30 (multi-image post)
|
# https://skeb.jp/@nasuno42/works/30 (multi-image post)
|
||||||
in "skeb.jp", /^@/ => username, "works", work_id
|
in ("www.skeb.jp" | "skeb.jp"), /^@/ => username, "works", work_id
|
||||||
@username = username.delete_prefix("@")
|
@username = username.delete_prefix("@")
|
||||||
@work_id = work_id
|
@work_id = work_id
|
||||||
|
|
||||||
# https://skeb.jp/@asanagi
|
# https://skeb.jp/@asanagi
|
||||||
# https://skeb.jp/@okku_oxn/works
|
# https://skeb.jp/@okku_oxn/works
|
||||||
in "skeb.jp", /^@/ => username, *rest
|
in ("www.skeb.jp" | "skeb.jp"), /^@/ => username, *rest
|
||||||
@username = username.delete_prefix("@")
|
@username = username.delete_prefix("@")
|
||||||
|
|
||||||
|
# https://skeb.jp/OrvMZ
|
||||||
|
in ("www.skeb.jp" | "skeb.jp"), username, *rest unless username.in?(RESERVED_USERNAMES)
|
||||||
|
@username = username
|
||||||
|
|
||||||
# https://skeb.imgix.net/requests/199886_0?bg=%23fff&auto=format&w=800&s=5a6a908ab964fcdfc4713fad179fe715
|
# https://skeb.imgix.net/requests/199886_0?bg=%23fff&auto=format&w=800&s=5a6a908ab964fcdfc4713fad179fe715
|
||||||
# https://skeb.imgix.net/requests/73290_0?bg=%23fff&auto=format&txtfont=bold&txtshad=70&txtclr=BFFFFFFF&txtalign=middle%2Ccenter&txtsize=150&txt=SAMPLE&w=800&s=4843435cff85d623b1f657209d131526
|
# https://skeb.imgix.net/requests/73290_0?bg=%23fff&auto=format&txtfont=bold&txtshad=70&txtclr=BFFFFFFF&txtalign=middle%2Ccenter&txtsize=150&txt=SAMPLE&w=800&s=4843435cff85d623b1f657209d131526
|
||||||
# https://skeb.imgix.net/requests/53269_1?bg=%23fff&fm=png&dl=53269.png&w=1.0&h=1.0&s=44588ea9c41881049e392adb1df21cce (full size)
|
# https://skeb.imgix.net/requests/53269_1?bg=%23fff&fm=png&dl=53269.png&w=1.0&h=1.0&s=44588ea9c41881049e392adb1df21cce (full size)
|
||||||
|
|||||||
@@ -105,6 +105,8 @@ module Sources
|
|||||||
assert(Source::URL.image_url?("https://skeb-production.s3.ap-northeast-1.amazonaws.com/uploads/outputs/20f9d68f-50ec-44ae-8630-173fc38a2d6a?response-content-disposition=attachment%3B%20filename%3D%22458093-1.output.mp4%22%3B%20filename%2A%3DUTF-8%27%27458093-1.output.mp4&response-content-type=video%2Fmp4&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIVPUTFQBBL7UDSUA%2F20220221%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20220221T200057Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=7f028cfd9a56344cf1d42410063fad3ef30a1e47b83cef047247e0c37df01df0"))
|
assert(Source::URL.image_url?("https://skeb-production.s3.ap-northeast-1.amazonaws.com/uploads/outputs/20f9d68f-50ec-44ae-8630-173fc38a2d6a?response-content-disposition=attachment%3B%20filename%3D%22458093-1.output.mp4%22%3B%20filename%2A%3DUTF-8%27%27458093-1.output.mp4&response-content-type=video%2Fmp4&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIVPUTFQBBL7UDSUA%2F20220221%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20220221T200057Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=7f028cfd9a56344cf1d42410063fad3ef30a1e47b83cef047247e0c37df01df0"))
|
||||||
assert(Source::URL.page_url?("https://skeb.jp/@OrvMZ/works/3 "))
|
assert(Source::URL.page_url?("https://skeb.jp/@OrvMZ/works/3 "))
|
||||||
assert(Source::URL.profile_url?("https://skeb.jp/@asanagi"))
|
assert(Source::URL.profile_url?("https://skeb.jp/@asanagi"))
|
||||||
|
assert(Source::URL.profile_url?("https://www.skeb.jp/@asanagi"))
|
||||||
|
assert(Source::URL.profile_url?("https://skeb.jp/asanagi"))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user