narou 2.9.5 → 3.0.0
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 +4 -4
- data/.gitignore +7 -0
- data/.reek +34 -0
- data/.rspec +1 -0
- data/.rubocop.yml +9 -1
- data/ChangeLog.md +90 -0
- data/Gemfile +4 -0
- data/README.md +85 -8
- data/lib/command/convert.rb +1 -1
- data/lib/command/list.rb +59 -73
- data/lib/command/list/novel_decorator.rb +107 -0
- data/lib/command/send.rb +23 -13
- data/lib/command/setting.rb +5 -1
- data/lib/command/update.rb +104 -138
- data/lib/command/update/general_lastup_updater.rb +105 -0
- data/lib/command/update/interval.rb +29 -0
- data/lib/command/web.rb +1 -1
- data/lib/commandbase.rb +24 -17
- data/lib/converterbase.rb +10 -5
- data/lib/database.rb +16 -5
- data/lib/device.rb +5 -1
- data/lib/device/library/linux.rb +68 -8
- data/lib/downloader.rb +24 -23
- data/lib/extension.rb +16 -3
- data/lib/helper.rb +26 -3
- data/lib/html.rb +1 -1
- data/lib/inspector.rb +9 -0
- data/lib/inventory.rb +20 -6
- data/lib/logger.rb +8 -2
- data/lib/mailer.rb +2 -1
- data/lib/narou.rb +28 -18
- data/lib/narou/api.rb +62 -31
- data/lib/novelconverter.rb +8 -1
- data/lib/novelinfo.rb +8 -7
- data/lib/novelsetting.rb +1 -0
- data/lib/progressbar.rb +6 -2
- data/lib/sitesetting.rb +2 -1
- data/lib/version.rb +1 -1
- data/lib/web/appserver.rb +72 -9
- data/lib/web/public/resources/narou.library.js +130 -13
- data/lib/web/public/resources/narou.ui.js +96 -9
- data/lib/web/settingmessages.rb +2 -1
- data/lib/web/views/_about.haml +15 -2
- data/lib/web/views/index.haml +12 -3
- data/lib/web/views/layout.haml +2 -1
- data/lib/web/views/style.scss +12 -0
- data/narou.gemspec +88 -11
- data/narou.rb +7 -1
- data/preset/mail_setting.yaml +40 -6
- data/webnovel/kakuyomu.jp.yaml +8 -8
- metadata +95 -139
- data/spec/README.txt +0 -4
- data/spec/convert_spec.rb +0 -119
- data/spec/converterbase_spec.rb +0 -298
- data/spec/data/convert_test/auto_indent/correct_test_auto_indent.txt +0 -28
- data/spec/data/convert_test/auto_indent/test_auto_indent.txt +0 -32
- data/spec/data/convert_test/auto_join_bracket/correct_test_auto_join_bracket.txt +0 -24
- data/spec/data/convert_test/auto_join_bracket/test_auto_join_bracket.txt +0 -28
- data/spec/data/convert_test/auto_join_line/correct_test_auto_join_line.txt +0 -43
- data/spec/data/convert_test/auto_join_line/test_auto_join_line.txt +0 -59
- data/spec/data/convert_test/convert_page_break/correct_test_convert_page_break.txt +0 -22
- data/spec/data/convert_test/convert_page_break/setting.ini +0 -5
- data/spec/data/convert_test/convert_page_break/test_convert_page_break.txt +0 -60
- data/spec/data/convert_test/double_dash_to_image/correct_test_double_dash_to_image.txt +0 -14
- data/spec/data/convert_test/double_dash_to_image/setting.ini +0 -1
- data/spec/data/convert_test/double_dash_to_image/test_double_dash_to_image.txt +0 -12
- data/spec/data/convert_test/english/correct_test_english.txt +0 -27
- data/spec/data/convert_test/english/test_english.txt +0 -27
- data/spec/data/convert_test/force_indent_special_chapter/correct_test_force_indent_special_chapter.txt +0 -64
- data/spec/data/convert_test/force_indent_special_chapter/test_force_indent_special_chapter.txt +0 -61
- data/spec/data/convert_test/horizontal_ellipsis/correct_test_horizontal_ellipsis.txt +0 -53
- data/spec/data/convert_test/horizontal_ellipsis/test_horizontal_ellipsis.txt +0 -57
- data/spec/data/convert_test/insert_separator/correct_test_insert_separator.txt +0 -13
- data/spec/data/convert_test/insert_separator/setting.ini +0 -3
- data/spec/data/convert_test/insert_separator/test_insert_separator.txt +0 -12
- data/spec/data/convert_test/insert_separator_and_replace_txt/correct_test_insert_separator_and_replace_txt.txt +0 -12
- data/spec/data/convert_test/insert_separator_and_replace_txt/setting.ini +0 -3
- data/spec/data/convert_test/insert_separator_and_replace_txt/test_insert_separator_and_replace_txt.txt +0 -11
- data/spec/data/convert_test/kanji_num/correct_test_kanji_num.txt +0 -50
- data/spec/data/convert_test/kanji_num/test_kanji_num.txt +0 -56
- data/spec/data/convert_test/nonokagi/correct_test_nonokagi.txt +0 -30
- data/spec/data/convert_test/nonokagi/test_nonokagi.txt +0 -34
- data/spec/data/convert_test/replace/correct_test_replace.txt +0 -13
- data/spec/data/convert_test/replace/test_replace.txt +0 -14
- data/spec/data/convert_test/ruby/correct_test_ruby.txt +0 -161
- data/spec/data/convert_test/ruby/test_ruby.txt +0 -205
- data/spec/data/convert_test/ruby_youon/correct_test_ruby_youon.txt +0 -13
- data/spec/data/convert_test/ruby_youon/setting.ini +0 -2
- data/spec/data/convert_test/ruby_youon/test_ruby_youon.txt +0 -14
- data/spec/data/convert_test/sesame/correct_test_sesame.txt +0 -41
- data/spec/data/convert_test/sesame/test_sesame.txt +0 -52
- data/spec/data/convert_test/to_odd_leader/correct_test_to_odd_leader.txt +0 -21
- data/spec/data/convert_test/to_odd_leader/test_to_odd_leader.txt +0 -21
- data/spec/data/html_test.html +0 -5
- data/spec/data/html_test.txt +0 -4
- data/spec/data/test.ini +0 -10
- data/spec/device_spec.rb +0 -39
- data/spec/downloader_spec.rb +0 -37
- data/spec/eventable_spec.rb +0 -172
- data/spec/exit_code_spec.rb +0 -67
- data/spec/generator/convert_spec_gen.rb +0 -96
- data/spec/generator/num_to_kanji_test_gen.rb +0 -33
- data/spec/helper_spec.rb +0 -90
- data/spec/html_spec.rb +0 -83
- data/spec/ini_spec.rb +0 -145
- data/spec/input_spec.rb +0 -76
- data/spec/logger_spec.rb +0 -92
- data/spec/novelinfo_spec.rb +0 -15
- data/spec/novelsetting_spec.rb +0 -35
- data/spec/num_to_kanji_spec.rb +0 -2482
- data/spec/spec_helper.rb +0 -16
- data/spec/worker_spec.rb +0 -75
@@ -1,41 +0,0 @@
|
|
1
|
-
test_sesame
|
2
|
-
whiteleaf
|
3
|
-
|
4
|
-
[#改ページ]
|
5
|
-
|
6
|
-
[#3字下げ][#中見出し]傍点テスト[#中見出し終わり]
|
7
|
-
|
8
|
-
|
9
|
-
傍点にならないパターン
|
10
|
-
|
11
|
-
[#二分アキ](………………)
|
12
|
-
[#二分アキ](………………)
|
13
|
-
[#二分アキ](………………)
|
14
|
-
[#二分アキ](…………)
|
15
|
-
なんということだ(…………)
|
16
|
-
|
17
|
-
漢字※[#始め二重山括弧]……※[#終わり二重山括弧]
|
18
|
-
|
19
|
-
|
20
|
-
傍点になるパターン
|
21
|
-
|
22
|
-
次の漢字には[#傍点]圏点[#傍点終わり] 次の漢字には[#傍点]圏点[#傍点終わり]
|
23
|
-
次の漢字には[#傍点]圏点[#傍点終わり]次の漢字には[#傍点]圏点[#傍点終わり]
|
24
|
-
|
25
|
-
[#傍点]この文章には圏点[#傍点終わり] [#傍点]この文章には圏点[#傍点終わり]
|
26
|
-
[#傍点]この文章には圏点[#傍点終わり][#傍点]この文章には圏点[#傍点終わり]
|
27
|
-
|
28
|
-
中黒の文字数が合っていない場合の[#傍点]圏点化[#傍点終わり]
|
29
|
-
中黒の文字数が合っていない場合の[#傍点]圏点化[#傍点終わり]
|
30
|
-
中黒の文字数が[#傍点]合っていない場合の圏点化[#傍点終わり]
|
31
|
-
|
32
|
-
[#二分アキ]※[#始め二重山括弧]二重山括弧の中での[#傍点]圏点化[#傍点終わり]です※[#終わり二重山括弧]
|
33
|
-
[#二分アキ](括弧の中での[#傍点]圏点化[#傍点終わり]です)
|
34
|
-
|
35
|
-
読点で圏点(、) NG
|
36
|
-
読点で※[#縦線]圏点(、) NG
|
37
|
-
※[#縦線]読点で圏点(、) NG
|
38
|
-
|
39
|
-
読点で[#傍点]圏点[#傍点終わり]
|
40
|
-
読点で[#傍点]圏点[#傍点終わり]
|
41
|
-
[#傍点]読点で圏点[#傍点終わり]
|
@@ -1,52 +0,0 @@
|
|
1
|
-
test_sesame
|
2
|
-
whiteleaf
|
3
|
-
|
4
|
-
[#改ページ]
|
5
|
-
傍点テスト
|
6
|
-
|
7
|
-
|
8
|
-
傍点にならないパターン
|
9
|
-
|
10
|
-
|
11
|
-
(・・・・・・・・・・・・・・)
|
12
|
-
|
13
|
-
(………………)
|
14
|
-
|
15
|
-
(……………)
|
16
|
-
(・・・・・・・・・・・)
|
17
|
-
なんということだ(・・・・・・・・)
|
18
|
-
|
19
|
-
|
20
|
-
漢字|《・・・》
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
傍点になるパターン
|
26
|
-
|
27
|
-
|
28
|
-
次の漢字には圏点《・・・・・・》 次の漢字には圏点(・・・・・・)
|
29
|
-
次の漢字には圏点《・・・・・・》次の漢字には圏点(・・・・・・)
|
30
|
-
|
31
|
-
|
32
|
-
|この文章には圏点《・・・・・・》 |この文章には圏点《・・・・・・》
|
33
|
-
|この文章には圏点《・・・・・・》|この文章には圏点《・・・・・・》
|
34
|
-
|
35
|
-
|
36
|
-
中黒の文字数が合っていない場合の圏点化《・・・・・・・》
|
37
|
-
中黒の文字数が合っていない場合の|圏点化《・・・・・・・》
|
38
|
-
中黒の文字数が|合っていない場合の圏点化《・・・》
|
39
|
-
|
40
|
-
|
41
|
-
《二重山括弧の中での|圏点化《・・・》です》
|
42
|
-
(括弧の中での|圏点化《・・・》です)
|
43
|
-
|
44
|
-
|
45
|
-
読点で圏点(、、) NG
|
46
|
-
読点で|圏点(、、) NG
|
47
|
-
|読点で圏点(、、) NG
|
48
|
-
|
49
|
-
|
50
|
-
読点で圏点《、、》
|
51
|
-
読点で|圏点《、、》
|
52
|
-
|読点で圏点《、、》
|
data/spec/data/html_test.html
DELETED
data/spec/data/html_test.txt
DELETED
data/spec/data/test.ini
DELETED
data/spec/device_spec.rb
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
# -*- Encoding: utf-8 -*-
|
2
|
-
#
|
3
|
-
# Copyright 2013 whiteleaf. All rights reserved.
|
4
|
-
#
|
5
|
-
|
6
|
-
require_relative "../lib/device"
|
7
|
-
|
8
|
-
if Helper.os_windows?
|
9
|
-
describe "Windowsの場合" do
|
10
|
-
describe Device::Library::Windows do
|
11
|
-
it "Windows7_OSなボリュームネームのドライブは C:/" do
|
12
|
-
module Dummy
|
13
|
-
extend Device::Library::Windows
|
14
|
-
end
|
15
|
-
expect(Dummy.get_device_root_dir("Windows7_OS")).to eq("C:/")
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
describe "Kindle" do
|
20
|
-
before do
|
21
|
-
@device = Device.create("kindle")
|
22
|
-
end
|
23
|
-
|
24
|
-
it "は存在するべき" do
|
25
|
-
expect(Device.exists?("kindle")).to be_truthy
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
describe "Kobo" do
|
30
|
-
before do
|
31
|
-
@device = Device.create("kobo")
|
32
|
-
end
|
33
|
-
|
34
|
-
it "は存在するべき" do
|
35
|
-
expect(Device.exists?("kobo")).to be_truthy
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
data/spec/downloader_spec.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
# -*- Encoding: utf-8 -*-
|
2
|
-
#
|
3
|
-
# Copyright 2013 whiteleaf. All rights reserved.
|
4
|
-
#
|
5
|
-
|
6
|
-
require_relative "../lib/downloader"
|
7
|
-
|
8
|
-
describe Downloader do
|
9
|
-
describe ".create_subdirecotry_name" do
|
10
|
-
context "小説家になろうのタイトルが渡された場合" do
|
11
|
-
it do
|
12
|
-
expect(Downloader.create_subdirecotry_name("n9669bk 無職転生 - 異世界行ったら本気だす -")).to eq "96"
|
13
|
-
end
|
14
|
-
|
15
|
-
it do
|
16
|
-
expect(Downloader.create_subdirecotry_name("n8725k ログ・ホライズン")).to eq "87"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
context "なろう以外のタイトルが渡された場合" do
|
21
|
-
it do
|
22
|
-
expect(Downloader.create_subdirecotry_name("15041 とある能力の代償")).to eq "15"
|
23
|
-
end
|
24
|
-
|
25
|
-
it do
|
26
|
-
expect(Downloader.create_subdirecotry_name("40151 異界渡りの魔法使い")).to eq "40"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
context "1文字のタイトルが渡された場合" do
|
31
|
-
it { expect(Downloader.create_subdirecotry_name("n")).to eq "" }
|
32
|
-
it { expect(Downloader.create_subdirecotry_name("1")).to eq "1" }
|
33
|
-
it { expect(Downloader.create_subdirecotry_name("a")).to eq "a" }
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
data/spec/eventable_spec.rb
DELETED
@@ -1,172 +0,0 @@
|
|
1
|
-
# -*- Encoding: utf-8 -*-
|
2
|
-
#
|
3
|
-
# Copyright 2013 whiteleaf. All rights reserved.
|
4
|
-
#
|
5
|
-
|
6
|
-
module Narou end
|
7
|
-
require_relative "../lib/eventable"
|
8
|
-
|
9
|
-
class Dummy
|
10
|
-
include Narou::Eventable
|
11
|
-
end
|
12
|
-
|
13
|
-
describe Narou::Eventable do
|
14
|
-
context "when an event exist" do
|
15
|
-
before do
|
16
|
-
@temp1 = 0
|
17
|
-
Dummy.add_event_listener(:regist_new_book) do
|
18
|
-
@temp1 = 1
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should triggered event" do
|
23
|
-
Dummy.trigger_event(:regist_new_book)
|
24
|
-
expect(@temp1).to eq 1
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
context "when multi events exist" do
|
29
|
-
before do
|
30
|
-
@temp1 = 0
|
31
|
-
Dummy.add_event_listener(:temp_add_event) do
|
32
|
-
@temp1 += 1
|
33
|
-
end
|
34
|
-
Dummy.add_event_listener(:temp_add_event) do
|
35
|
-
@temp1 += 1
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
it "should be @temp1 eq 2" do
|
40
|
-
Dummy.trigger_event(:temp_add_event)
|
41
|
-
expect(@temp1).to eq 2
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
context "when give arguments" do
|
46
|
-
it do
|
47
|
-
Dummy.add_event_listener(:give_argument) do |arg|
|
48
|
-
expect(arg).to eq 0
|
49
|
-
end
|
50
|
-
Dummy.trigger_event(:give_arguments, 0)
|
51
|
-
end
|
52
|
-
|
53
|
-
it do
|
54
|
-
Dummy.add_event_listener(:give_arguments) do |arg1, arg2|
|
55
|
-
expect(arg1).to eq 1
|
56
|
-
expect(arg2).to eq :two
|
57
|
-
end
|
58
|
-
Dummy.trigger_event(:give_arguments, 1, :two)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
context "without block" do
|
63
|
-
it "should be raise error" do
|
64
|
-
expect { Dummy.add_event_listener(:test1) }.to raise_error(Narou::Eventable::NonBlockError)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
context "if do not register events yet" do
|
69
|
-
it "do nothing" do
|
70
|
-
expect { Dummy.trigger_event(:dont_registered_event) }.not_to raise_error
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
context "when call #add_event_listener and .add_event_listener" do
|
75
|
-
before do
|
76
|
-
@anser = nil
|
77
|
-
@dummy = Dummy.new
|
78
|
-
@dummy.add_event_listener(:instance_or_class) do
|
79
|
-
@anser = :instance
|
80
|
-
end
|
81
|
-
Dummy.add_event_listener(:instance_or_class) do
|
82
|
-
@anser = :class
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
it "instance method is called" do
|
87
|
-
@dummy.trigger_event(:instance_or_class)
|
88
|
-
expect(@anser).to eq :instance
|
89
|
-
end
|
90
|
-
|
91
|
-
it "class method is called" do
|
92
|
-
Dummy.trigger_event(:instance_or_class)
|
93
|
-
expect(@anser).to eq :class
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
context "multi call" do
|
98
|
-
before do
|
99
|
-
@state = 0
|
100
|
-
@dummy = Dummy.new
|
101
|
-
@dummy.add_event_listener(:multi) do
|
102
|
-
@state += 1
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
it do
|
107
|
-
@dummy.trigger_event(:multi)
|
108
|
-
expect(@state).to eq 1
|
109
|
-
@dummy.trigger_event(:multi)
|
110
|
-
expect(@state).to eq 2
|
111
|
-
@dummy.trigger_event(:multi)
|
112
|
-
expect(@state).to eq 3
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
context "#remove_event_listener" do
|
117
|
-
before do
|
118
|
-
@state = 100
|
119
|
-
@dummy = Dummy.new
|
120
|
-
end
|
121
|
-
|
122
|
-
context "remove all events" do
|
123
|
-
before do
|
124
|
-
@dummy.add_event_listener(:inc_state) do
|
125
|
-
@state += 200
|
126
|
-
end
|
127
|
-
@dummy.add_event_listener(:inc_state) do
|
128
|
-
@state += 200
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
it "@state should be 100" do
|
133
|
-
@dummy.remove_event_listener(:inc_state)
|
134
|
-
@dummy.trigger_event(:inc_state)
|
135
|
-
expect(@state).to eq 100
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
context "remove specify event" do
|
140
|
-
before do
|
141
|
-
@inc_100 = -> { @state += 100 }
|
142
|
-
@inc_200 = -> { @state += 200 }
|
143
|
-
@dummy.add_event_listener(:inc_state2, &@inc_100)
|
144
|
-
@dummy.add_event_listener(:inc_state2, &@inc_200)
|
145
|
-
end
|
146
|
-
|
147
|
-
it "@state should be 300" do
|
148
|
-
@dummy.remove_event_listener(:inc_state2, &@inc_100)
|
149
|
-
@dummy.trigger_event(:inc_state2)
|
150
|
-
expect(@state).to eq 300
|
151
|
-
end
|
152
|
-
end
|
153
|
-
end
|
154
|
-
|
155
|
-
context "#one" do
|
156
|
-
before do
|
157
|
-
@state = 0
|
158
|
-
@dummy = Dummy.new
|
159
|
-
@dummy.one(:one_event) do
|
160
|
-
@state += 1
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
it "@state should be 1" do
|
165
|
-
@dummy.trigger(:one_event)
|
166
|
-
expect(@state).to eq 1
|
167
|
-
@dummy.trigger(:one_event)
|
168
|
-
expect(@state).to eq 1
|
169
|
-
end
|
170
|
-
end
|
171
|
-
end
|
172
|
-
|