elibri_onix 0.5.15 → 0.5.17
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/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
|