elibri_onix 0.5.15 → 0.5.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/elibri_onix/onix_3_0/file_info.rb +38 -11
- data/lib/elibri_onix/onix_3_0/product.rb +20 -9
- data/lib/elibri_onix/version.rb +1 -1
- data/test/elibri_ebook_files_test.rb +1 -1
- data/test/elibri_extensions_test.rb +0 -1
- data/test/elibri_onix_release_3_0_onix_message_test.rb +17 -19
- data/test/elibri_production_country_test.rb +12 -0
- data/test/fixtures/all_possible_tags.xml +1 -2
- data/test/fixtures/onix_announced_product_example.xml +1 -2
- data/test/fixtures/onix_audiobook_example.xml +2 -3
- data/test/fixtures/onix_board_game_example.xml +2 -2
- data/test/fixtures/onix_cn_production_country_example.xml +49 -0
- data/test/fixtures/onix_ebook_with_files_example.xml +111 -80
- data/test/fixtures/onix_preorder_product_example.xml +2 -4
- data/test/fixtures/onix_published_product_example.xml +1 -2
- data/test/fixtures/onix_puzzle_example.xml +2 -2
- data/test/fixtures/onix_sale_restrictions_example.xml +1 -2
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d06b0bd4bdbb02d2ff2383d0bbda53df5053c5cb72cb05239751be6333a35d12
|
4
|
+
data.tar.gz: 6e8e96e0555ff9b9121159342dcdbf38f75fc6d62d468ab16ddbfabe10b9ecff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbfebade21b11fc42a93b821617eca9a435b14a3dc1a032597c4296a588b2813ef025ac1e5f39738083052ed93041be5378c4acda4490cde209cc8f02f5e6b97
|
7
|
+
data.tar.gz: ec612758dbcaa6d29f24c782978de4a91a33fb899081a0e766bae7c3ab4d3e49426a68d4609361386773281bebce2d2d5535fb3678a3cf2877d12402e93cae3e
|
@@ -5,32 +5,59 @@ module Elibri
|
|
5
5
|
module Release_3_0
|
6
6
|
|
7
7
|
class FileInfo
|
8
|
-
|
8
|
+
|
9
9
|
#Informacja o fragmencie publikacji (e-book)
|
10
|
-
|
10
|
+
|
11
11
|
ATTRIBUTES = [
|
12
12
|
:file_type, :file_size, :md5, :updated_at
|
13
13
|
]
|
14
|
-
|
14
|
+
|
15
15
|
RELATIONS = [
|
16
16
|
:inspect_include_fields
|
17
17
|
]
|
18
|
-
|
18
|
+
|
19
19
|
attr_accessor :file_type, :file_size, :md5, :updated_at, :eid, :to_xml
|
20
|
-
|
20
|
+
|
21
21
|
def initialize(data)
|
22
22
|
@to_xml = data.to_s
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
23
|
+
|
24
|
+
data.css("ResourceFileDate").each do |date|
|
25
|
+
if date.css("ResourceFileDateRole").first.inner_text == Elibri::ONIX::Dict::Release_3_0::ContentDateRole::LAST_UPDATED
|
26
|
+
@updated_at = Time.parse(date.css("Date").first.inner_text)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
data.css("ResourceFileFeature").each do |feat|
|
31
|
+
ftype = feat.css("ResourceFileFeatureType").first.inner_text
|
32
|
+
fvalue = feat.css("ResourceFileFeatureValue").first.inner_text
|
33
|
+
|
34
|
+
if ftype == Elibri::ONIX::Dict::Release_3_0::ResourceFileFeatureType::EXACT_FILE_SIZE
|
35
|
+
@file_size = fvalue.to_i
|
36
|
+
elsif ftype == Elibri::ONIX::Dict::Release_3_0::ResourceFileFeatureType::MD5
|
37
|
+
@md5 = fvalue
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
fname = data.css("ResourceFileLink").first&.inner_text
|
42
|
+
if fname
|
43
|
+
if File.extname(fname) == ".zip"
|
44
|
+
@file_type = "mp3_in_zip"
|
45
|
+
else
|
46
|
+
@file_type = File.extname(fname)[1..-1]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
data.css("ResourceIdentifier").each do |ident|
|
51
|
+
if ident.css("ResourceIDType").first&.inner_text == Elibri::ONIX::Dict::Release_3_0::ResourceIDType::PROPRIETARY
|
52
|
+
@eid = ident.css("IDValue").first&.inner_text&.to_i
|
53
|
+
end
|
54
|
+
end
|
28
55
|
end
|
29
56
|
|
30
57
|
def inspect_include_fields
|
31
58
|
[:file_type]
|
32
59
|
end
|
33
|
-
|
60
|
+
|
34
61
|
end
|
35
62
|
|
36
63
|
end
|
@@ -207,6 +207,13 @@ module Elibri
|
|
207
207
|
#max. czas gry - gry planszowe
|
208
208
|
attr_reader :playing_time_to
|
209
209
|
|
210
|
+
#cn code
|
211
|
+
attr_reader :cn_code
|
212
|
+
|
213
|
+
#kraj produkcji
|
214
|
+
attr_reader :country_of_manufacture
|
215
|
+
|
216
|
+
|
210
217
|
#:nodoc:
|
211
218
|
attr_reader :text_contents
|
212
219
|
attr_reader :file_size
|
@@ -288,7 +295,8 @@ module Elibri
|
|
288
295
|
@cover_price = BigDecimal(data.at_xpath('elibri:CoverPrice').try(:text)) if data.at_xpath('elibri:CoverPrice')
|
289
296
|
@vat = data.at_xpath('elibri:Vat').try(:text).try(:to_i)
|
290
297
|
else
|
291
|
-
|
298
|
+
#00 - Supplier role - Unspecified
|
299
|
+
price_sd = @supply_details.find { |sd| sd.supplier && ["00", Elibri::ONIX::Dict::Release_3_0::SupplierRole::PUB_TO_RET].include?(sd.supplier.role) }
|
292
300
|
if price_sd && price_sd.price && price_sd.price && price_sd.price.type == Elibri::ONIX::Dict::Release_3_0::PriceTypeCode::RRP_WITH_TAX
|
293
301
|
@vat = price_sd.price.tax_rate_percent.to_i
|
294
302
|
@cover_price = price_sd.price.amount
|
@@ -318,11 +326,7 @@ module Elibri
|
|
318
326
|
end
|
319
327
|
|
320
328
|
end
|
321
|
-
|
322
|
-
@file_infos = data.at_xpath("elibri:masters").xpath("elibri:master").map { |node| FileInfo.new(node) }
|
323
|
-
rescue
|
324
|
-
@file_infos = []
|
325
|
-
end
|
329
|
+
@file_infos = data.css("BodyResource").map { |node| FileInfo.new(node) }
|
326
330
|
after_parse
|
327
331
|
end
|
328
332
|
|
@@ -367,6 +371,8 @@ module Elibri
|
|
367
371
|
end
|
368
372
|
|
369
373
|
def descriptive_details_setup(data)
|
374
|
+
@country_of_manufacture = data.at_css("CountryOfManufacture").try(:text)
|
375
|
+
|
370
376
|
@product_composition = data.at_css('ProductComposition').try(:text)
|
371
377
|
@product_form = data.at_css('ProductForm').try(:text)
|
372
378
|
if @product_form
|
@@ -387,9 +393,14 @@ module Elibri
|
|
387
393
|
end
|
388
394
|
|
389
395
|
end
|
390
|
-
|
391
|
-
|
392
|
-
|
396
|
+
data.css('ProductClassification').each do |cl|
|
397
|
+
cl_type = cl.at_css('ProductClassificationType').text
|
398
|
+
cl_value = cl.at_css('ProductClassificationCode').text
|
399
|
+
if cl_type == Elibri::ONIX::Dict::Release_3_0::ProductClassificationType::PKWIU
|
400
|
+
@pkwiu = cl_value
|
401
|
+
elsif cl_type == Elibri::ONIX::Dict::Release_3_0::ProductClassificationType::CN
|
402
|
+
@cn_code = cl_value
|
403
|
+
end
|
393
404
|
end
|
394
405
|
@measures = data.css('Measure').map { |measure_data| Measure.new(measure_data) }
|
395
406
|
@title_details = data.children.find_all { |node| node.name == 'TitleDetail' }.map { |title_data| TitleDetail.new(title_data) }
|
data/lib/elibri_onix/version.rb
CHANGED
@@ -12,7 +12,7 @@ describe Elibri::ONIX::Release_3_0::ONIXMessage do
|
|
12
12
|
assert_equal "4b145ff46636b06f49225abdab70927f", e.md5
|
13
13
|
assert_equal "epub_excerpt", e.file_type
|
14
14
|
assert_equal Time.parse("2012-12-30 15:18 +00:00"), e.updated_at
|
15
|
-
assert_equal "https://www.elibri.com.pl/excerpt/767", e.link
|
15
|
+
assert_equal "https://www.elibri.com.pl/excerpt/767/4b145ff46636b06f49225abdab70927f/fragment.epub", e.link
|
16
16
|
assert_equal 767, e.eid
|
17
17
|
|
18
18
|
assert_equal 2, product.file_infos.size
|
@@ -6,38 +6,36 @@ describe Elibri::ONIX::Release_3_0::ONIXMessage do
|
|
6
6
|
|
7
7
|
it "should be able to parse all attributes supported in Elibri" do
|
8
8
|
xml_string = File.read File.join(File.dirname(__FILE__), "..", "test", "fixtures", "all_possible_tags.xml")
|
9
|
-
|
9
|
+
|
10
10
|
onix = Elibri::ONIX::Release_3_0::ONIXMessage.new(xml_string)
|
11
11
|
assert_equal '3.0', onix.release
|
12
12
|
assert_equal 'Elibri.com.pl', onix.header.sender.sender_name
|
13
|
-
assert_equal 'Tomasz Meka', onix.header.sender.contact_name
|
14
|
-
assert_equal 'kontakt@elibri.com.pl', onix.header.sender.email_address
|
15
13
|
assert_equal Date.new(2011, 10, 5), onix.header.sent_date_time
|
16
14
|
|
17
|
-
assert_equal 1, onix.products.size
|
15
|
+
assert_equal 1, onix.products.size
|
18
16
|
|
19
17
|
product = onix.products.first
|
20
18
|
|
21
|
-
assert_equal 'miękka', product.cover_type
|
19
|
+
assert_equal 'miękka', product.cover_type
|
22
20
|
assert_equal 12.99, product.cover_price
|
23
21
|
assert_equal 5, product.vat
|
24
22
|
assert_equal '58.11.1', product.pkwiu
|
25
23
|
|
26
24
|
assert_equal 'fdb8fa072be774d97a97', product.record_reference
|
27
25
|
assert_equal '03', product.notification_type
|
28
|
-
assert_equal "Record had many errors", product.deletion_text
|
26
|
+
assert_equal "Record had many errors", product.deletion_text
|
29
27
|
|
30
28
|
assert_equal '9788324799992', product.isbn13
|
31
29
|
assert_equal '9788324788882', product.ean
|
32
30
|
|
33
31
|
assert_equal({"Gildia.pl" => "GILD-123", "PWN" => "pl.pwn.ksiegarnia.produkt.id.76734"}, product.proprietary_identifiers)
|
34
32
|
|
35
|
-
assert_equal "00", product.product_composition
|
33
|
+
assert_equal "00", product.product_composition
|
36
34
|
assert_equal 'BA', product.product_form
|
37
35
|
|
38
|
-
assert_equal 4, product.measures.size
|
36
|
+
assert_equal 4, product.measures.size
|
39
37
|
|
40
|
-
assert_equal 195, product.height
|
38
|
+
assert_equal 195, product.height
|
41
39
|
assert_equal 125, product.width
|
42
40
|
assert_equal 20, product.thickness
|
43
41
|
assert_equal 90, product.weight
|
@@ -49,10 +47,10 @@ describe Elibri::ONIX::Release_3_0::ONIXMessage do
|
|
49
47
|
assert_equal 'Trade title', product.trade_title
|
50
48
|
assert_equal 'Collection title (Vol. 1). Title. Subtitle (part 5)', product.full_title
|
51
49
|
|
52
|
-
assert_equal 1, product.contributors.size
|
50
|
+
assert_equal 1, product.contributors.size
|
53
51
|
product.contributors.first.tap do |sienkiewicz|
|
54
|
-
assert_equal 'B06', sienkiewicz.role
|
55
|
-
assert_equal 'pol', sienkiewicz.from_language
|
52
|
+
assert_equal 'B06', sienkiewicz.role
|
53
|
+
assert_equal 'pol', sienkiewicz.from_language
|
56
54
|
assert_equal "prof. Henryk von Sienkiewicz Ibrahim", sienkiewicz.person_name
|
57
55
|
assert_equal "prof.", sienkiewicz.titles_before_names
|
58
56
|
assert_equal "Henryk", sienkiewicz.names_before_key
|
@@ -71,7 +69,7 @@ describe Elibri::ONIX::Release_3_0::ONIXMessage do
|
|
71
69
|
assert_equal 250, product.number_of_pages
|
72
70
|
assert_equal 32, product.number_of_illustrations
|
73
71
|
|
74
|
-
assert_equal 7, product.reading_age_from
|
72
|
+
assert_equal 7, product.reading_age_from
|
75
73
|
assert_equal 25, product.reading_age_to
|
76
74
|
|
77
75
|
assert_equal 1, product.text_contents.size
|
@@ -91,7 +89,7 @@ describe Elibri::ONIX::Release_3_0::ONIXMessage do
|
|
91
89
|
|
92
90
|
assert_equal 'National Geographic', product.imprint_name
|
93
91
|
|
94
|
-
assert_equal 'GREG', product.publisher.name
|
92
|
+
assert_equal 'GREG', product.publisher.name
|
95
93
|
assert_equal "01", product.publisher.role
|
96
94
|
|
97
95
|
assert_equal "04", product.publishing_status
|
@@ -109,24 +107,24 @@ describe Elibri::ONIX::Release_3_0::ONIXMessage do
|
|
109
107
|
assert_equal 2, product.related_products.size
|
110
108
|
|
111
109
|
product.related_products.first.tap do |first_related|
|
112
|
-
#assert_equal 24, first_related.relation_code
|
110
|
+
#assert_equal 24, first_related.relation_code
|
113
111
|
#assert_equal '9788324705818', first_related.isbn13
|
114
112
|
#assert_equal({"Gildia.pl" => "Title of facsimile"}, first_related.proprietary_identifiers)
|
115
113
|
end
|
116
114
|
|
117
115
|
product.related_products[1].tap do |second_related|
|
118
|
-
#assert_equal 23, second_related.relation_code
|
116
|
+
#assert_equal 23, second_related.relation_code
|
119
117
|
#assert_equal '9788324799992', second_related.isbn13
|
120
118
|
#assert_equal({"PWN" => "Title of similar book"}, second_related.proprietary_identifiers)
|
121
119
|
end
|
122
120
|
|
123
|
-
assert_equal 2, product.supply_details.size
|
121
|
+
assert_equal 2, product.supply_details.size
|
124
122
|
|
125
123
|
product.supply_details.first.tap do |supply_detail|
|
126
124
|
supply_detail.supplier.tap do |supplier|
|
127
125
|
assert_equal "03", supplier.role
|
128
126
|
assert_equal '5213359408', supplier.nip
|
129
|
-
assert_equal 'Gildia.pl', supplier.name
|
127
|
+
assert_equal 'Gildia.pl', supplier.name
|
130
128
|
assert_equal "22 631 40 83", supplier.telephone_number
|
131
129
|
assert_equal "bok@gildia.pl", supplier.email_address
|
132
130
|
assert_equal "http://gildia.pl", supplier.website
|
@@ -140,7 +138,7 @@ describe Elibri::ONIX::Release_3_0::ONIXMessage do
|
|
140
138
|
assert_equal "02", price.type
|
141
139
|
assert_equal 20, price.minimum_order_quantity
|
142
140
|
assert_equal 12.99, price.amount
|
143
|
-
assert_equal 7, price.vat
|
141
|
+
assert_equal 7, price.vat
|
144
142
|
assert_equal 'PLN', price.currency_code
|
145
143
|
assert_equal "02", price.printed_on_product
|
146
144
|
assert price.printed_on_product?
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Elibri::ONIX::Release_3_0::ONIXMessage do
|
4
|
+
|
5
|
+
it "should be able to parse production country and cn info" do
|
6
|
+
product = load_fixture("onix_cn_production_country_example.xml")
|
7
|
+
|
8
|
+
assert_equal "4901", product.cn_code
|
9
|
+
assert_equal "DE", product.country_of_manufacture
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
@@ -56,8 +56,7 @@
|
|
56
56
|
<PublishingStatus>02</PublishingStatus>
|
57
57
|
<PublishingDate>
|
58
58
|
<PublishingDateRole>01</PublishingDateRole>
|
59
|
-
<
|
60
|
-
<Date>2011</Date>
|
59
|
+
<Date dateformat="05">2011</Date>
|
61
60
|
</PublishingDate>
|
62
61
|
<SalesRights>
|
63
62
|
<SalesRightsType>01</SalesRightsType>
|
@@ -58,7 +58,7 @@
|
|
58
58
|
<KeyNames>Keyes</KeyNames>
|
59
59
|
<BiographicalNote><p>
|
60
60
|
Daniel Keyes (1927-2014) – amerykański pisarz. Jego opowiadanie <em>Kwiaty dla Algernona</em> otrzymało nagrodę Hugo w 1960 roku. Rozwinięte do formy powieści pod tym samym tytułem doczekało się z kolei nagrody Nebula w roku 1966, a dwa lata później zostało zekranizowane jako <em>Charly</em>. Keyes opublikował także m.in. obsypaną nagrodami książkę non-fiction <em>Człowiek o 24 twarzach.</em></p>
|
61
|
-
|
61
|
+
|
62
62
|
</BiographicalNote>
|
63
63
|
</Contributor>
|
64
64
|
<Contributor sourcename="contributorid:221077" datestamp="20190614T0946">
|
@@ -194,12 +194,11 @@
|
|
194
194
|
<PublishingStatus>04</PublishingStatus>
|
195
195
|
<PublishingDate>
|
196
196
|
<!--PublishingDateRole: PUBLICATION_DATE--><PublishingDateRole>01</PublishingDateRole>
|
197
|
-
<!--DateFormat: YYYYMMDD
|
197
|
+
<!--DateFormat: YYYYMMDD-->
|
198
198
|
<Date dateformat="00">20190724</Date>
|
199
199
|
</PublishingDate>
|
200
200
|
<PublishingDate>
|
201
201
|
<PublishingDateRole>13</PublishingDateRole>
|
202
|
-
<DateFormat>00</DateFormat>
|
203
202
|
<Date dateformat="00">20250307</Date>
|
204
203
|
</PublishingDate>
|
205
204
|
<SalesRights>
|
@@ -116,12 +116,12 @@
|
|
116
116
|
<!--PublishingStatusCode: ACTIVE--><PublishingStatus>04</PublishingStatus>
|
117
117
|
<PublishingDate>
|
118
118
|
<!--PublishingDateRole: PUBLICATION_DATE--><PublishingDateRole>01</PublishingDateRole>
|
119
|
-
<!--DateFormat: YYYYMMDD
|
119
|
+
<!--DateFormat: YYYYMMDD-->
|
120
120
|
<Date dateformat="00">20180919</Date>
|
121
121
|
</PublishingDate>
|
122
122
|
<PublishingDate>
|
123
123
|
<!--PublishingDateRole: PREORDER_EMBARGO_DATE--><PublishingDateRole>27</PublishingDateRole>
|
124
|
-
<!--DateFormat: YYYYMMDD
|
124
|
+
<!--DateFormat: YYYYMMDD-->
|
125
125
|
<Date dateformat="00">20180905</Date>
|
126
126
|
</PublishingDate>
|
127
127
|
<SalesRights>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<ONIXMessage release="3.0" xmlns="http://ns.editeur.org/onix/3.0/reference">
|
3
|
+
<Header>
|
4
|
+
<Sender>
|
5
|
+
<SenderName>Elibri.com.pl</SenderName>
|
6
|
+
</Sender>
|
7
|
+
<SentDateTime>20210713</SentDateTime>
|
8
|
+
</Header>
|
9
|
+
<Product>
|
10
|
+
<RecordReference>xxx</RecordReference>
|
11
|
+
<NotificationType>03</NotificationType>
|
12
|
+
<RecordSourceName>elibri</RecordSourceName>
|
13
|
+
<ProductIdentifier>
|
14
|
+
<ProductIDType>15</ProductIDType>
|
15
|
+
<IDValue>9788364057434</IDValue>
|
16
|
+
</ProductIdentifier>
|
17
|
+
<DescriptiveDetail>
|
18
|
+
<ProductComposition>00</ProductComposition>
|
19
|
+
<ProductForm>BA</ProductForm>
|
20
|
+
<CountryOfManufacture>DE</CountryOfManufacture>
|
21
|
+
<ProductClassification>
|
22
|
+
<ProductClassificationType>01</ProductClassificationType>
|
23
|
+
<ProductClassificationCode>4901</ProductClassificationCode>
|
24
|
+
</ProductClassification>
|
25
|
+
<TitleDetail>
|
26
|
+
<TitleType>01</TitleType>
|
27
|
+
<TitleElement>
|
28
|
+
<TitleElementLevel>01</TitleElementLevel>
|
29
|
+
<TitleText language="pol">Horror show</TitleText>
|
30
|
+
</TitleElement>
|
31
|
+
</TitleDetail>
|
32
|
+
<Contributor>
|
33
|
+
<ContributorRole>A01</ContributorRole>
|
34
|
+
<UnnamedPersons>04</UnnamedPersons>
|
35
|
+
</Contributor>
|
36
|
+
</DescriptiveDetail>
|
37
|
+
<PublishingDetail>
|
38
|
+
<Publisher>
|
39
|
+
<PublishingRole>01</PublishingRole>
|
40
|
+
<PublisherName>Helion</PublisherName>
|
41
|
+
</Publisher>
|
42
|
+
<PublishingStatus>07</PublishingStatus>
|
43
|
+
<PublishingDate>
|
44
|
+
<PublishingDateRole>01</PublishingDateRole>
|
45
|
+
<Date dateformat="05">2014</Date>
|
46
|
+
</PublishingDate>
|
47
|
+
</PublishingDetail>
|
48
|
+
</Product>
|
49
|
+
</ONIXMessage>
|
@@ -1,20 +1,18 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<ONIXMessage release="3.0" xmlns="http://ns.editeur.org/onix/3.0/reference"
|
3
|
-
<elibri:Dialect>3.0.1</elibri:Dialect>
|
2
|
+
<ONIXMessage release="3.0" xmlns="http://ns.editeur.org/onix/3.0/reference">
|
4
3
|
<Header>
|
5
4
|
<Sender>
|
6
5
|
<SenderName>Elibri.com.pl</SenderName>
|
7
|
-
<ContactName>Tomasz Meka</ContactName>
|
8
|
-
<EmailAddress>kontakt@elibri.com.pl</EmailAddress>
|
9
6
|
</Sender>
|
10
|
-
<SentDateTime>
|
7
|
+
<SentDateTime>20210716</SentDateTime>
|
11
8
|
</Header>
|
12
9
|
<Product>
|
13
|
-
<RecordReference>
|
10
|
+
<RecordReference>xxx</RecordReference>
|
14
11
|
<NotificationType>03</NotificationType>
|
12
|
+
<RecordSourceName>elibri</RecordSourceName>
|
15
13
|
<ProductIdentifier>
|
16
14
|
<ProductIDType>15</ProductIDType>
|
17
|
-
<IDValue>
|
15
|
+
<IDValue>9788364057434</IDValue>
|
18
16
|
</ProductIdentifier>
|
19
17
|
<DescriptiveDetail>
|
20
18
|
<ProductComposition>00</ProductComposition>
|
@@ -23,86 +21,119 @@
|
|
23
21
|
<TitleType>01</TitleType>
|
24
22
|
<TitleElement>
|
25
23
|
<TitleElementLevel>01</TitleElementLevel>
|
26
|
-
<TitleText>
|
24
|
+
<TitleText language="pol">Horror show</TitleText>
|
27
25
|
</TitleElement>
|
28
26
|
</TitleDetail>
|
27
|
+
<Contributor>
|
28
|
+
<ContributorRole>A01</ContributorRole>
|
29
|
+
<UnnamedPersons>04</UnnamedPersons>
|
30
|
+
</Contributor>
|
29
31
|
</DescriptiveDetail>
|
32
|
+
<CollateralDetail>
|
33
|
+
<SupportingResource>
|
34
|
+
<ResourceContentType>15</ResourceContentType>
|
35
|
+
<ContentAudience>00</ContentAudience>
|
36
|
+
<ResourceMode>04</ResourceMode>
|
37
|
+
<ResourceVersion>
|
38
|
+
<ResourceForm>02</ResourceForm>
|
39
|
+
<ResourceVersionFeature>
|
40
|
+
<ResourceVersionFeatureType>01</ResourceVersionFeatureType>
|
41
|
+
<FeatureValue>E101</FeatureValue>
|
42
|
+
</ResourceVersionFeature>
|
43
|
+
<ResourceVersionFeature>
|
44
|
+
<ResourceVersionFeatureType>06</ResourceVersionFeatureType>
|
45
|
+
<FeatureValue>4b145ff46636b06f49225abdab70927f</FeatureValue>
|
46
|
+
</ResourceVersionFeature>
|
47
|
+
<ResourceVersionFeature>
|
48
|
+
<ResourceVersionFeatureType>07</ResourceVersionFeatureType>
|
49
|
+
<FeatureValue>2100230</FeatureValue>
|
50
|
+
</ResourceVersionFeature>
|
51
|
+
<ResourceLink>https://www.elibri.com.pl/excerpt/767/4b145ff46636b06f49225abdab70927f/fragment.epub</ResourceLink>
|
52
|
+
<ContentDate>
|
53
|
+
<ContentDateRole>17</ContentDateRole>
|
54
|
+
<Date dateformat="13">20121230T1518Z</Date>
|
55
|
+
</ContentDate>
|
56
|
+
</ResourceVersion>
|
57
|
+
<ResourceVersion>
|
58
|
+
<ResourceForm>02</ResourceForm>
|
59
|
+
<ResourceVersionFeature>
|
60
|
+
<ResourceVersionFeatureType>01</ResourceVersionFeatureType>
|
61
|
+
<FeatureValue>E127</FeatureValue>
|
62
|
+
</ResourceVersionFeature>
|
63
|
+
<ResourceVersionFeature>
|
64
|
+
<ResourceVersionFeatureType>06</ResourceVersionFeatureType>
|
65
|
+
<FeatureValue>3b452923564374efebc5bfe1059f5fd2</FeatureValue>
|
66
|
+
</ResourceVersionFeature>
|
67
|
+
<ResourceVersionFeature>
|
68
|
+
<ResourceVersionFeatureType>07</ResourceVersionFeatureType>
|
69
|
+
<FeatureValue>2100244</FeatureValue>
|
70
|
+
</ResourceVersionFeature>
|
71
|
+
<ResourceLink>https://www.elibri.com.pl/excerpt/768/3b452923564374efebc5bfe1059f5fd2/fragment.mobi</ResourceLink>
|
72
|
+
<ContentDate>
|
73
|
+
<ContentDateRole>17</ContentDateRole>
|
74
|
+
<Date dateformat="13">20121230T1518Z</Date>
|
75
|
+
</ContentDate>
|
76
|
+
</ResourceVersion>
|
77
|
+
</SupportingResource>
|
78
|
+
</CollateralDetail>
|
30
79
|
<PublishingDetail>
|
31
80
|
<Publisher>
|
32
81
|
<PublishingRole>01</PublishingRole>
|
33
|
-
<
|
34
|
-
<PublisherIDType>01</PublisherIDType>
|
35
|
-
<IDTypeName>ElibriPublisherCode</IDTypeName>
|
36
|
-
<IDValue>11</IDValue>
|
37
|
-
</PublisherIdentifier>
|
38
|
-
<PublisherName>GREG</PublisherName>
|
82
|
+
<PublisherName>Helion</PublisherName>
|
39
83
|
</Publisher>
|
40
|
-
<
|
41
|
-
<
|
42
|
-
|
43
|
-
<
|
44
|
-
|
45
|
-
<RegionsIncluded>WORLD</RegionsIncluded>
|
46
|
-
</Territory>
|
47
|
-
</SalesRights>
|
84
|
+
<PublishingStatus>07</PublishingStatus>
|
85
|
+
<PublishingDate>
|
86
|
+
<PublishingDateRole>01</PublishingDateRole>
|
87
|
+
<Date dateformat="05">2014</Date>
|
88
|
+
</PublishingDate>
|
48
89
|
</PublishingDetail>
|
49
|
-
<
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
<
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
</
|
95
|
-
</
|
96
|
-
</
|
97
|
-
<elibri:preview_exists>false</elibri:preview_exists>
|
98
|
-
<elibri:SaleNotRestricted/>
|
99
|
-
<elibri:excerpts>
|
100
|
-
<elibri:excerpt md5="4b145ff46636b06f49225abdab70927f" file_size="2100230" file_type="epub_excerpt" updated_at="2012-12-30T15:18:00+00:00" id="777">https://www.elibri.com.pl/excerpt/767</elibri:excerpt>
|
101
|
-
<elibri:excerpt md5="6f534ab6ab573845bb7ab221192aa86a" file_size="2101254" file_type="mobi_excerpt" updated_at="2012-12-30T15:16:00+00:00" id="778">https://www.elibri.com.pl/excerpt/768</elibri:excerpt>
|
102
|
-
</elibri:excerpts>
|
103
|
-
<elibri:masters>
|
104
|
-
<elibri:master id="775" md5="e9353ce40eaa677f8c5d666c2f8bbb3f" file_size="4197382" file_type="epub" updated_at="2012-12-30T15:18:00+00:00"/>
|
105
|
-
<elibri:master id="776" md5="d2c75a26973a1888f241125717b166cf" file_size="5246982" file_type="mobi" updated_at="2012-12-30T15:16:00+00:00"/>
|
106
|
-
</elibri:masters>
|
90
|
+
<ProductionDetail>
|
91
|
+
<ProductionManifest>
|
92
|
+
<BodyManifest>
|
93
|
+
<BodyResource>
|
94
|
+
<SequenceNumber>1</SequenceNumber>
|
95
|
+
<ResourceIdentifier>
|
96
|
+
<ResourceIDType>01</ResourceIDType>
|
97
|
+
<IDTypeName>elibri internal numerical ID</IDTypeName>
|
98
|
+
<IDValue>765</IDValue>
|
99
|
+
</ResourceIdentifier>
|
100
|
+
<ResourceFileFeature>
|
101
|
+
<ResourceFileFeatureType>07</ResourceFileFeatureType>
|
102
|
+
<ResourceFileFeatureValue>4197382</ResourceFileFeatureValue>
|
103
|
+
</ResourceFileFeature>
|
104
|
+
<ResourceFileFeature>
|
105
|
+
<ResourceFileFeatureType>06</ResourceFileFeatureType>
|
106
|
+
<ResourceFileFeatureValue>e9353ce40eaa677f8c5d666c2f8bbb3f</ResourceFileFeatureValue>
|
107
|
+
</ResourceFileFeature>
|
108
|
+
<ResourceFileLink>pan-tadeusz.epub</ResourceFileLink>
|
109
|
+
<ResourceFileDate>
|
110
|
+
<ResourceFileDateRole>17</ResourceFileDateRole>
|
111
|
+
<Date dateformat="13">20121230T1518Z</Date>
|
112
|
+
</ResourceFileDate>
|
113
|
+
</BodyResource>
|
114
|
+
<BodyResource>
|
115
|
+
<SequenceNumber>2</SequenceNumber>
|
116
|
+
<ResourceIdentifier>
|
117
|
+
<ResourceIDType>01</ResourceIDType>
|
118
|
+
<IDTypeName>elibri internal numerical ID</IDTypeName>
|
119
|
+
<IDValue>2</IDValue>
|
120
|
+
</ResourceIdentifier>
|
121
|
+
<ResourceFileFeature>
|
122
|
+
<ResourceFileFeatureType>07</ResourceFileFeatureType>
|
123
|
+
<ResourceFileFeatureValue>9177122</ResourceFileFeatureValue>
|
124
|
+
</ResourceFileFeature>
|
125
|
+
<ResourceFileFeature>
|
126
|
+
<ResourceFileFeatureType>06</ResourceFileFeatureType>
|
127
|
+
<ResourceFileFeatureValue>44452923564374efebc5bfe1059f5fb8</ResourceFileFeatureValue>
|
128
|
+
</ResourceFileFeature>
|
129
|
+
<ResourceFileLink>pan-tadeusz.mobi</ResourceFileLink>
|
130
|
+
<ResourceFileDate>
|
131
|
+
<ResourceFileDateRole>17</ResourceFileDateRole>
|
132
|
+
<Date dateformat="13">20121230T1518Z</Date>
|
133
|
+
</ResourceFileDate>
|
134
|
+
</BodyResource>
|
135
|
+
</BodyManifest>
|
136
|
+
</ProductionManifest>
|
137
|
+
</ProductionDetail>
|
107
138
|
</Product>
|
108
139
|
</ONIXMessage>
|
@@ -41,13 +41,11 @@
|
|
41
41
|
<PublishingStatus>02</PublishingStatus>
|
42
42
|
<PublishingDate>
|
43
43
|
<PublishingDateRole>01</PublishingDateRole>
|
44
|
-
<
|
45
|
-
<Date>20110210</Date>
|
44
|
+
<Date dateformat="00">20110210</Date>
|
46
45
|
</PublishingDate>
|
47
46
|
<PublishingDate>
|
48
47
|
<PublishingDateRole>27</PublishingDateRole>
|
49
|
-
<
|
50
|
-
<Date>20110201</Date>
|
48
|
+
<Date dateformat="00">20110201</Date>
|
51
49
|
</PublishingDate>
|
52
50
|
<SalesRights>
|
53
51
|
<SalesRightsType>01</SalesRightsType>
|
@@ -41,8 +41,7 @@
|
|
41
41
|
<PublishingStatus>04</PublishingStatus>
|
42
42
|
<PublishingDate>
|
43
43
|
<PublishingDateRole>01</PublishingDateRole>
|
44
|
-
<
|
45
|
-
<Date>201102</Date>
|
44
|
+
<Date dateformat="01">201102</Date>
|
46
45
|
</PublishingDate>
|
47
46
|
<SalesRights>
|
48
47
|
<SalesRightsType>01</SalesRightsType>
|
@@ -102,12 +102,12 @@
|
|
102
102
|
<!--PublishingStatusCode: ACTIVE--><PublishingStatus>04</PublishingStatus>
|
103
103
|
<PublishingDate>
|
104
104
|
<!--PublishingDateRole: PUBLICATION_DATE--><PublishingDateRole>01</PublishingDateRole>
|
105
|
-
<!--DateFormat: YYYYMMDD
|
105
|
+
<!--DateFormat: YYYYMMDD-->
|
106
106
|
<Date dateformat="00">20190227</Date>
|
107
107
|
</PublishingDate>
|
108
108
|
<PublishingDate>
|
109
109
|
<!--PublishingDateRole: PREORDER_EMBARGO_DATE--><PublishingDateRole>27</PublishingDateRole>
|
110
|
-
<!--DateFormat: YYYYMMDD
|
110
|
+
<!--DateFormat: YYYYMMDD-->
|
111
111
|
<Date dateformat="00">20190213</Date>
|
112
112
|
</PublishingDate>
|
113
113
|
<SalesRights>
|
@@ -41,8 +41,7 @@
|
|
41
41
|
<PublishingStatus>04</PublishingStatus>
|
42
42
|
<PublishingDate>
|
43
43
|
<PublishingDateRole>01</PublishingDateRole>
|
44
|
-
<
|
45
|
-
<Date>20120712</Date>
|
44
|
+
<Date dateformat="00">20120712</Date>
|
46
45
|
</PublishingDate>
|
47
46
|
<SalesRights>
|
48
47
|
<SalesRightsType>01</SalesRightsType>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elibri_onix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcin Urbanski
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-05-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -220,6 +220,7 @@ files:
|
|
220
220
|
- test/elibri_onix_test.rb
|
221
221
|
- test/elibri_product_form_features_test.rb
|
222
222
|
- test/elibri_product_form_test.rb
|
223
|
+
- test/elibri_production_country_test.rb
|
223
224
|
- test/elibri_publisher_info_test.rb
|
224
225
|
- test/elibri_publishing_status_test.rb
|
225
226
|
- test/elibri_record_identifiers_test.rb
|
@@ -239,6 +240,7 @@ files:
|
|
239
240
|
- test/fixtures/onix_audiobook_example.xml
|
240
241
|
- test/fixtures/onix_audiobook_extent_example.xml
|
241
242
|
- test/fixtures/onix_board_game_example.xml
|
243
|
+
- test/fixtures/onix_cn_production_country_example.xml
|
242
244
|
- test/fixtures/onix_collective_work_example.xml
|
243
245
|
- test/fixtures/onix_contributors_example.xml
|
244
246
|
- test/fixtures/onix_ebook_extent_example.xml
|