From 2d5fc191dd5d3ed3ec3c6fe8431815648e2aacc1 Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 20 Jun 2017 14:56:20 -0500 Subject: [PATCH] nijie: convert commentary to dtext. --- app/logical/sources/strategies/nijie.rb | 22 ++++++++++++++++++++++ test/unit/sources/nijie_test.rb | 17 +++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/app/logical/sources/strategies/nijie.rb b/app/logical/sources/strategies/nijie.rb index 5bd9b0fb7..ab1556bb4 100644 --- a/app/logical/sources/strategies/nijie.rb +++ b/app/logical/sources/strategies/nijie.rb @@ -44,6 +44,28 @@ module Sources protected + # XXX: duplicated from strategies/deviant_art.rb. + def self.to_dtext(text) + html = Nokogiri::HTML.fragment(text) + + dtext = html.children.map do |element| + case element.name + when "text" + element.content + when "strong" + "[b]#{to_dtext(element.inner_html)}[/b]" if element.inner_html.present? + when "i" + "[i]#{to_dtext(element.inner_html)}[/i]" if element.inner_html.present? + when "s" + "[s]#{to_dtext(element.inner_html)}[/s]" if element.inner_html.present? + else + to_dtext(element.inner_html) + end + end.join + + dtext + end + def get_commentary_from_page(page) title = page.search("h2.illust_title").text desc = page.search('meta[property="og:description"]').attr("content").value diff --git a/test/unit/sources/nijie_test.rb b/test/unit/sources/nijie_test.rb index 7d161c660..e7e4c6452 100644 --- a/test/unit/sources/nijie_test.rb +++ b/test/unit/sources/nijie_test.rb @@ -70,5 +70,22 @@ module Sources assert_equal("莚", @site.artist_name) end end + + context "The source site for a nijie gallery" do + setup do + @site = Sources::Site.new("http://nijie.info/view.php?id=218856") + @site.get + end + + should "get the dtext-ified commentary" do + desc = <<-EOS.strip_heredoc.chomp + foo [b]bold[/b] [i]italics[/i] [s]strike[/s] red\r + \r + http://nijie.info/view.php?id=218944 + EOS + + assert_equal(desc, @site.dtext_artist_commentary_desc) + end + end end end