ncode-syosetu 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ncode_syosetu/builder/epub3.rb +3 -2
- data/lib/ncode_syosetu/model/toc.rb +3 -2
- data/lib/ncode_syosetu/version.rb +1 -1
- data/spec/data/n00000/2.html +17 -0
- data/spec/data/n00000/index.html +11 -8
- data/spec/ncode_syosetu/client_spec.rb +4 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b4409dedee26d5a6c495b2850eaaa8a4f7f5487
|
4
|
+
data.tar.gz: 93028f52ca2e51e9a0d6c90c612402b1a51d56bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30586a35d4c450f54424da1f092639820371a260f74409a56831b412561b5a8de9e10ab0a73f96431b39122d24f9f0742538e5b7242de71f0cc25a4a942d206f
|
7
|
+
data.tar.gz: 920a2b5b017935de0732a81727e16458d89e7e681432a907573fac0631f44deab780d7a64f09beaaeb92ba9b35bc6fc03e59e7de6f0201531567971c4aa5e687
|
@@ -15,7 +15,7 @@ module NcodeSyosetu
|
|
15
15
|
date Time.now.to_s
|
16
16
|
|
17
17
|
resources(workdir: tmpdir) do
|
18
|
-
toc_html = novel.toc.html.gsub(%r[<a href="/[^/]+/(\d+)/?">], '<a href="\1.html">')
|
18
|
+
toc_html = novel.toc.html.gsub(%r[<a href="/[^/]+/(\d+)/?">], '<a href="\1.html">').gsub(/<br>/, '<br />')
|
19
19
|
File.write("toc.html", toc_html)
|
20
20
|
nav "toc.html"
|
21
21
|
|
@@ -25,8 +25,9 @@ module NcodeSyosetu
|
|
25
25
|
if episode.is_a?(NcodeSyosetu::Model::Heading)
|
26
26
|
next_heading = episode.title
|
27
27
|
else
|
28
|
+
episode_html = episode.html.gsub(/<br>/, '<br />')
|
28
29
|
html_path = "#{episode.number}.html"
|
29
|
-
File.write(html_path,
|
30
|
+
File.write(html_path, episode_html)
|
30
31
|
file html_path
|
31
32
|
if next_heading
|
32
33
|
heading next_heading
|
@@ -10,7 +10,8 @@ module NcodeSyosetu
|
|
10
10
|
@abstract = page.search(".novel_ex").text.chomp
|
11
11
|
|
12
12
|
@episodes = []
|
13
|
-
page.
|
13
|
+
page.at(".index_box").children.each do |sub_item|
|
14
|
+
next unless sub_item.matches?('.chapter_title, .novel_sublist2')
|
14
15
|
episode = { text: sub_item.text.gsub(/\s+/, " ").chomp }
|
15
16
|
link = sub_item.search("a")
|
16
17
|
unless link.empty?
|
@@ -24,7 +25,7 @@ module NcodeSyosetu
|
|
24
25
|
@body_html =
|
25
26
|
page.search(".novel_writername").to_html <<
|
26
27
|
page.search(".novel_ex").to_html <<
|
27
|
-
page.search(".
|
28
|
+
page.search(".index_box").to_html
|
28
29
|
end
|
29
30
|
|
30
31
|
def html
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
<title>たいとる</title>
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
|
10
|
+
<div class="novel_subtitle"><div class="chapter_title">第1章</div>第一話</div>
|
11
|
+
<div class="novel_view" id="novel_view">
|
12
|
+
本文<br />
|
13
|
+
<ruby><rb>漢字</rb><rt>かんじ</rt></ruby>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
</body>
|
17
|
+
</html>
|
data/spec/data/n00000/index.html
CHANGED
@@ -9,14 +9,17 @@
|
|
9
9
|
|
10
10
|
<div class="novel_writername">作者:<a href="http://mypage.syosetu.com/00000/">さくしゃ</a></div>
|
11
11
|
<div class="novel_ex">あらすじ</div>
|
12
|
-
<div class="
|
13
|
-
<
|
14
|
-
<
|
15
|
-
|
16
|
-
<
|
17
|
-
|
18
|
-
|
19
|
-
|
12
|
+
<div class="index_box">
|
13
|
+
<div class="chapter_title">第1章</div>
|
14
|
+
<dl class="novel_sublist2">
|
15
|
+
<dd class="subtitle"><a href="/n00000/1/">第一話</a></dd>
|
16
|
+
<dt class="long_update">2014年 1月 31日</dt>
|
17
|
+
</dl>
|
18
|
+
<div class="chapter_title">第2章</div>
|
19
|
+
<dl class="novel_sublist2">
|
20
|
+
<dd class="subtitle"><a href="/n00000/2/">第二話</a></dd>
|
21
|
+
<dt class="long_update">2014年 2月 31日</dt>
|
22
|
+
</dl>
|
20
23
|
</div>
|
21
24
|
|
22
25
|
</body>
|
@@ -11,10 +11,13 @@ describe NcodeSyosetu::Client do
|
|
11
11
|
|
12
12
|
it "scrapes ncode novel" do
|
13
13
|
expect(subject.toc.title).to eq("たいとる")
|
14
|
-
expect(subject.episodes.size).to eq(
|
14
|
+
expect(subject.episodes.size).to eq(4)
|
15
15
|
expect(subject.episodes[0]).to be_a(NcodeSyosetu::Model::Heading)
|
16
16
|
expect(subject.episodes[1]).to be_a(NcodeSyosetu::Model::Episode)
|
17
17
|
expect(subject.episodes[1].number).to eq(1)
|
18
|
+
expect(subject.episodes[2]).to be_a(NcodeSyosetu::Model::Heading)
|
19
|
+
expect(subject.episodes[3]).to be_a(NcodeSyosetu::Model::Episode)
|
20
|
+
expect(subject.episodes[3].number).to eq(2)
|
18
21
|
end
|
19
22
|
end
|
20
23
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ncode-syosetu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- hogelog
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mechanize
|
@@ -196,6 +196,7 @@ files:
|
|
196
196
|
- lib/ncode_syosetu/version.rb
|
197
197
|
- ncode_syosetu.gemspec
|
198
198
|
- spec/data/n00000/1.html
|
199
|
+
- spec/data/n00000/2.html
|
199
200
|
- spec/data/n00000/index.html
|
200
201
|
- spec/ncode_syosetu/builder/epub3_spec.rb
|
201
202
|
- spec/ncode_syosetu/builder/mobi_spec.rb
|
@@ -228,6 +229,7 @@ specification_version: 4
|
|
228
229
|
summary: Ncode syosetu scraper
|
229
230
|
test_files:
|
230
231
|
- spec/data/n00000/1.html
|
232
|
+
- spec/data/n00000/2.html
|
231
233
|
- spec/data/n00000/index.html
|
232
234
|
- spec/ncode_syosetu/builder/epub3_spec.rb
|
233
235
|
- spec/ncode_syosetu/builder/mobi_spec.rb
|