harvestdor-indexer 1.0.0 → 1.0.3
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.
- checksums.yaml +4 -4
- data/README.rdoc +1 -0
- data/harvestdor-indexer.gemspec +1 -1
- data/lib/harvestdor-indexer.rb +12 -2
- data/lib/harvestdor-indexer/version.rb +1 -1
- data/spec/fixtures/vcr_cassettes/before_all_call.yml +48 -0
- data/spec/fixtures/vcr_cassettes/cant_find_whitelist_call.yml +48 -0
- data/spec/fixtures/vcr_cassettes/empty_array_no_blacklist_config_call.yml +48 -0
- data/spec/fixtures/vcr_cassettes/empty_array_no_whitelist_config_call.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_collection_druids_call.yml +18 -20
- data/spec/fixtures/vcr_cassettes/ignore_druids_in_blacklist_and_whitelist_call.yml +48 -0
- data/spec/fixtures/vcr_cassettes/ignore_druids_in_blacklist_call.yml +61 -20
- data/spec/fixtures/vcr_cassettes/know_what_is_in_blacklist_call.yml +46 -0
- data/spec/fixtures/vcr_cassettes/know_what_is_in_whitelist_call.yml +46 -0
- data/spec/fixtures/vcr_cassettes/load_blacklist_once_call.yml +48 -0
- data/spec/fixtures/vcr_cassettes/load_whitelist_once_call.yml +48 -0
- data/spec/fixtures/vcr_cassettes/no_blacklist_config_call.yml +61 -20
- data/spec/fixtures/vcr_cassettes/no_blacklist_found_call.yml +48 -0
- data/spec/fixtures/vcr_cassettes/no_whitelist_config_call.yml +61 -20
- data/spec/fixtures/vcr_cassettes/process_druids_whitelist_call.yml +48 -0
- data/spec/fixtures/vcr_cassettes/rsolr_client_config_call.yml +48 -0
- data/spec/fixtures/vcr_cassettes/single_rsolr_connection_call.yml +61 -20
- data/spec/unit/harvestdor-indexer_spec.rb +114 -72
- metadata +30 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8eb186d19cd3f8c6051dce74feaffa9d8bafcbe8
|
4
|
+
data.tar.gz: f8be614289308a8752c615b66a286139f45a684b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9949e15b1ebe035ee7317cbc9832e2b8fb3b8feaff155f5143f366a7d47829f8402f991fd78d5167d2a94c0f38994ff366eaff1f2b1d9bfa652b9ee2f8801d73
|
7
|
+
data.tar.gz: a382a7f2698a1a3001a4cb82a17fc5683d5a7d5305ba212717b1b92c758f4edc0c6564000f4ade2872ee8f0acc1dc7b552f9ccdf02f6bdc3749c2bcdc5deae79
|
data/README.rdoc
CHANGED
@@ -118,6 +118,7 @@ I suggest you run your code on harvestdor-dev, as it is already set up to be abl
|
|
118
118
|
|
119
119
|
== Releases
|
120
120
|
|
121
|
+
* <b>1.0.3</b> Implemented class level config so anything that inherits from Harvestdor::Indexer can share configuration settings
|
121
122
|
* <b>1.0.0</b> Replaced OAI harvesting mechanism with dor-fetcher
|
122
123
|
* <b>0.0.13</b> Upgrade to latest faraday HTTP client syntax; Use retries gem (https://github.com/ooyala/retries) to make retrying of index process more robust
|
123
124
|
* <b>0.0.12</b> fix total_object nil error
|
data/harvestdor-indexer.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
|
|
21
21
|
gem.add_dependency 'retries'
|
22
22
|
gem.add_dependency 'harvestdor', '>=0.0.14'
|
23
23
|
gem.add_dependency 'stanford-mods'
|
24
|
-
gem.add_dependency 'dor-fetcher', '
|
24
|
+
gem.add_dependency 'dor-fetcher', '=1.0.5'
|
25
25
|
|
26
26
|
# Runtime dependencies
|
27
27
|
gem.add_runtime_dependency 'confstruct'
|
data/lib/harvestdor-indexer.rb
CHANGED
@@ -22,6 +22,10 @@ module Harvestdor
|
|
22
22
|
attr_accessor :total_time_to_parse,:total_time_to_solr
|
23
23
|
attr_accessor :dor_fetcher_client, :client_config
|
24
24
|
|
25
|
+
|
26
|
+
# Class level config variable
|
27
|
+
@@config ||= Confstruct::Configuration.new()
|
28
|
+
|
25
29
|
def initialize yml_path, client_config_path, options = {}
|
26
30
|
@success_count=0 # the number of objects successfully indexed
|
27
31
|
@error_count=0 # the number of objects that failed
|
@@ -36,8 +40,14 @@ module Harvestdor
|
|
36
40
|
@dor_fetcher_client=DorFetcher::Client.new({:service_url => client_config["dor_fetcher_service_url"]})
|
37
41
|
end
|
38
42
|
|
43
|
+
# to allow class level access to config variables for record_merger and solr_doc_builder
|
44
|
+
# (rather than passing a lot of params to constructor)
|
45
|
+
def self.config
|
46
|
+
@@config ||= Confstruct::Configuration.new()
|
47
|
+
end
|
48
|
+
|
39
49
|
def config
|
40
|
-
|
50
|
+
Indexer.config
|
41
51
|
end
|
42
52
|
|
43
53
|
def logger
|
@@ -232,7 +242,7 @@ module Harvestdor
|
|
232
242
|
# Get only the druid from the end of the default_set string
|
233
243
|
# from the yml file
|
234
244
|
def strip_default_set_string()
|
235
|
-
|
245
|
+
Indexer.config.default_set.split('_').last
|
236
246
|
end
|
237
247
|
|
238
248
|
protected #---------------------------------------------------------------------
|
@@ -0,0 +1,48 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://127.0.0.1:3000/
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- '*/*; q=0.5, application/xml'
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
X-Frame-Options:
|
22
|
+
- SAMEORIGIN
|
23
|
+
X-Xss-Protection:
|
24
|
+
- 1; mode=block
|
25
|
+
X-Content-Type-Options:
|
26
|
+
- nosniff
|
27
|
+
Content-Type:
|
28
|
+
- application/xml; charset=utf-8
|
29
|
+
Etag:
|
30
|
+
- '"444bcb3a3fcf8389296c49467f27e1d6"'
|
31
|
+
Cache-Control:
|
32
|
+
- max-age=0, private, must-revalidate
|
33
|
+
X-Meta-Request-Version:
|
34
|
+
- 0.3.4
|
35
|
+
X-Request-Id:
|
36
|
+
- e72ddd14-0ca2-4b1b-bad6-1ff7d4fc90d6
|
37
|
+
X-Runtime:
|
38
|
+
- '0.186248'
|
39
|
+
Connection:
|
40
|
+
- close
|
41
|
+
Server:
|
42
|
+
- thin 1.6.2 codename Doc Brown
|
43
|
+
body:
|
44
|
+
encoding: US-ASCII
|
45
|
+
string: ok
|
46
|
+
http_version:
|
47
|
+
recorded_at: Wed, 12 Nov 2014 18:46:07 GMT
|
48
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,48 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://127.0.0.1:3000/
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- '*/*; q=0.5, application/xml'
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
X-Frame-Options:
|
22
|
+
- SAMEORIGIN
|
23
|
+
X-Xss-Protection:
|
24
|
+
- 1; mode=block
|
25
|
+
X-Content-Type-Options:
|
26
|
+
- nosniff
|
27
|
+
Content-Type:
|
28
|
+
- application/xml; charset=utf-8
|
29
|
+
Etag:
|
30
|
+
- '"444bcb3a3fcf8389296c49467f27e1d6"'
|
31
|
+
Cache-Control:
|
32
|
+
- max-age=0, private, must-revalidate
|
33
|
+
X-Meta-Request-Version:
|
34
|
+
- 0.3.4
|
35
|
+
X-Request-Id:
|
36
|
+
- 3ee1c4c2-6bc7-41f3-a19a-6466c6f3ee6b
|
37
|
+
X-Runtime:
|
38
|
+
- '0.004152'
|
39
|
+
Connection:
|
40
|
+
- close
|
41
|
+
Server:
|
42
|
+
- thin 1.6.2 codename Doc Brown
|
43
|
+
body:
|
44
|
+
encoding: US-ASCII
|
45
|
+
string: ok
|
46
|
+
http_version:
|
47
|
+
recorded_at: Wed, 12 Nov 2014 18:48:31 GMT
|
48
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,48 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://127.0.0.1:3000/
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- '*/*; q=0.5, application/xml'
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
X-Frame-Options:
|
22
|
+
- SAMEORIGIN
|
23
|
+
X-Xss-Protection:
|
24
|
+
- 1; mode=block
|
25
|
+
X-Content-Type-Options:
|
26
|
+
- nosniff
|
27
|
+
Content-Type:
|
28
|
+
- application/xml; charset=utf-8
|
29
|
+
Etag:
|
30
|
+
- '"444bcb3a3fcf8389296c49467f27e1d6"'
|
31
|
+
Cache-Control:
|
32
|
+
- max-age=0, private, must-revalidate
|
33
|
+
X-Meta-Request-Version:
|
34
|
+
- 0.3.4
|
35
|
+
X-Request-Id:
|
36
|
+
- 1acd71cc-22d9-4c18-beda-193b44b07922
|
37
|
+
X-Runtime:
|
38
|
+
- '0.003821'
|
39
|
+
Connection:
|
40
|
+
- close
|
41
|
+
Server:
|
42
|
+
- thin 1.6.2 codename Doc Brown
|
43
|
+
body:
|
44
|
+
encoding: US-ASCII
|
45
|
+
string: ok
|
46
|
+
http_version:
|
47
|
+
recorded_at: Wed, 12 Nov 2014 18:53:12 GMT
|
48
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,48 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://127.0.0.1:3000/
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- '*/*; q=0.5, application/xml'
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
X-Frame-Options:
|
22
|
+
- SAMEORIGIN
|
23
|
+
X-Xss-Protection:
|
24
|
+
- 1; mode=block
|
25
|
+
X-Content-Type-Options:
|
26
|
+
- nosniff
|
27
|
+
Content-Type:
|
28
|
+
- application/xml; charset=utf-8
|
29
|
+
Etag:
|
30
|
+
- '"444bcb3a3fcf8389296c49467f27e1d6"'
|
31
|
+
Cache-Control:
|
32
|
+
- max-age=0, private, must-revalidate
|
33
|
+
X-Meta-Request-Version:
|
34
|
+
- 0.3.4
|
35
|
+
X-Request-Id:
|
36
|
+
- 02a8b8e5-2dae-469b-8613-3d5e75ea7564
|
37
|
+
X-Runtime:
|
38
|
+
- '0.006424'
|
39
|
+
Connection:
|
40
|
+
- close
|
41
|
+
Server:
|
42
|
+
- thin 1.6.2 codename Doc Brown
|
43
|
+
body:
|
44
|
+
encoding: US-ASCII
|
45
|
+
string: ok
|
46
|
+
http_version:
|
47
|
+
recorded_at: Wed, 12 Nov 2014 18:53:12 GMT
|
48
|
+
recorded_with: VCR 2.9.3
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: http://127.0.0.1:3000/
|
5
|
+
uri: http://127.0.0.1:3000/collections/yg867hg1375
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -14,7 +14,7 @@ http_interactions:
|
|
14
14
|
response:
|
15
15
|
status:
|
16
16
|
code: 200
|
17
|
-
message:
|
17
|
+
message: OK
|
18
18
|
headers:
|
19
19
|
X-Frame-Options:
|
20
20
|
- SAMEORIGIN
|
@@ -25,34 +25,32 @@ http_interactions:
|
|
25
25
|
Content-Type:
|
26
26
|
- application/json; charset=utf-8
|
27
27
|
Etag:
|
28
|
-
- '"
|
28
|
+
- '"c3a375a17d64792857f21d1af227ed7b"'
|
29
29
|
Cache-Control:
|
30
30
|
- max-age=0, private, must-revalidate
|
31
|
+
X-Meta-Request-Version:
|
32
|
+
- 0.3.4
|
31
33
|
X-Request-Id:
|
32
|
-
-
|
34
|
+
- 125a9964-6326-4114-9f59-fb533551d554
|
33
35
|
X-Runtime:
|
34
|
-
- '0.
|
35
|
-
Server:
|
36
|
-
- WEBrick/1.3.1 (Ruby/2.1.2/2014-05-08)
|
37
|
-
Date:
|
38
|
-
- Wed, 22 Oct 2014 18:42:32 GMT
|
39
|
-
Content-Length:
|
40
|
-
- '1121'
|
36
|
+
- '0.011086'
|
41
37
|
Connection:
|
42
|
-
-
|
38
|
+
- close
|
39
|
+
Server:
|
40
|
+
- thin 1.6.2 codename Doc Brown
|
43
41
|
body:
|
44
42
|
encoding: US-ASCII
|
45
|
-
string: '{"
|
46
|
-
E. Stafford photographs, 1909-1933"
|
43
|
+
string: '{"collections":[{"druid":"druid:yg867hg1375","latest_change":"2013-11-11T23:34:29Z","title":"Francis
|
44
|
+
E. Stafford photographs, 1909-1933"}],"items":[{"druid":"druid:jf275fd6276","latest_change":"2013-11-11T23:34:29Z","title":"Album
|
47
45
|
A: Photographs of China''s natural landscapes, urban scenes, cultural landmarks,
|
48
|
-
social customs, and people."
|
49
|
-
E: Photographs of the Seventh Day Adventist Church missionaries in China"
|
46
|
+
social customs, and people."},{"druid":"druid:nz353cp1092","latest_change":"2013-11-11T23:34:29Z","title":"Album
|
47
|
+
E: Photographs of the Seventh Day Adventist Church missionaries in China"},{"druid":"druid:tc552kq0798","latest_change":"2013-11-11T23:34:29Z","title":"Album
|
50
48
|
D: Photographs of China''s natural landscapes, urban scenes, cultural landmarks,
|
51
|
-
social customs, and people."
|
49
|
+
social customs, and people."},{"druid":"druid:th998nk0722","latest_change":"2013-11-11T23:34:29Z","title":"Album
|
52
50
|
C: Photographs of the Chinese Revolution of 1911 and the Shanghai Commercial
|
53
|
-
Press"
|
51
|
+
Press"},{"druid":"druid:ww689vs6534","latest_change":"2013-11-11T23:34:29Z","title":"Album
|
54
52
|
B: Photographs of China''s natural landscapes, urban scenes, cultural landmarks,
|
55
|
-
social customs, and people."
|
53
|
+
social customs, and people."}],"counts":{"collections":1,"items":5,"total_count":6}}'
|
56
54
|
http_version:
|
57
|
-
recorded_at: Wed,
|
55
|
+
recorded_at: Wed, 12 Nov 2014 19:34:03 GMT
|
58
56
|
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,48 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://127.0.0.1:3000/
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- '*/*; q=0.5, application/xml'
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
X-Frame-Options:
|
22
|
+
- SAMEORIGIN
|
23
|
+
X-Xss-Protection:
|
24
|
+
- 1; mode=block
|
25
|
+
X-Content-Type-Options:
|
26
|
+
- nosniff
|
27
|
+
Content-Type:
|
28
|
+
- application/xml; charset=utf-8
|
29
|
+
Etag:
|
30
|
+
- '"444bcb3a3fcf8389296c49467f27e1d6"'
|
31
|
+
Cache-Control:
|
32
|
+
- max-age=0, private, must-revalidate
|
33
|
+
X-Meta-Request-Version:
|
34
|
+
- 0.3.4
|
35
|
+
X-Request-Id:
|
36
|
+
- 7d9369f3-a2dc-4a1e-aa79-4d574628be4d
|
37
|
+
X-Runtime:
|
38
|
+
- '0.004594'
|
39
|
+
Connection:
|
40
|
+
- close
|
41
|
+
Server:
|
42
|
+
- thin 1.6.2 codename Doc Brown
|
43
|
+
body:
|
44
|
+
encoding: US-ASCII
|
45
|
+
string: ok
|
46
|
+
http_version:
|
47
|
+
recorded_at: Wed, 12 Nov 2014 18:46:07 GMT
|
48
|
+
recorded_with: VCR 2.9.3
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: http://127.0.0.1:3000/
|
5
|
+
uri: http://127.0.0.1:3000/
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -14,7 +14,7 @@ http_interactions:
|
|
14
14
|
response:
|
15
15
|
status:
|
16
16
|
code: 200
|
17
|
-
message:
|
17
|
+
message: OK
|
18
18
|
headers:
|
19
19
|
X-Frame-Options:
|
20
20
|
- SAMEORIGIN
|
@@ -23,36 +23,77 @@ http_interactions:
|
|
23
23
|
X-Content-Type-Options:
|
24
24
|
- nosniff
|
25
25
|
Content-Type:
|
26
|
-
-
|
26
|
+
- text/html; charset=utf-8
|
27
27
|
Etag:
|
28
|
-
- '"
|
28
|
+
- '"444bcb3a3fcf8389296c49467f27e1d6"'
|
29
29
|
Cache-Control:
|
30
30
|
- max-age=0, private, must-revalidate
|
31
|
+
X-Meta-Request-Version:
|
32
|
+
- 0.3.4
|
31
33
|
X-Request-Id:
|
32
|
-
-
|
34
|
+
- 994d795e-727d-4c83-aa8d-addfd5d1a01f
|
33
35
|
X-Runtime:
|
34
|
-
- '0.
|
36
|
+
- '0.010719'
|
37
|
+
Connection:
|
38
|
+
- close
|
35
39
|
Server:
|
36
|
-
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
40
|
+
- thin 1.6.2 codename Doc Brown
|
41
|
+
body:
|
42
|
+
encoding: US-ASCII
|
43
|
+
string: ok
|
44
|
+
http_version:
|
45
|
+
recorded_at: Wed, 12 Nov 2014 19:34:03 GMT
|
46
|
+
- request:
|
47
|
+
method: get
|
48
|
+
uri: http://127.0.0.1:3000/collections/yg867hg1375
|
49
|
+
body:
|
50
|
+
encoding: US-ASCII
|
51
|
+
string: ''
|
52
|
+
headers:
|
53
|
+
Accept:
|
54
|
+
- '*/*'
|
55
|
+
User-Agent:
|
56
|
+
- Ruby
|
57
|
+
response:
|
58
|
+
status:
|
59
|
+
code: 200
|
60
|
+
message: OK
|
61
|
+
headers:
|
62
|
+
X-Frame-Options:
|
63
|
+
- SAMEORIGIN
|
64
|
+
X-Xss-Protection:
|
65
|
+
- 1; mode=block
|
66
|
+
X-Content-Type-Options:
|
67
|
+
- nosniff
|
68
|
+
Content-Type:
|
69
|
+
- application/json; charset=utf-8
|
70
|
+
Etag:
|
71
|
+
- '"c3a375a17d64792857f21d1af227ed7b"'
|
72
|
+
Cache-Control:
|
73
|
+
- max-age=0, private, must-revalidate
|
74
|
+
X-Meta-Request-Version:
|
75
|
+
- 0.3.4
|
76
|
+
X-Request-Id:
|
77
|
+
- dc0faecb-c39d-42e4-bb1d-8f7be4b8c287
|
78
|
+
X-Runtime:
|
79
|
+
- '0.012066'
|
41
80
|
Connection:
|
42
|
-
-
|
81
|
+
- close
|
82
|
+
Server:
|
83
|
+
- thin 1.6.2 codename Doc Brown
|
43
84
|
body:
|
44
85
|
encoding: US-ASCII
|
45
|
-
string: '{"
|
46
|
-
E. Stafford photographs, 1909-1933"
|
86
|
+
string: '{"collections":[{"druid":"druid:yg867hg1375","latest_change":"2013-11-11T23:34:29Z","title":"Francis
|
87
|
+
E. Stafford photographs, 1909-1933"}],"items":[{"druid":"druid:jf275fd6276","latest_change":"2013-11-11T23:34:29Z","title":"Album
|
47
88
|
A: Photographs of China''s natural landscapes, urban scenes, cultural landmarks,
|
48
|
-
social customs, and people."
|
49
|
-
E: Photographs of the Seventh Day Adventist Church missionaries in China"
|
89
|
+
social customs, and people."},{"druid":"druid:nz353cp1092","latest_change":"2013-11-11T23:34:29Z","title":"Album
|
90
|
+
E: Photographs of the Seventh Day Adventist Church missionaries in China"},{"druid":"druid:tc552kq0798","latest_change":"2013-11-11T23:34:29Z","title":"Album
|
50
91
|
D: Photographs of China''s natural landscapes, urban scenes, cultural landmarks,
|
51
|
-
social customs, and people."
|
92
|
+
social customs, and people."},{"druid":"druid:th998nk0722","latest_change":"2013-11-11T23:34:29Z","title":"Album
|
52
93
|
C: Photographs of the Chinese Revolution of 1911 and the Shanghai Commercial
|
53
|
-
Press"
|
94
|
+
Press"},{"druid":"druid:ww689vs6534","latest_change":"2013-11-11T23:34:29Z","title":"Album
|
54
95
|
B: Photographs of China''s natural landscapes, urban scenes, cultural landmarks,
|
55
|
-
social customs, and people."
|
96
|
+
social customs, and people."}],"counts":{"collections":1,"items":5,"total_count":6}}'
|
56
97
|
http_version:
|
57
|
-
recorded_at: Wed,
|
98
|
+
recorded_at: Wed, 12 Nov 2014 19:34:03 GMT
|
58
99
|
recorded_with: VCR 2.9.3
|