narou 2.8.1 → 2.8.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of narou might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 870eb38aa05bbd681c0844ecd2170081c2ec7cf8
4
- data.tar.gz: e5125b2222ce3756119751b678c42588aba5aae3
3
+ metadata.gz: 72921352f42914121a9bc0b7f0b7715d03b1ccf4
4
+ data.tar.gz: acdd72fdddabd0d63ef1d1e36e8949afa44dab7a
5
5
  SHA512:
6
- metadata.gz: ba5e77a790890dc38977adf3d236982516c68ca8abfd88af5d2f7cbd60ecea2857e5ed268f6bee1ff28906a665187638e72c4c02ba585a1e72074cf35e876c40
7
- data.tar.gz: dac307c04c44e5d426a629028931e4e9a8303fb34abe6567c1ad936ea4969be8275305e8c3fb768f54111a5a624a0e8572feb5710a0452e928d00b99b0157a73
6
+ metadata.gz: 9de34e81480ac99223824fbdbe8d09a6bd38874cc827caad022b286f36f370255f8fcd9937ca91d05a89c0f33d6ba0657df1ea29f8e505a0ee9b1a7f7ecacb76
7
+ data.tar.gz: cca5c69ceea10bffdc40d29fb695dd0551fa04359dfec6a4a702ddddfa3795e8266e1ac8d2102d81ac8bbfe3b91d125b887c1973e46bfd5805ab96f4c49d4f87
@@ -2,6 +2,14 @@
2
2
  更新履歴 - ChangeLog
3
3
  ====================
4
4
 
5
+ 2.8.2 : 2016/02/05
6
+ ------------------
7
+ #### HotFix
8
+ - ハーメルンのHTTPS化に対応しました
9
+ + 新しく登録する小説を http でダウンロードしようとすると、ダウンロード後に
10
+ エラーが出るので、https なURLでダウンロードをして下さい
11
+
12
+
5
13
  2.8.1 : 2015/12/10
6
14
  ------------------
7
15
  #### 追加機能
data/README.md CHANGED
@@ -37,6 +37,14 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
37
37
  更新履歴 - ChangeLog
38
38
  --------------------
39
39
 
40
+ 2.8.2 : 2016/02/05
41
+ ------------------
42
+ #### HotFix
43
+ - ハーメルンのHTTPS化に対応しました
44
+ + 新しく登録する小説を http でダウンロードしようとすると、ダウンロード後に
45
+ エラーが出るので、https なURLでダウンロードをして下さい
46
+
47
+
40
48
  2.8.1 : 2015/12/10
41
49
  ------------------
42
50
  #### 追加機能
@@ -709,7 +709,8 @@ class Downloader
709
709
  return nil unless toc_url
710
710
  toc_source = ""
711
711
  cookie = @setting["cookie"] || ""
712
- open(toc_url, "Cookie" => cookie) do |toc_fp|
712
+ open_uri_options = make_open_uri_options("Cookie" => cookie, allow_redirections: :safe)
713
+ open(toc_url, open_uri_options) do |toc_fp|
713
714
  if toc_fp.base_uri.to_s != toc_url
714
715
  # リダイレクトされた場合。
715
716
  # ノクターン・ムーンライトのNコードを ncode.syosetu.com に渡すと、novel18.syosetu.com に飛ばされる
@@ -1089,7 +1090,8 @@ class Downloader
1089
1090
  retry_count = RETRY_MAX_FOR_503
1090
1091
  cookie = @setting["cookie"] || ""
1091
1092
  begin
1092
- open(url, "Cookie" => cookie) do |fp|
1093
+ open_uri_options = make_open_uri_options("Cookie" => cookie, allow_redirections: :safe)
1094
+ open(url, open_uri_options) do |fp|
1093
1095
  raw = Helper.pretreatment_source(fp.read, @setting["encoding"])
1094
1096
  end
1095
1097
  rescue OpenURI::HTTPError => e
@@ -36,3 +36,9 @@ if Dir.tmpdir !~ /\A[ -~]+\z/
36
36
  File.expand_path(File.join(ENV["SystemRoot"], "Temp"))
37
37
  end
38
38
  end
39
+
40
+ require "openssl"
41
+
42
+ def make_open_uri_options(add)
43
+ add.merge(ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE)
44
+ end
@@ -51,7 +51,7 @@ class Illustration
51
51
  if path = search_image(basename)
52
52
  return path
53
53
  end
54
- open(url) do |fp|
54
+ open(url, make_open_uri_options(allow_redirections: :safe)) do |fp|
55
55
  content_type = fp.meta["content-type"]
56
56
  ext = MIME[content_type] or raise UnknownMIMEType, content_type
57
57
  illust_abs_path = create_illust_path(basename) + "." + ext
@@ -36,7 +36,8 @@ class NovelInfo
36
36
  request_output_parameters = of.split("-")
37
37
  info_source = ""
38
38
  cookie = @setting["cookie"] || ""
39
- open(info_url, "Cookie" => cookie) do |fp|
39
+ open_uri_options = make_open_uri_options("Cookie" => cookie, allow_redirections: :safe)
40
+ open(info_url, open_uri_options) do |fp|
40
41
  info_source = Helper.restor_entity(Helper.pretreatment_source(fp.read, @setting["encoding"]))
41
42
  raise Downloader::DownloaderNotFoundError if Downloader.detect_error_message(@setting, info_source)
42
43
  end
@@ -3,4 +3,4 @@
3
3
  # Copyright 2013 whiteleaf. All rights reserved.
4
4
  #
5
5
 
6
- Version = "2.8.1"
6
+ Version = "2.8.2"
@@ -32,73 +32,12 @@ Gem::Specification.new do |gem|
32
32
  install_message = <<-EOS
33
33
  #{"*" * 79}
34
34
 
35
- 2.8.0 : 2015/12/09
35
+ 2.8.2 : 2016/02/05
36
36
  ------------------
37
- #### 追加機能
38
- - setting.ini に項目をいくつか追加しました
39
- + `title_date_format` の拡張書式として $s と $t を追加しました。
40
- * $s : 2045年くらいまでの残り時間(10分間隔)を4桁の文字列で埋め込めます。
41
- タイトルの先頭に付加することで端末のタイトルソートで更新順に並び替えたり
42
- 等に利用出来ます
43
- * $t : 小説のタイトルそのものを埋め込めます。$t を利用することでタイトルの
44
- 前後両方に日付等を付与することが可能になります。$t が使用された場合は
45
- title_date_align は無視されます
46
- + `enable_add_end_to_title` を追加しました。完結済小説のタイトルに(完結)と
47
- 表示するかを制御出来ます
48
- + `cut_old_subtitles` を追加しました。指定した話数分変換の対象外にすることで
49
- 変換速度を上げたり容量を節約したり出来ます。(カットした分栞が後ろにずれる
50
- と思うので注意して下さい)
51
- + `author_comment_style` を追加しました。前書き・後書きの装飾方法を指定出来る
52
- ようになります
53
- * css:CSSで装飾。今までの奴です。何も設定しなければこれが使われます
54
- * simple:シンプルに段落。字下げして文字を小さくしただけなのでデザインが崩れ
55
- にくいです。CSSで装飾すると不具合がでるKoboやAdobe Digital Editionでは
56
- こちらの使用をおすすめします
57
- * plain:装飾しない。本文との間に区切り線をいれただけで、本文と同じ文字で
58
- 表示します
59
- * 一括で変更する場合は `narou s default.author_comment_style=simple` 等と
60
- デフォルト値を設定して下さい
61
- - ダイジェスト化時の選択肢を自動で選んでくれる
62
- `download.choices-of-digest-options` という設定を追加しました
63
- + `narou s download.choices-of-digest-options=4,1` のようにカンマ区切りで
64
- 選択したい項目を順番に設定して下さい。詳細は `narou s` コマンドを参照。
65
- WEB UI では「環境設定>詳細」にあります
66
- - `convert.filename-to-ncode` という設定を追加しました。出力する書籍ファイル名
67
- を「ドメイン名_Nコード」で固定出来ます
68
- + `narou s convert.filename-to-ncode=true` で設定出来ます。WEB UI では
69
- 「環境設定>一般」にあります
70
- + この機能により、作者名や小説タイトルが変わった際に出力ファイル名まで一緒に
71
- 変更されてしまい栞が消えるのを防いだり、Kobo端末で不正なファイル名と認識
72
- されないようにすることが出来ます
73
- + 注意:最低一度は対象小説を更新しないと、変換してもファイル名は変わりません
74
-
75
- #### 仕様変更
76
- - `enable_add_end_to_title` の追加に伴い、タイトルへの完結表示はデフォルトでは
77
- 行わなくなりました
78
- - rawデータや本文データを保存する際に長過ぎるファイル名を一定の長さで端折るよう
79
- になりました
80
- + この影響で、update 時にエラーが出る場合があります。その場合は再度 update を
81
- することで以降は正常に更新することが出来ます(その際に新着と表示されますが
82
- 仕様です)
83
- - `author_comment_style` の追加に伴い、Koboの前書き・後書きの装飾を特別に切り替
84
- える処理を削除しました。`narou s default.author_comment_style=simple` で変更
85
- して下さい
86
- - 行頭で半角スペースで字下げをしてものを全角スペースで置換するようになりました
87
-
88
- #### Bug Fix
89
- - 暁の小説で前書き・後書きがあった場合に正常に取得できなくなっていたのを修正
90
-
91
-
92
- 2.8.1 : 2015/12/10
93
- ------------------
94
- #### 追加機能
95
- - setting.ini の `title_date_format` に下記の拡張書式を追加しました
96
- + $ns : 小説が掲載されているサイト名
97
- + $nt : 小説種別(短編 or 連載)
98
-
99
- #### 仕様変更
100
- - `convert.filename-to-ncode` でファイル名をNコード化するのに、更新をしなくても
101
- 変換出来るようにしました
37
+ #### HotFix
38
+ - ハーメルンのHTTPS化に対応しました
39
+ + 新しく登録する小説を http でダウンロードしようとすると、ダウンロード後に
40
+ エラーが出るので、https なURLでダウンロードをして下さい
102
41
 
103
42
  #{"*" * 79}
104
43
  EOS
@@ -122,5 +61,6 @@ Gem::Specification.new do |gem|
122
61
  gem.add_runtime_dependency 'memoist', '~> 0.11.0'
123
62
  gem.add_runtime_dependency 'systemu', '~> 2.6', '>= 2.6.5'
124
63
  gem.add_runtime_dependency 'erubis', '~> 2.7'
64
+ gem.add_runtime_dependency 'open_uri_redirections', '~> 0.2', '>= 0.2.1'
125
65
  end
126
66
 
data/narou.rb CHANGED
@@ -6,6 +6,13 @@
6
6
  # Copyright 2013 whiteleaf. All rights reserved.
7
7
  #
8
8
 
9
+ require "open-uri"
10
+ require "open_uri_redirections"
11
+
12
+ def make_open_uri_options(add)
13
+ add
14
+ end
15
+
9
16
  script_dir = File.expand_path(File.dirname(__FILE__))
10
17
  $debug = File.exist?(File.join(script_dir, "debug"))
11
18
 
@@ -0,0 +1,68 @@
1
+ # ------------------------------------------------------------
2
+ # 小説サイト定義
3
+ name: ハーメルン
4
+ scheme: https
5
+ domain: novel.syosetu.org
6
+ top_url: \\k<scheme>://\\k<domain>
7
+ url: \\k<top_url>/(?<ncode>\d+)
8
+ encoding: UTF-8
9
+ confirm_over18: no
10
+ append_title_to_folder_name: yes
11
+ title_strip_pattern: null
12
+
13
+ # ------------------------------------------------------------
14
+ # 目次取得設定
15
+ toc_url: \\k<top_url>/\\k<ncode>/
16
+ subtitles: |-
17
+ (?:<tr><td colspan=2><strong>(?<chapter>.+?)</strong></td></tr>)?<tr bgcolor="#.+?" class="bgcolor\d"><td width=60%><span id="(?<index>\d+?)"> </span> <a href=.+? style="text-decoration:none;">(?<subtitle>.+?)</a></td><td><NOBR>(?<subdate>.+?)(?:<span title="(?<subupdate>.+?)改稿">\(<u>改</u>\)</span>)?</NOBR></td></tr>
18
+
19
+ href: \\k<index>.html
20
+
21
+ error_message: 投稿者が削除、もしくは間違ったアドレスを指定しています|この作品は投稿者によって削除されました|この作品は完全非公開設定です|この小説は非公開設定になっています
22
+
23
+ # ------------------------------------------------------------
24
+ # 本文取得設定
25
+
26
+ body_pattern: |-
27
+ <span style="font-size:120%">.+?</span><BR><BR>
28
+ (?<body>.+?)
29
+ (?:<div id=atogaki><BR><HR><BR>(?<postscript>.+?)</div>)?
30
+
31
+ introduction_pattern: <div id=maegaki>(?<introduction>.+)<BR><HR><BR></div>
32
+ postscript_pattern: null
33
+
34
+ illust_current_url: null
35
+ illust_grep_pattern: <a href="(?<src>.+?)" alt="挿絵" name='img'>【挿絵表示】</a>
36
+
37
+ # ------------------------------------------------------------
38
+ # 小説情報からパースするための設定
39
+ novel_info_url: http://syosetu.org/?mode=ss_detail&nid=\\k<ncode>&volume=1
40
+
41
+ # タイトル
42
+ t: タイトル</td><td bgcolor=#FFFFFF><a href=.+?>(?<title>.+?)</a>
43
+
44
+ # novel_type 小説種別
45
+ nt: 状態</td><td>.+?,(?<novel_type>.+?)</td>
46
+ novel_type_string:
47
+ 連載(連載中): 1
48
+ 連載(未完): 1
49
+ 連載(完結): 3
50
+ 短編: 2
51
+
52
+ # general_all_no 掲載話数
53
+ ga: 話数</td><td>(?<general_all_no>\d+)話</td>
54
+
55
+ # story あらすじ
56
+ s: "あらすじ</td><td colspan=3 bgcolor=#FFFFFF>(?<story>.+?)</td>"
57
+
58
+ # general_firstup 初回掲載日
59
+ gf: 掲載開始</td><td>(?<general_firstup>.+?)</td>
60
+
61
+ # novelupdated_at 小説の更新時刻。最新投稿日で代用
62
+ nu: 最新投稿</td><td>(?<novelupdated_at>.+?)</td>
63
+
64
+ # general_lastup 最終掲載日
65
+ gl: 最新投稿</td><td>(?<general_lastup>.+?)</td>
66
+
67
+ # writer 作者名
68
+ w: 作者</td><td bgcolor=\#FFFFFF>(?:<a href=.+?>)?(?<writer>.+?)(?:</a>)?</td>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: narou
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.1
4
+ version: 2.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - whiteleaf7
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-09 00:00:00.000000000 Z
11
+ date: 2016-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: termcolorlight
@@ -246,6 +246,26 @@ dependencies:
246
246
  - - "~>"
247
247
  - !ruby/object:Gem::Version
248
248
  version: '2.7'
249
+ - !ruby/object:Gem::Dependency
250
+ name: open_uri_redirections
251
+ requirement: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - "~>"
254
+ - !ruby/object:Gem::Version
255
+ version: '0.2'
256
+ - - ">="
257
+ - !ruby/object:Gem::Version
258
+ version: 0.2.1
259
+ type: :runtime
260
+ prerelease: false
261
+ version_requirements: !ruby/object:Gem::Requirement
262
+ requirements:
263
+ - - "~>"
264
+ - !ruby/object:Gem::Version
265
+ version: '0.2'
266
+ - - ">="
267
+ - !ruby/object:Gem::Version
268
+ version: 0.2.1
249
269
  description: "小説家になろうで公開されている小説の管理、及び電子書籍データへの変換を支援します。縦書用に特化されており、横書き用に特化されたWEB小説を違和感なく縦書で読むことが出来るようになります。"
250
270
  email:
251
271
  - 2nd.leaf@gmail.com
@@ -497,6 +517,7 @@ files:
497
517
  - template/novel.txt.erb
498
518
  - template/replace.txt.erb
499
519
  - template/setting.ini.erb
520
+ - webnovel/https.syosetu.org.yaml
500
521
  - webnovel/ncode.syosetu.com.yaml
501
522
  - webnovel/novel18.syosetu.com.yaml
502
523
  - webnovel/syosetu.org.yaml
@@ -509,73 +530,12 @@ metadata: {}
509
530
  post_install_message: |
510
531
  *******************************************************************************
511
532
 
512
- 2.8.0 : 2015/12/09
513
- ------------------
514
- #### 追加機能
515
- - setting.ini に項目をいくつか追加しました
516
- + `title_date_format` の拡張書式として $s と $t を追加しました。
517
- * $s : 2045年くらいまでの残り時間(10分間隔)を4桁の文字列で埋め込めます。
518
- タイトルの先頭に付加することで端末のタイトルソートで更新順に並び替えたり
519
- 等に利用出来ます
520
- * $t : 小説のタイトルそのものを埋め込めます。$t を利用することでタイトルの
521
- 前後両方に日付等を付与することが可能になります。$t が使用された場合は
522
- title_date_align は無視されます
523
- + `enable_add_end_to_title` を追加しました。完結済小説のタイトルに(完結)と
524
- 表示するかを制御出来ます
525
- + `cut_old_subtitles` を追加しました。指定した話数分変換の対象外にすることで
526
- 変換速度を上げたり容量を節約したり出来ます。(カットした分栞が後ろにずれる
527
- と思うので注意して下さい)
528
- + `author_comment_style` を追加しました。前書き・後書きの装飾方法を指定出来る
529
- ようになります
530
- * css:CSSで装飾。今までの奴です。何も設定しなければこれが使われます
531
- * simple:シンプルに段落。字下げして文字を小さくしただけなのでデザインが崩れ
532
- にくいです。CSSで装飾すると不具合がでるKoboやAdobe Digital Editionでは
533
- こちらの使用をおすすめします
534
- * plain:装飾しない。本文との間に区切り線をいれただけで、本文と同じ文字で
535
- 表示します
536
- * 一括で変更する場合は `narou s default.author_comment_style=simple` 等と
537
- デフォルト値を設定して下さい
538
- - ダイジェスト化時の選択肢を自動で選んでくれる
539
- `download.choices-of-digest-options` という設定を追加しました
540
- + `narou s download.choices-of-digest-options=4,1` のようにカンマ区切りで
541
- 選択したい項目を順番に設定して下さい。詳細は `narou s` コマンドを参照。
542
- WEB UI では「環境設定>詳細」にあります
543
- - `convert.filename-to-ncode` という設定を追加しました。出力する書籍ファイル名
544
- を「ドメイン名_Nコード」で固定出来ます
545
- + `narou s convert.filename-to-ncode=true` で設定出来ます。WEB UI では
546
- 「環境設定>一般」にあります
547
- + この機能により、作者名や小説タイトルが変わった際に出力ファイル名まで一緒に
548
- 変更されてしまい栞が消えるのを防いだり、Kobo端末で不正なファイル名と認識
549
- されないようにすることが出来ます
550
- + 注意:最低一度は対象小説を更新しないと、変換してもファイル名は変わりません
551
-
552
- #### 仕様変更
553
- - `enable_add_end_to_title` の追加に伴い、タイトルへの完結表示はデフォルトでは
554
- 行わなくなりました
555
- - rawデータや本文データを保存する際に長過ぎるファイル名を一定の長さで端折るよう
556
- になりました
557
- + この影響で、update 時にエラーが出る場合があります。その場合は再度 update を
558
- することで以降は正常に更新することが出来ます(その際に新着と表示されますが
559
- 仕様です)
560
- - `author_comment_style` の追加に伴い、Koboの前書き・後書きの装飾を特別に切り替
561
- える処理を削除しました。`narou s default.author_comment_style=simple` で変更
562
- して下さい
563
- - 行頭で半角スペースで字下げをしてものを全角スペースで置換するようになりました
564
-
565
- #### Bug Fix
566
- - 暁の小説で前書き・後書きがあった場合に正常に取得できなくなっていたのを修正
567
-
568
-
569
- 2.8.1 : 2015/12/10
533
+ 2.8.2 : 2016/02/05
570
534
  ------------------
571
- #### 追加機能
572
- - setting.ini の `title_date_format` に下記の拡張書式を追加しました
573
- + $ns : 小説が掲載されているサイト名
574
- + $nt : 小説種別(短編 or 連載)
575
-
576
- #### 仕様変更
577
- - `convert.filename-to-ncode` でファイル名をNコード化するのに、更新をしなくても
578
- 変換出来るようにしました
535
+ #### HotFix
536
+ - ハーメルンのHTTPS化に対応しました
537
+ + 新しく登録する小説を http でダウンロードしようとすると、ダウンロード後に
538
+ エラーが出るので、https なURLでダウンロードをして下さい
579
539
 
580
540
  *******************************************************************************
581
541
  rdoc_options: []