kindai 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +4 -0
- data/README.md +98 -0
- data/VERSION +1 -1
- data/kindai.gemspec +5 -4
- data/lib/kindai/book.rb +1 -20
- data/lib/kindai/searcher.rb +12 -12
- data/spec/book_spec.rb +1 -19
- metadata +6 -5
- data/README.rdoc +0 -88
data/.travis.yml
ADDED
data/README.md
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
# kindai.rb [](https://travis-ci.org/hitode909/kindairb)
|
2
|
+
|
3
|
+
## 概要
|
4
|
+
|
5
|
+
近代デジタルライブラリーから画像をダウンロードします.
|
6
|
+
|
7
|
+
## インストール
|
8
|
+
|
9
|
+
RubyGemsからインストールできます.
|
10
|
+
|
11
|
+
```
|
12
|
+
gem install kindai
|
13
|
+
```
|
14
|
+
|
15
|
+
## 使い方
|
16
|
+
|
17
|
+
gemをインストールすると,kindai.rbというコマンドがインストールされます.
|
18
|
+
|
19
|
+
起動時の引数に,ダウンロードしたい本の URL を指定します.スペース区切りで複数指定できます.
|
20
|
+
|
21
|
+
```
|
22
|
+
kindai.rb http://kindai.ndl.go.jp/info:ndljp/pid/922693
|
23
|
+
```
|
24
|
+
|
25
|
+
URL の代わりに検索ワードを指定すると,ヒットした本をまとめてダウンロードします.AND検索もできます.
|
26
|
+
|
27
|
+
```
|
28
|
+
kindai.rb 調理
|
29
|
+
kindai.rb "松茸 調理"
|
30
|
+
```
|
31
|
+
|
32
|
+
--output オプションで,保存先を指定できます.指定したディレクトリの下に,書名のディレクトリができます.
|
33
|
+
|
34
|
+
```
|
35
|
+
kindai.rb http://kindai.ndl.go.jp/info:ndljp/pid/922693 --output ~/Documents/
|
36
|
+
```
|
37
|
+
|
38
|
+
## 本の加工(自動)
|
39
|
+
|
40
|
+
ダウンロードした本は自動的にトリミングされ,trim/ディレクトリに格納されます.トリミング情報は自動的に共有され,次に同じ本をダウンロードしたときや,他のひとが同じ本をダウンロードしたときに再利用されます.
|
41
|
+
|
42
|
+
起動時の引数で,ダウンロードした本を iPhone 用と Kindle 用に加工することができます.
|
43
|
+
|
44
|
+
--publish_iphone オプションで,iPhone用のファイルを作ります.
|
45
|
+
--publish_kindle オプションで,Kindle用のファイルを作ります.
|
46
|
+
|
47
|
+
両方指定すると,以下のようなファイル構成になります.
|
48
|
+
|
49
|
+
```
|
50
|
+
正義熱血社 - 正義の叫
|
51
|
+
├── original
|
52
|
+
│ ├── 001.jpg
|
53
|
+
│ ├── 002.jpg
|
54
|
+
│ ├── 003.jpg
|
55
|
+
(中略)
|
56
|
+
│ └── 020.jpg
|
57
|
+
├── trim
|
58
|
+
│ ├── 001.jpg
|
59
|
+
│ ├── 002.jpg
|
60
|
+
│ ├── 003.jpg
|
61
|
+
(中略)
|
62
|
+
│ └── 020.jpg
|
63
|
+
├── 正義熱血社 - 正義の叫_iphone.zip
|
64
|
+
└── 正義熱血社 - 正義の叫_kindle.zip
|
65
|
+
```
|
66
|
+
|
67
|
+
- original/以下には加工前の画像が入ります.
|
68
|
+
- trim/以下にはトリミングして余白を取り除いた画像が入ります.パソコンで読むのに適しています.
|
69
|
+
- _iphone.zipは,iPhoneの画面サイズ(1280x960)にリサイズされた見開き画像のzipファイルです.Comic Glassで読むのに適しています.
|
70
|
+
- _kindle.zipは,Kindle3の画面サイズ(600x800)にリサイズされ,1ページずつに裁断された画像のzipファイルです.
|
71
|
+
|
72
|
+
--no_trimmingオプションが指定されたときは,ダウンロードだけを行い,トリミングや加工を行いません.
|
73
|
+
|
74
|
+
## 本の加工(手動)
|
75
|
+
|
76
|
+
トリミング位置は自動的に決められますが,ダウンロード後に,ずれていることが分かった場合は,kindai.rb publishを使ってトリミング位置を指定できます.
|
77
|
+
|
78
|
+
```
|
79
|
+
kindai.rb publish --position 2905x2510+270+190 "~/Documents/正義熱血社 - 正義の叫"
|
80
|
+
```
|
81
|
+
|
82
|
+
幅2905ピクセル,高さ2510ピクセル,左の余白270ピクセル,上の余白190ピクセルでトリミングされます.
|
83
|
+
|
84
|
+
## 動作環境
|
85
|
+
|
86
|
+
- Ruby が必要です.
|
87
|
+
- RMagickを使っているので,ImageMagick が必要です.
|
88
|
+
- Homebrewを使っている場合は以下のような雰囲気
|
89
|
+
|
90
|
+
```
|
91
|
+
brew install ruby imagemagick
|
92
|
+
```
|
93
|
+
|
94
|
+
|
95
|
+
## Copyright
|
96
|
+
|
97
|
+
Copyright (c) 2011 hitode909. See LICENSE.txt for
|
98
|
+
further details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.4.0
|
data/kindai.gemspec
CHANGED
@@ -5,23 +5,24 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "kindai"
|
8
|
-
s.version = "2.
|
8
|
+
s.version = "2.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["hitode909"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-05-22"
|
13
13
|
s.description = "kindai.rb is kindai digital library downloader."
|
14
14
|
s.email = "hitode909@gmail.com"
|
15
15
|
s.executables = ["kindai.rb"]
|
16
16
|
s.extra_rdoc_files = [
|
17
17
|
"LICENSE.txt",
|
18
|
-
"README.
|
18
|
+
"README.md"
|
19
19
|
]
|
20
20
|
s.files = [
|
21
|
+
".travis.yml",
|
21
22
|
"Gemfile",
|
22
23
|
"Gemfile.lock",
|
23
24
|
"LICENSE.txt",
|
24
|
-
"README.
|
25
|
+
"README.md",
|
25
26
|
"Rakefile",
|
26
27
|
"VERSION",
|
27
28
|
"bin/kindai.rb",
|
data/lib/kindai/book.rb
CHANGED
@@ -18,22 +18,10 @@ module Kindai
|
|
18
18
|
return self.new_from_permalink(permalink)
|
19
19
|
end
|
20
20
|
|
21
|
-
def self.new_from_search_result_uri(search_result_uri)
|
22
|
-
raise "not iss.ndl.go.jp: #{search_result_uri}" unless search_result_uri.match(/iss\.ndl\.go\.jp/)
|
23
|
-
me = new
|
24
|
-
me.instance_eval {
|
25
|
-
@search_result_uri = search_result_uri
|
26
|
-
}
|
27
|
-
me
|
28
|
-
end
|
29
|
-
|
30
21
|
# ----- metadata -----
|
31
22
|
|
32
23
|
def permalink_uri
|
33
|
-
@permalink_uri
|
34
|
-
begin
|
35
|
-
get_permalink_from_search_result_uri
|
36
|
-
end
|
24
|
+
@permalink_uri
|
37
25
|
end
|
38
26
|
|
39
27
|
def key
|
@@ -104,12 +92,5 @@ module Kindai
|
|
104
92
|
end
|
105
93
|
end
|
106
94
|
|
107
|
-
def get_permalink_from_search_result_uri
|
108
|
-
"search_result_uri is required" unless @search_result_uri
|
109
|
-
page = Nokogiri Kindai::Util.fetch_uri @search_result_uri
|
110
|
-
a = page.at "#reviewsites a[href^='http://kindai.da.ndl.go.jp/info:ndljp/pid/']"
|
111
|
-
a['href']
|
112
|
-
end
|
113
|
-
|
114
95
|
end
|
115
96
|
end
|
data/lib/kindai/searcher.rb
CHANGED
@@ -15,12 +15,12 @@ module Kindai
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def each
|
18
|
-
(
|
18
|
+
(1..(1/0.0)).each{ |page|
|
19
19
|
Kindai::Util.logger.debug "page #{page}"
|
20
20
|
uris = result_for(@keyword, page)
|
21
21
|
return if uris.empty?
|
22
22
|
uris.each{ |uri|
|
23
|
-
yield Kindai::Book.
|
23
|
+
yield Kindai::Book.new_from_permalink(uri)
|
24
24
|
}
|
25
25
|
}
|
26
26
|
end
|
@@ -28,25 +28,25 @@ module Kindai
|
|
28
28
|
protected
|
29
29
|
def total_of(keyword)
|
30
30
|
page = Nokogiri(Kindai::Util.fetch_uri(uri_for(keyword)))
|
31
|
-
total = page.at('
|
31
|
+
total = page.at('.tableheadercontent-left p').content.scan(/\d+/).first.to_i
|
32
32
|
|
33
33
|
Kindai::Util.logger.debug "total: #{total}"
|
34
34
|
total
|
35
35
|
end
|
36
36
|
|
37
|
-
def result_for keyword, page =
|
37
|
+
def result_for keyword, page = 1
|
38
38
|
page = Nokogiri Kindai::Util.fetch_uri(uri_for(keyword, page))
|
39
|
-
page.search('item').map{ |item|
|
40
|
-
item.
|
39
|
+
page.search('a.item-link').map{ |item|
|
40
|
+
'http://kindai.ndl.go.jp' + item.attr('href')
|
41
41
|
}
|
42
42
|
end
|
43
43
|
|
44
|
-
def uri_for keyword, page =
|
45
|
-
|
46
|
-
params = { :
|
47
|
-
root = URI.parse("http://
|
48
|
-
|
49
|
-
root +
|
44
|
+
def uri_for keyword, page = 1
|
45
|
+
rows = 100
|
46
|
+
params = { :SID => 'kindai', :searchWord => keyword, :pageNo => page, :rows => rows }
|
47
|
+
root = URI.parse("http://kindai.ndl.go.jp/search/searchResult")
|
48
|
+
query = '?' + Kindai::Util.expand_params(params)
|
49
|
+
root + query
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
data/spec/book_spec.rb
CHANGED
@@ -1,24 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# encoding: utf-8
|
2
2
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
3
3
|
|
4
|
-
describe Kindai::Book, 'from search result uri' do
|
5
|
-
before do
|
6
|
-
@book = Kindai::Book.new_from_search_result_uri('http://iss.ndl.go.jp/books/R000000008-I000162417-00')
|
7
|
-
end
|
8
|
-
|
9
|
-
it 'is a book' do
|
10
|
-
@book.should be_kind_of Kindai::Book
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'has permalink' do
|
14
|
-
@book.permalink_uri.should == 'http://kindai.da.ndl.go.jp/info:ndljp/pid/922693'
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'has key' do
|
18
|
-
@book.key.should == "922693"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
4
|
describe Kindai::Book do
|
23
5
|
before do
|
24
6
|
@book = Kindai::Book.new_from_permalink('http://kindai.ndl.go.jp/info:ndljp/pid/922693')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kindai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -146,12 +146,13 @@ executables:
|
|
146
146
|
extensions: []
|
147
147
|
extra_rdoc_files:
|
148
148
|
- LICENSE.txt
|
149
|
-
- README.
|
149
|
+
- README.md
|
150
150
|
files:
|
151
|
+
- .travis.yml
|
151
152
|
- Gemfile
|
152
153
|
- Gemfile.lock
|
153
154
|
- LICENSE.txt
|
154
|
-
- README.
|
155
|
+
- README.md
|
155
156
|
- Rakefile
|
156
157
|
- VERSION
|
157
158
|
- bin/kindai.rb
|
@@ -194,7 +195,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
194
195
|
version: '0'
|
195
196
|
segments:
|
196
197
|
- 0
|
197
|
-
hash: -
|
198
|
+
hash: -3785671314458746577
|
198
199
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
199
200
|
none: false
|
200
201
|
requirements:
|
data/README.rdoc
DELETED
@@ -1,88 +0,0 @@
|
|
1
|
-
= kindai.rb
|
2
|
-
|
3
|
-
== 概要
|
4
|
-
|
5
|
-
近代デジタルライブラリーから画像をダウンロードします.
|
6
|
-
|
7
|
-
== インストール
|
8
|
-
|
9
|
-
RubyGemsからインストールできます.
|
10
|
-
|
11
|
-
gem install kindai
|
12
|
-
|
13
|
-
== 使い方
|
14
|
-
|
15
|
-
gemをインストールすると,kindai.rbというコマンドがインストールされます.
|
16
|
-
|
17
|
-
起動時の引数に,ダウンロードしたい本の URL を指定します.スペース区切りで複数指定できます.
|
18
|
-
|
19
|
-
kindai.rb http://kindai.ndl.go.jp/info:ndljp/pid/922693
|
20
|
-
|
21
|
-
URL の代わりに検索ワードを指定すると,ヒットした本をまとめてダウンロードします.AND検索もできます.
|
22
|
-
|
23
|
-
kindai.rb 調理
|
24
|
-
kindai.rb "松茸 調理"
|
25
|
-
|
26
|
-
--output オプションで,保存先を指定できます.指定したディレクトリの下に,書名のディレクトリができます.
|
27
|
-
|
28
|
-
kindai.rb http://kindai.ndl.go.jp/info:ndljp/pid/922693 --output ~/Documents/
|
29
|
-
|
30
|
-
== 本の加工(自動)
|
31
|
-
|
32
|
-
ダウンロードした本は自動的にトリミングされ,trim/ディレクトリに格納されます.トリミング情報は自動的に共有され,次に同じ本をダウンロードしたときや,他のひとが同じ本をダウンロードしたときに再利用されます.
|
33
|
-
|
34
|
-
起動時の引数で,ダウンロードした本を iPhone 用と Kindle 用に加工することができます.
|
35
|
-
|
36
|
-
--publish_iphone オプションで,iPhone用のファイルを作ります.
|
37
|
-
--publish_kindle オプションで,Kindle用のファイルを作ります.
|
38
|
-
|
39
|
-
両方指定すると,以下のようなファイル構成になります.
|
40
|
-
|
41
|
-
正義熱血社 - 正義の叫
|
42
|
-
├── original
|
43
|
-
│ ├── 001.jpg
|
44
|
-
│ ├── 002.jpg
|
45
|
-
│ ├── 003.jpg
|
46
|
-
(中略)
|
47
|
-
│ └── 020.jpg
|
48
|
-
├── trim
|
49
|
-
│ ├── 001.jpg
|
50
|
-
│ ├── 002.jpg
|
51
|
-
│ ├── 003.jpg
|
52
|
-
(中略)
|
53
|
-
│ └── 020.jpg
|
54
|
-
├── 正義熱血社 - 正義の叫_iphone.zip
|
55
|
-
└── 正義熱血社 - 正義の叫_kindle.zip
|
56
|
-
|
57
|
-
* original/以下には加工前の画像が入ります.
|
58
|
-
* trim/以下にはトリミングして余白を取り除いた画像が入ります.パソコンで読むのに適しています.
|
59
|
-
* _iphone.zipは,iPhoneの画面サイズ(1280x960)にリサイズされた見開き画像のzipファイルです.Comic Glassで読むのに適しています.
|
60
|
-
* _kindle.zipは,Kindle3の画面サイズ(600x800)にリサイズされ,1ページずつに裁断された画像のzipファイルです.
|
61
|
-
|
62
|
-
--no_trimmingオプションが指定されたときは,ダウンロードだけを行い,トリミングや加工を行いません.
|
63
|
-
|
64
|
-
== 本の加工(手動)
|
65
|
-
|
66
|
-
トリミング位置は自動的に決められますが,ダウンロード後に,ずれていることが分かった場合は,kindai.rb publishを使ってトリミング位置を指定できます.
|
67
|
-
|
68
|
-
kindai.rb publish --position 2905x2510+270+190 "~/Documents/正義熱血社 - 正義の叫"
|
69
|
-
|
70
|
-
幅2905ピクセル,高さ2510ピクセル,左の余白270ピクセル,上の余白190ピクセルでトリミングされます.
|
71
|
-
|
72
|
-
== 動作環境
|
73
|
-
|
74
|
-
* Ruby が必要です.
|
75
|
-
* RMagickを使っているので,ImageMagick が必要です.
|
76
|
-
|
77
|
-
== その他
|
78
|
-
|
79
|
-
国立国会図書館デジタルアーカイブポータル(PORTA)外部提供インタフェースを利用しています.
|
80
|
-
|
81
|
-
Wiki: 外部提供インタフェースについて
|
82
|
-
|
83
|
-
http://porta.ndl.go.jp/wiki/Wiki.jsp?page=%E5%A4%96%E9%83%A8%E6%8F%90%E4%BE%9B%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
|
84
|
-
|
85
|
-
== Copyright
|
86
|
-
|
87
|
-
Copyright (c) 2011 hitode909. See LICENSE.txt for
|
88
|
-
further details.
|