pixiv: convert commentary to dtext.

Convert pixiv links to dtext in this manner:

* https://www.pixiv.net/member_illust.php?mode=medium&illust_id=1234
  => pixiv #1234 "»":[/posts?tags=pixiv:1234]

* https://www.pixiv.net/member.php?id=1234
  => "user/1234":[https://www.pixiv.net/member.php?id=1234] "»":[/artists?search[url_matches]=https://www.pixiv.net/member.php?id=1234]
This commit is contained in:
evazion
2017-06-16 18:37:57 -05:00
parent c638ff2e9c
commit 94e48aa6f3
2 changed files with 26 additions and 4 deletions

View File

@@ -107,6 +107,23 @@ module Sources
@metadata.pages
end
def self.to_dtext(text)
text = text.gsub(%r!https?://www\.pixiv\.net/member_illust\.php\?mode=medium&illust_id=([0-9]+)!i) do |match|
pixiv_id = $1
%(pixiv ##{pixiv_id} "»":[/posts?tags=pixiv:#{pixiv_id}])
end
text = text.gsub(%r!https?://www\.pixiv\.net/member\.php\?id=([0-9]+)!i) do |match|
member_id = $1
profile_url = "https://www.pixiv.net/member.php?id=#{member_id}"
search_params = {"search[url_matches]" => profile_url}.to_param
%("user/#{member_id}":[#{profile_url}] "»":[/artists?#{search_params}])
end
text
end
def illust_id_from_url
if sample_image? || full_image? || work_page?
illust_id_from_url!

View File

@@ -117,14 +117,19 @@ module Sources
end
context "fetching the commentary" do
setup do
get_source("https://www.pixiv.net/member_illust.php?mode=medium&illust_id=46337015")
end
should "work when the description is blank" do
get_source("https://www.pixiv.net/member_illust.php?mode=medium&illust_id=46337015")
assert_equal("Illustration (PNG) - foo & bar", @site.dtext_artist_commentary_title)
assert_equal("", @site.dtext_artist_commentary_desc)
end
should "convert illust links and member links to dtext" do
get_source("https://www.pixiv.net/member_illust.php?mode=medium&illust_id=63421642")
dtext_desc = %(foo 【pixiv #46337015 "»":[/posts?tags=pixiv:46337015]】bar 【pixiv #14901720 "»":[/posts?tags=pixiv:14901720]】\r\n\r\nbaz【"user/83739":[https://www.pixiv.net/member.php?id=83739] "»":[/artists?search%5Burl_matches%5D=https%3A%2F%2Fwww.pixiv.net%2Fmember.php%3Fid%3D83739]】)
assert_equal(dtext_desc, @site.dtext_artist_commentary_desc)
end
end
end
end