narou 2.0.2 → 2.1.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 +2 -0
- data/ChangeLog.md +45 -1
- data/README.md +45 -7
- data/lib/command.rb +0 -1
- data/lib/command/convert.rb +49 -7
- data/lib/command/list.rb +2 -5
- data/lib/command/send.rb +49 -6
- data/lib/command/setting.rb +9 -4
- data/lib/command/update.rb +89 -32
- data/lib/converterbase.rb +2 -1
- data/lib/device.rb +16 -2
- data/lib/device/epub.rb +20 -0
- data/lib/device/ibooks.rb +0 -4
- data/lib/device/kindle.rb +20 -0
- data/lib/device/reader.rb +3 -8
- data/lib/helper.rb +19 -0
- data/lib/logger.rb +21 -4
- data/lib/narou.rb +29 -25
- data/lib/novelconverter.rb +1 -3
- data/lib/novelsetting.rb +6 -0
- data/lib/version.rb +1 -1
- data/lib/web/appserver.rb +1 -1
- data/lib/web/helper4web.rb +11 -1
- data/lib/web/public/resources/narou.library.js +15 -8
- data/lib/web/settingmessages.rb +1 -0
- data/lib/web/streaminglogger.rb +16 -0
- data/lib/web/views/help.haml +18 -3
- data/lib/web/views/js/widget.erb +5 -1
- data/narou.gemspec +46 -0
- data/narou.rb +10 -1
- data/spec/logger_spec.rb +35 -1
- metadata +62 -3
- data/lib/command/flag.rb +0 -109
data/lib/web/settingmessages.rb
CHANGED
@@ -7,6 +7,7 @@ module Narou
|
|
7
7
|
# WEB UI > 環境設定画面で表示する各項目の説明
|
8
8
|
# ここになければ元々の説明が表示される
|
9
9
|
SETTING_VARIABLES_WEBUI_MESSAGES = {
|
10
|
+
"convert.multi-device" => "複数の端末用に同時に変換する。deviceよりも優先される。\n端末名をカンマ区切りで入力(" + Device::DEVICES.keys.join(", ") + ")\nただのEPUBを出力したい場合はepubを指定",
|
10
11
|
"device" => "変換、送信対象の端末(" + Device::DEVICES.keys.join(", ") + ")",
|
11
12
|
"difftool" => "Diffで使うツールのパスを指定する\n※WEB UIでは使われません"
|
12
13
|
}
|
data/lib/web/streaminglogger.rb
CHANGED
@@ -25,6 +25,8 @@ end
|
|
25
25
|
class Narou::StreamingLogger < StringIO
|
26
26
|
include Narou::LoggerModule
|
27
27
|
|
28
|
+
attr_reader :push_server
|
29
|
+
|
28
30
|
def initialize(push_server = nil)
|
29
31
|
super()
|
30
32
|
@push_server = push_server
|
@@ -34,6 +36,20 @@ class Narou::StreamingLogger < StringIO
|
|
34
36
|
false
|
35
37
|
end
|
36
38
|
|
39
|
+
def copy_instance
|
40
|
+
self.class.new(@push_server).tap do |obj|
|
41
|
+
obj.silent = silent
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def strip_color(str)
|
46
|
+
if $disable_color
|
47
|
+
str
|
48
|
+
else
|
49
|
+
str.gsub(%r!</?span.*?>!, "")
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
37
53
|
def push_streaming(str)
|
38
54
|
unless @is_silent
|
39
55
|
@push_server.send_all(echo: str) if @push_server
|
data/lib/web/views/help.haml
CHANGED
@@ -5,13 +5,28 @@
|
|
5
5
|
container: "body",
|
6
6
|
});
|
7
7
|
|
8
|
-
var bookmarklet = function(d,e,u) {
|
8
|
+
var bookmarklet = function(d,e,u,o,s) {
|
9
|
+
o=d.createElement("div");
|
10
|
+
o.innerHTML="WEB UI Server: OFFLINE";
|
11
|
+
o.id="narourb-offline";
|
12
|
+
s=o.style;
|
13
|
+
s.position="fixed";
|
14
|
+
s.top=-1000;
|
15
|
+
s.left=0;
|
16
|
+
s.zIndex=9998;
|
17
|
+
s.color="white";
|
18
|
+
s.background="red";
|
19
|
+
d.body.appendChild(o);
|
20
|
+
setTimeout(function(){
|
21
|
+
s.top=0
|
22
|
+
},1000);
|
23
|
+
|
9
24
|
u='#{request.scheme}://#{env["SERVER_NAME"]}:#{env["SERVER_PORT"]}'+
|
10
25
|
'/js/widget.js?mode=download&t='+Date.now();
|
11
26
|
e=d.createElement('script');
|
12
27
|
e.charset='utf-8';
|
13
28
|
e.src=u;
|
14
|
-
d.body.appendChild(e)
|
29
|
+
d.body.appendChild(e)
|
15
30
|
};
|
16
31
|
|
17
32
|
function createBookmarkletStrings(proc) {
|
@@ -44,7 +59,7 @@
|
|
44
59
|
#help-container.container.theme-showcase(role="main")
|
45
60
|
%h2 ブックマークレット
|
46
61
|
%p 小説掲載サイトを表示したまま直接ダウンロード出来るブックマークレットです。<br> |
|
47
|
-
下記のリンクをブックマークに登録して、ダウンロードしたい小説のページで実行して下さい。(WEB UI
|
62
|
+
下記のリンクをブックマークに登録して、ダウンロードしたい小説のページで実行して下さい。(WEB UIサーバ起動中に限ります)<br> |
|
48
63
|
ブックマークバーにドラッグ&ドロップしたり、右クリックからブックマークにいれると簡単です。 |
|
49
64
|
%p
|
50
65
|
%a#bookmarklet(onclick="return false")
|
data/lib/web/views/js/widget.erb
CHANGED
@@ -6,9 +6,13 @@
|
|
6
6
|
}
|
7
7
|
}
|
8
8
|
|
9
|
+
// オフライン表記を先に消しておく
|
10
|
+
var offline = document.getElementById("narourb-offline");
|
11
|
+
offline.parentNode.removeChild(offline);
|
12
|
+
|
9
13
|
var ALLOW_HOSTS = <%= ALLOW_HOSTS.to_s %>;
|
10
14
|
var guard = true;
|
11
|
-
if (typeof ALLOW_HOSTS.
|
15
|
+
if (typeof ALLOW_HOSTS.indexOf === "function") {
|
12
16
|
guard = ALLOW_HOSTS.indexOf(location.hostname) === -1;
|
13
17
|
}
|
14
18
|
else {
|
data/narou.gemspec
CHANGED
@@ -45,6 +45,51 @@ Gem::Specification.new do |gem|
|
|
45
45
|
- `mail` コマンドで送信時にエラーが出る場合がある問題に対応
|
46
46
|
|
47
47
|
|
48
|
+
2.1.0 : 2015/01/19
|
49
|
+
------------------
|
50
|
+
#### 追加機能
|
51
|
+
- `convert.multi-device` オプションが追加されました
|
52
|
+
+ `convert` コマンド使用時に複数のフォーマットへ同時に変換することが出来ます
|
53
|
+
+ `narou s convert.multi-device=kindle,kobo,reader` のようにカンマ区切りで
|
54
|
+
設定します。この設定を有効にした場合、変換時に `device` 設定は無視されます
|
55
|
+
+ `send` コマンド時には通常通り `device` の設定が使用されます
|
56
|
+
+ 普通のEPUBが出力したい場合、端末名として `epub` を指定して下さい
|
57
|
+
- `update.logging` オプションが追加されました
|
58
|
+
+ `update` コマンド使用時にログを保存するようになります
|
59
|
+
+ `narou s update.logging=true` で設定出来ます
|
60
|
+
+ ログはテキストファイルとして `log/` フォルダに保存されます(最新30件まで)。
|
61
|
+
また、 `narou u --log N` コマンドでも確認出来ます(N=1以上の整数)。
|
62
|
+
Nを省略した場合は最新のログが表示されます。短縮する場合は `narou u -l N`
|
63
|
+
- `send.backup-bookmark` オプションが追加されました
|
64
|
+
+ `send` コマンド使用時に端末の栞データを自動でバックアップします(KindlePW系
|
65
|
+
専用。他の端末も栞データの仕様が分かれば対応可能)
|
66
|
+
+ `narou s send.backup-bookmark=true` で設定出来ます
|
67
|
+
+ 一括送信時(`narou send` とだけコマンドを打った時)のみバックアップします
|
68
|
+
+ 上記設定をせずに手動でバックアップする場合は `narou send --backup-bookmark`
|
69
|
+
もしくは `narou send -b` で行います
|
70
|
+
+ バックアップした栞データを復元(端末にコピー)するには
|
71
|
+
`narou send --restore-bookmark` もしくは `narou send -r` で行います
|
72
|
+
- 変換設定に行頭字下げを強制的に行う `enable_force_indent` を追加しました
|
73
|
+
+ enable_auto_indent は作者の意図的な字下げ無しを考慮して、全体的に字下げが
|
74
|
+
行われていない時にのみ字下げをするのに対して、今回のオプションは強制的に
|
75
|
+
字下げを行います。作者の字下げ忘れが多い場合に有効です
|
76
|
+
- WEB UI用ブックマークレットを実行した時にサーバがオフラインかどうか分かるよう
|
77
|
+
になりました。ヘルプ画面からブックマークレットを更新して下さい
|
78
|
+
|
79
|
+
#### 仕様変更
|
80
|
+
- `convert.copy_to` を `convert.copy-to` へ変更しました(表記ゆれの統一の為)
|
81
|
+
+ copy_to も後方互換維持のため残されますが、今後は非推奨になります
|
82
|
+
- `flag` コマンドが削除されました
|
83
|
+
|
84
|
+
#### Bug Fix
|
85
|
+
- WEB UI: リロードしても変換中のプログレスバーが表示されるように修正 #57
|
86
|
+
|
87
|
+
#### その他
|
88
|
+
- 将来的に対応バージョンを上げる予定なので、古いRuby(2.1.0未満)を使用している
|
89
|
+
場合にお知らせを表示するようになりました。当面は1.9.3でも動くままですが、いま
|
90
|
+
のうちにRuby2.1.0以上へのアップグレードをお願いします
|
91
|
+
|
92
|
+
|
48
93
|
narou コマンドのインストール or アップデートが完了しました。
|
49
94
|
詳しい説明は `narou help' コマンドをご覧下さい。
|
50
95
|
|
@@ -70,5 +115,6 @@ narou コマンドのインストール or アップデートが完了しまし
|
|
70
115
|
gem.add_runtime_dependency 'sinatra-contrib', '~> 1.4', '>= 1.4.2'
|
71
116
|
gem.add_runtime_dependency 'sass', '~> 3.4', '>= 3.4.4'
|
72
117
|
gem.add_runtime_dependency 'haml', '~> 4.0', '>= 4.0.5'
|
118
|
+
gem.add_runtime_dependency 'memoist', '~> 0.11.0'
|
73
119
|
end
|
74
120
|
|
data/narou.rb
CHANGED
@@ -17,10 +17,11 @@ if ARGV.delete("--time")
|
|
17
17
|
end
|
18
18
|
|
19
19
|
require_relative "lib/inventory"
|
20
|
+
global = Inventory.load("global_setting", :global)
|
20
21
|
$display_backtrace = ARGV.delete("--backtrace")
|
21
22
|
$display_backtrace ||= $debug
|
22
23
|
$disable_color = ARGV.delete("--no-color")
|
23
|
-
$disable_color ||=
|
24
|
+
$disable_color ||= global["no-color"]
|
24
25
|
|
25
26
|
require_relative "lib/logger"
|
26
27
|
require_relative "lib/version"
|
@@ -28,6 +29,14 @@ require_relative "lib/commandline"
|
|
28
29
|
|
29
30
|
rescue_level = $debug ? Exception : StandardError
|
30
31
|
|
32
|
+
if !global["dismiss-notice"] && RUBY_VERSION < "2.1.0"
|
33
|
+
puts <<-EOS.termcolor
|
34
|
+
<cyan><bold>[Notice]
|
35
|
+
ご使用のRubyのバージョンが#{RUBY_VERSION}と古いままです。近い将来Ruby2.1.0以上を必須とする予定なので準備をお願いします
|
36
|
+
このお知らせを消すには narou s dismiss-notice=true を実行して下さい</bold></cyan>
|
37
|
+
EOS
|
38
|
+
end
|
39
|
+
|
31
40
|
begin
|
32
41
|
CommandLine.run(ARGV.map { |v| v.dup })
|
33
42
|
rescue SystemExit => e
|
data/spec/logger_spec.rb
CHANGED
@@ -46,7 +46,41 @@ describe Narou::Logger do
|
|
46
46
|
|
47
47
|
context "with ansicolor NON strip option" do
|
48
48
|
it do
|
49
|
-
expect($stdout.capture(false) { puts "\e[31mhello\e[0m" }).to eq "\e[31mhello\e[0m\n"
|
49
|
+
expect($stdout.capture(ansicolor_strip: false) { puts "\e[31mhello\e[0m" }).to eq "\e[31mhello\e[0m\n"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context "インスタンスを作成してキャプチャ" do
|
54
|
+
it do
|
55
|
+
logger = Narou::Logger.new
|
56
|
+
expect(logger.capture { print "world" }).to eq "world"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context "quiet=falseでもsilenceで囲めば出力されないか" do
|
61
|
+
it do
|
62
|
+
$stdout.silence do
|
63
|
+
expect($stdout.capture(quiet: false) { print "hello world" }).to eq "hello world"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context "多段 capture" do
|
69
|
+
it do
|
70
|
+
expect($stdout.capture {
|
71
|
+
print "foo"
|
72
|
+
expect($stdout.capture { print "bar" }).to eq "bar"
|
73
|
+
}).to eq "foo"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
context "現在の状態を取得" do
|
78
|
+
it "キャプチャ中でなければ偽" do
|
79
|
+
expect($stdout.capturing).to eq false
|
80
|
+
end
|
81
|
+
|
82
|
+
it "キャプチャ中なら真" do
|
83
|
+
$stdout.capture { expect($stdout.capturing).to eq true }
|
50
84
|
end
|
51
85
|
end
|
52
86
|
end
|
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.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- whiteleaf7
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: termcolorlight
|
@@ -178,6 +178,20 @@ dependencies:
|
|
178
178
|
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: 4.0.5
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: memoist
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 0.11.0
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 0.11.0
|
181
195
|
description: "小説家になろうで公開されている小説の管理、及び電子書籍データへの変換を支援します。縦書用に特化されており、横書き用に特化されたWEB小説を違和感なく縦書で読むことが出来るようになります。"
|
182
196
|
email:
|
183
197
|
- 2nd.leaf@gmail.com
|
@@ -204,7 +218,6 @@ files:
|
|
204
218
|
- lib/command/convert.rb
|
205
219
|
- lib/command/diff.rb
|
206
220
|
- lib/command/download.rb
|
207
|
-
- lib/command/flag.rb
|
208
221
|
- lib/command/folder.rb
|
209
222
|
- lib/command/freeze.rb
|
210
223
|
- lib/command/help.rb
|
@@ -224,6 +237,7 @@ files:
|
|
224
237
|
- lib/converterbase.rb
|
225
238
|
- lib/database.rb
|
226
239
|
- lib/device.rb
|
240
|
+
- lib/device/epub.rb
|
227
241
|
- lib/device/ibooks.rb
|
228
242
|
- lib/device/ibunko.rb
|
229
243
|
- lib/device/kindle.rb
|
@@ -407,6 +421,51 @@ post_install_message: |
|
|
407
421
|
- `mail` コマンドで送信時にエラーが出る場合がある問題に対応
|
408
422
|
|
409
423
|
|
424
|
+
2.1.0 : 2015/01/19
|
425
|
+
------------------
|
426
|
+
#### 追加機能
|
427
|
+
- `convert.multi-device` オプションが追加されました
|
428
|
+
+ `convert` コマンド使用時に複数のフォーマットへ同時に変換することが出来ます
|
429
|
+
+ `narou s convert.multi-device=kindle,kobo,reader` のようにカンマ区切りで
|
430
|
+
設定します。この設定を有効にした場合、変換時に `device` 設定は無視されます
|
431
|
+
+ `send` コマンド時には通常通り `device` の設定が使用されます
|
432
|
+
+ 普通のEPUBが出力したい場合、端末名として `epub` を指定して下さい
|
433
|
+
- `update.logging` オプションが追加されました
|
434
|
+
+ `update` コマンド使用時にログを保存するようになります
|
435
|
+
+ `narou s update.logging=true` で設定出来ます
|
436
|
+
+ ログはテキストファイルとして `log/` フォルダに保存されます(最新30件まで)。
|
437
|
+
また、 `narou u --log N` コマンドでも確認出来ます(N=1以上の整数)。
|
438
|
+
Nを省略した場合は最新のログが表示されます。短縮する場合は `narou u -l N`
|
439
|
+
- `send.backup-bookmark` オプションが追加されました
|
440
|
+
+ `send` コマンド使用時に端末の栞データを自動でバックアップします(KindlePW系
|
441
|
+
専用。他の端末も栞データの仕様が分かれば対応可能)
|
442
|
+
+ `narou s send.backup-bookmark=true` で設定出来ます
|
443
|
+
+ 一括送信時(`narou send` とだけコマンドを打った時)のみバックアップします
|
444
|
+
+ 上記設定をせずに手動でバックアップする場合は `narou send --backup-bookmark`
|
445
|
+
もしくは `narou send -b` で行います
|
446
|
+
+ バックアップした栞データを復元(端末にコピー)するには
|
447
|
+
`narou send --restore-bookmark` もしくは `narou send -r` で行います
|
448
|
+
- 変換設定に行頭字下げを強制的に行う `enable_force_indent` を追加しました
|
449
|
+
+ enable_auto_indent は作者の意図的な字下げ無しを考慮して、全体的に字下げが
|
450
|
+
行われていない時にのみ字下げをするのに対して、今回のオプションは強制的に
|
451
|
+
字下げを行います。作者の字下げ忘れが多い場合に有効です
|
452
|
+
- WEB UI用ブックマークレットを実行した時にサーバがオフラインかどうか分かるよう
|
453
|
+
になりました。ヘルプ画面からブックマークレットを更新して下さい
|
454
|
+
|
455
|
+
#### 仕様変更
|
456
|
+
- `convert.copy_to` を `convert.copy-to` へ変更しました(表記ゆれの統一の為)
|
457
|
+
+ copy_to も後方互換維持のため残されますが、今後は非推奨になります
|
458
|
+
- `flag` コマンドが削除されました
|
459
|
+
|
460
|
+
#### Bug Fix
|
461
|
+
- WEB UI: リロードしても変換中のプログレスバーが表示されるように修正 #57
|
462
|
+
|
463
|
+
#### その他
|
464
|
+
- 将来的に対応バージョンを上げる予定なので、古いRuby(2.1.0未満)を使用している
|
465
|
+
場合にお知らせを表示するようになりました。当面は1.9.3でも動くままですが、いま
|
466
|
+
のうちにRuby2.1.0以上へのアップグレードをお願いします
|
467
|
+
|
468
|
+
|
410
469
|
narou コマンドのインストール or アップデートが完了しました。
|
411
470
|
詳しい説明は `narou help' コマンドをご覧下さい。
|
412
471
|
|
data/lib/command/flag.rb
DELETED
@@ -1,109 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
#
|
3
|
-
# Copyright 2013 whiteleaf. All rights reserved.
|
4
|
-
#
|
5
|
-
|
6
|
-
require_relative "../database"
|
7
|
-
require_relative "../downloader"
|
8
|
-
require_relative "../inventory"
|
9
|
-
|
10
|
-
module Command
|
11
|
-
class Flag < CommandBase
|
12
|
-
ATTRIBUTES = %w(end delete)
|
13
|
-
|
14
|
-
def self.oneline_help
|
15
|
-
"小説の各種フラグを設定します"
|
16
|
-
end
|
17
|
-
|
18
|
-
def initialize
|
19
|
-
super("<attribute> <target> [<target2> ...]")
|
20
|
-
@opt.separator <<-EOS.termcolor
|
21
|
-
|
22
|
-
<bold><red>非推奨のコマンドです。tagコマンドを使用して下さい
|
23
|
-
flagコマンドはv.1.7.0で廃止予定です
|
24
|
-
|
25
|
-
flagデータをtagデータに移行するには、
|
26
|
-
narou flag --convert-tag
|
27
|
-
を実行して下さい</red></bold>
|
28
|
-
|
29
|
-
・指定した小説に各種フラグを設定します
|
30
|
-
・再実行で解除
|
31
|
-
・--on, --off オプションを付けることで強制設定可能
|
32
|
-
・現在指定可能なフラグ
|
33
|
-
end : 小説が完結状態
|
34
|
-
delete: 削除された状態
|
35
|
-
|
36
|
-
Examples:
|
37
|
-
narou flag end 100 # ID:100の小説を完結状態にする
|
38
|
-
narou flag end --on 100 # 現在の状態に関わらず完結状態にする
|
39
|
-
|
40
|
-
Options:
|
41
|
-
EOS
|
42
|
-
@opt.on("--on", "強制的にフラグを立てる") {
|
43
|
-
@options["on"] = true
|
44
|
-
}
|
45
|
-
@opt.on("--off", "強制的にフラグをはずす") {
|
46
|
-
@options["off"] = true
|
47
|
-
}
|
48
|
-
@opt.on("--convert-tag", "flagデータをtagデータに移行します") {
|
49
|
-
modify = false
|
50
|
-
database = Database.instance
|
51
|
-
database.each do |id, data|
|
52
|
-
if data["flags"]
|
53
|
-
tags = data["flags"].keys
|
54
|
-
tags << "404" if tags.delete("delete")
|
55
|
-
unless tags.empty?
|
56
|
-
Tag.execute!([id, "--add", tags.join(" "), "--color", "white"])
|
57
|
-
end
|
58
|
-
puts "-" * 70
|
59
|
-
data.delete("flags")
|
60
|
-
modify = true
|
61
|
-
end
|
62
|
-
end
|
63
|
-
if modify
|
64
|
-
database.save_database
|
65
|
-
puts "移行が完了しました"
|
66
|
-
end
|
67
|
-
exit 0
|
68
|
-
}
|
69
|
-
end
|
70
|
-
|
71
|
-
def execute(argv)
|
72
|
-
super
|
73
|
-
if argv.empty?
|
74
|
-
puts @opt.help
|
75
|
-
return
|
76
|
-
end
|
77
|
-
attribute = (argv.shift || "").downcase
|
78
|
-
unless ATTRIBUTES.include?(attribute)
|
79
|
-
error "有効なフラグを指定して下さい\n指定可能なフラグ:#{ATTRIBUTES.join(', ')}"
|
80
|
-
exit Narou::EXIT_ERROR_CODE
|
81
|
-
end
|
82
|
-
if argv.length < 1
|
83
|
-
error "対象小説を指定して下さい"
|
84
|
-
exit Narou::EXIT_ERROR_CODE
|
85
|
-
end
|
86
|
-
database = Database.instance
|
87
|
-
argv.each do |target|
|
88
|
-
data = Downloader.get_data_by_target(target)
|
89
|
-
unless data
|
90
|
-
error "#{target} は存在しません"
|
91
|
-
next
|
92
|
-
end
|
93
|
-
flags = data["flags"] || {}
|
94
|
-
flag = !flags[attribute]
|
95
|
-
flag = true if @options["on"]
|
96
|
-
flag = false if @options["off"]
|
97
|
-
flags[attribute] = flag
|
98
|
-
if flag
|
99
|
-
puts "#{data['title']} の #{attribute} フラグを立てました"
|
100
|
-
else
|
101
|
-
flags.delete(attribute)
|
102
|
-
puts "#{data['title']} から #{attribute} フラグをはずしました"
|
103
|
-
end
|
104
|
-
database[data["id"]]["flags"] = flags
|
105
|
-
end
|
106
|
-
database.save_database
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|