elibri_onix 0.5.15 → 0.5.18

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a7367d6b1d07cbd4a161bbd6a7ae0760466d4b6b3ace59975e06f026573e5944
4
- data.tar.gz: 22f863fc8e21306ed1dbf320fa7efa3c20f18f55932cae3795e9c32d60c98f36
3
+ metadata.gz: ca0645c584580d719c89e9b25ff1908512fe60640860f8db37d1a9f38e27f46f
4
+ data.tar.gz: ee00d482ce6d81af64b2d0298dad3246defe9a95e254b3f98b6c07b3641b1545
5
5
  SHA512:
6
- metadata.gz: 907a89cfdf1d7431eeafc4b98fb27f8eacf7145cd2c396351f53eddac38e3aa253fae78a097a7a3d2103581b864b25fd43437abe0e3d21c101ea492cf1c2017c
7
- data.tar.gz: fc336cb061e06884535668ef61869a5c4f7b06eb327c8bddf2f49af9a54b603cf1cdd41b67330197193f92e4029a7996892000f92a70b16d7570ee7292c2b0c2
6
+ metadata.gz: 5d9f3bc6101130b9dba2636d17513d46333e178cb565a3bd241bfd54452ee0fad96f1e64a1cf1e079ad0bdfcddb07a1cc878804991663498f9c5bfc2f7be263d
7
+ data.tar.gz: 62a3deb1650b9fbee4e97a471db03737a1d0c992b6cc14318c82742d088624419d13cdc06d154a80034782ea6c156dbdf805c3e0886cfb31651d8a885648cb58
@@ -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
- @file_type = data.attributes['file_type'].value
24
- @file_size = data.attributes['file_size'].value.to_i
25
- @md5 = data.attributes['md5'].value
26
- @updated_at = Time.parse(data.attributes['updated_at'].value)
27
- @eid = data.attributes['id'].value.to_i
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
- price_sd = @supply_details.find { |sd| sd.supplier && sd.supplier.role == Elibri::ONIX::Dict::Release_3_0::SupplierRole::PUB_TO_RET }
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
- begin
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
- if classification = data.css('ProductClassification').find { |cl|
391
- cl.at_css('ProductClassificationType').text == Elibri::ONIX::Dict::Release_3_0::ProductClassificationType::PKWIU }
392
- @pkwiu = classification.at_css('ProductClassificationCode').text
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) }
@@ -443,7 +454,12 @@ module Elibri
443
454
  else
444
455
  @sale_restricted_to_poland = false
445
456
  end
457
+ end
446
458
 
459
+ def exclusive_distributor_onix_code
460
+ if @sales_restrictions.size > 0
461
+ @sales_restrictions[0].outlet_code
462
+ end
447
463
  end
448
464
 
449
465
  def sales_restrictions?
@@ -7,25 +7,29 @@ module Elibri
7
7
 
8
8
  class SalesRestriction
9
9
 
10
- #from ONIX documentation:
10
+ #from ONIX documentation:
11
11
  #A group of data elements which together identify a non-territorial sales restriction which a publisher applies to a product.
12
12
  #Optional and repeatable.
13
13
 
14
14
  include HashId
15
-
15
+
16
16
  ATTRIBUTES = [
17
17
  :type, :outlet_name, :end_date
18
18
  ]
19
-
19
+
20
20
  RELATIONS = []
21
-
22
- attr_accessor :type, :outlet_name, :end_date, :to_xml
23
-
21
+
22
+ attr_accessor :type, :outlet_name, :outlet_code, :end_date, :to_xml
23
+
24
24
  def initialize(data)
25
25
  @to_xml = data.to_s
26
26
  @type = data.at_css('SalesRestrictionType').try(:text).try(:to_i)
27
27
  if data.at_css('SalesOutlet')
28
28
  @outlet_name = data.at_css('SalesOutlet').at_css('SalesOutletName').try(:text)
29
+ outlet_id_struct = data.at_css('SalesOutlet').at_css('SalesOutletIdentifier')
30
+ if outlet_id_struct && outlet_id_struct.at_css("SalesOutletIDType").try(:text) == "03"
31
+ @outlet_code = outlet_id_struct.at_css("IDValue").try(:text)
32
+ end
29
33
  end
30
34
  @end_date = Date.parse(data.at_css('EndDate').try(:text)) if data.at_css('EndDate')
31
35
  end
@@ -2,7 +2,7 @@ module Elibri
2
2
  module ONIX
3
3
  z = $VERBOSE
4
4
  $VERBOSE = nil
5
- VERSION = "0.5.15"
5
+ VERSION = "0.5.18"
6
6
  Version = VERSION
7
7
  $VERBOSE = z
8
8
  end
@@ -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
@@ -0,0 +1,11 @@
1
+ require 'helper'
2
+
3
+ describe Elibri::ONIX::Release_3_0::ONIXMessage do
4
+
5
+ it "should be able to parse information about exclusive distrubution restriction" do
6
+ product = load_fixture("onix_exclusive_distributor_example.xml")
7
+ assert product.sales_restrictions?
8
+ assert_equal "EMP", product.exclusive_distributor_onix_code
9
+ end
10
+
11
+ end
@@ -21,7 +21,6 @@ describe Elibri::ONIX::Release_3_0::ONIXMessage do
21
21
  assert_equal 5, product.vat
22
22
  assert_equal "PROMO 20", product.additional_trade_information
23
23
  assert_equal "58.11.1", product.pkwiu
24
- assert_equal "twarda z obwolutą", product.cover_type
25
24
  end
26
25
 
27
26
  end
@@ -7,7 +7,7 @@ describe Elibri::ONIX::Release_3_0::ONIXMessage do
7
7
 
8
8
  product = load_fixture("onix_epub_details_example.xml")
9
9
  assert_equal ["EPUB", "MOBI"], product.digital_formats
10
- assert_equal "DRM", product.technical_protection
11
- assert_equal "01", product.technical_protection_onix_code
10
+ assert_equal "watermark", product.technical_protection
11
+ assert_equal "02", product.technical_protection_onix_code
12
12
  end
13
13
  end
@@ -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
@@ -269,8 +269,7 @@
269
269
  00 - RRRRMMDD
270
270
  01 - RRRRMM
271
271
  05 - RRRR -->
272
- <DateFormat>05</DateFormat>
273
- <Date>2011</Date>
272
+ <Date dateformat="05">2011</Date>
274
273
  </PublishingDate>
275
274
  <SalesRestriction>
276
275
  <!-- Typ restrykcji - zawsze 04 -->
@@ -56,8 +56,7 @@
56
56
  <PublishingStatus>02</PublishingStatus>
57
57
  <PublishingDate>
58
58
  <PublishingDateRole>01</PublishingDateRole>
59
- <DateFormat>05</DateFormat>
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>&lt;p&gt;
60
60
  Daniel Keyes (1927-2014) – amerykański pisarz. Jego opowiadanie &lt;em&gt;Kwiaty dla Algernona&lt;/em&gt; 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 &lt;em&gt;Charly&lt;/em&gt;. Keyes opublikował także m.in. obsypaną nagrodami książkę non-fiction &lt;em&gt;Człowiek o 24 twarzach.&lt;/em&gt;&lt;/p&gt;
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--><DateFormat>00</DateFormat>
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--><DateFormat>00</DateFormat>
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--><DateFormat>00</DateFormat>
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" xmlns:elibri="http://elibri.com.pl/ns/extensions">
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>20130710</SentDateTime>
7
+ <SentDateTime>20210716</SentDateTime>
11
8
  </Header>
12
9
  <Product>
13
- <RecordReference>fdb8fa072be774d97a97</RecordReference>
10
+ <RecordReference>xxx</RecordReference>
14
11
  <NotificationType>03</NotificationType>
12
+ <RecordSourceName>elibri</RecordSourceName>
15
13
  <ProductIdentifier>
16
14
  <ProductIDType>15</ProductIDType>
17
- <IDValue>9788324799992</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>Nielegalni</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
- <PublisherIdentifier>
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
- <CityOfPublication>Warszawa</CityOfPublication>
41
- <PublishingStatus>04</PublishingStatus>
42
- <SalesRights>
43
- <SalesRightsType>01</SalesRightsType>
44
- <Territory>
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
- <elibri:preview_exists>false</elibri:preview_exists>
50
- <elibri:SaleNotRestricted/>
51
- <elibri:excerpts>
52
- <elibri:excerpt md5="4b145ff46636b06f49225abdab70927f" file_size="2100230" file_type="epub_excerpt" updated_at="2012-12-30T15:18:00+00:00" id="767">https://www.elibri.com.pl/excerpt/767</elibri:excerpt>
53
- <elibri:excerpt md5="6f534ab6ab573845bb7ab221192aa86a" file_size="2101254" file_type="mobi_excerpt" updated_at="2012-12-30T15:16:00+00:00" id="768">https://www.elibri.com.pl/excerpt/768</elibri:excerpt>
54
- </elibri:excerpts>
55
- <elibri:masters>
56
- <elibri:master id="765" md5="e9353ce40eaa677f8c5d666c2f8bbb3f" file_size="4197382" file_type="epub" updated_at="2012-12-30T15:18:00+00:00"/>
57
- <elibri:master id="766" md5="d2c75a26973a1888f241125717b166cf" file_size="5246982" file_type="mobi" updated_at="2012-12-30T15:16:00+00:00"/>
58
- </elibri:masters>
59
- </Product>
60
- <Product>
61
- <RecordReference>fdb8fa072be774d97a98</RecordReference>
62
- <NotificationType>03</NotificationType>
63
- <ProductIdentifier>
64
- <ProductIDType>15</ProductIDType>
65
- <IDValue>9788324799993</IDValue>
66
- </ProductIdentifier>
67
- <DescriptiveDetail>
68
- <ProductComposition>00</ProductComposition>
69
- <ProductForm>EA</ProductForm>
70
- <TitleDetail>
71
- <TitleType>01</TitleType>
72
- <TitleElement>
73
- <TitleElementLevel>01</TitleElementLevel>
74
- <TitleText>Legalni</TitleText>
75
- </TitleElement>
76
- </TitleDetail>
77
- </DescriptiveDetail>
78
- <PublishingDetail>
79
- <Publisher>
80
- <PublishingRole>01</PublishingRole>
81
- <PublisherIdentifier>
82
- <PublisherIDType>01</PublisherIDType>
83
- <IDTypeName>ElibriPublisherCode</IDTypeName>
84
- <IDValue>11</IDValue>
85
- </PublisherIdentifier>
86
- <PublisherName>GREG</PublisherName>
87
- </Publisher>
88
- <CityOfPublication>Warszawa</CityOfPublication>
89
- <PublishingStatus>04</PublishingStatus>
90
- <SalesRights>
91
- <SalesRightsType>01</SalesRightsType>
92
- <Territory>
93
- <RegionsIncluded>WORLD</RegionsIncluded>
94
- </Territory>
95
- </SalesRights>
96
- </PublishingDetail>
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>
@@ -21,7 +21,7 @@
21
21
  <ProductForm>EA</ProductForm>
22
22
  <ProductFormDetail>E101</ProductFormDetail>
23
23
  <ProductFormDetail>E127</ProductFormDetail>
24
- <EpubTechnicalProtection>01</EpubTechnicalProtection>
24
+ <EpubTechnicalProtection>02</EpubTechnicalProtection>
25
25
  <TitleDetail>
26
26
  <TitleType>01</TitleType>
27
27
  <TitleElement>
@@ -0,0 +1,62 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
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
+ <ContactName>Tomasz Meka</ContactName>
7
+ <EmailAddress>kontakt@elibri.com.pl</EmailAddress>
8
+ </Sender>
9
+ <SentDateTime>20111111</SentDateTime>
10
+ </Header>
11
+ <Product>
12
+ <RecordReference>fdb8fa072be774d97a97</RecordReference>
13
+ <NotificationType>03</NotificationType>
14
+ <ProductIdentifier>
15
+ <ProductIDType>15</ProductIDType>
16
+ <IDValue>9788324799992</IDValue>
17
+ </ProductIdentifier>
18
+ <DescriptiveDetail>
19
+ <ProductComposition>00</ProductComposition>
20
+ <ProductForm>EA</ProductForm>
21
+ <TitleDetail>
22
+ <TitleType>01</TitleType>
23
+ <TitleElement>
24
+ <TitleElementLevel>01</TitleElementLevel>
25
+ <TitleText>Nielegalni</TitleText>
26
+ </TitleElement>
27
+ </TitleDetail>
28
+ </DescriptiveDetail>
29
+ <PublishingDetail>
30
+ <Publisher>
31
+ <PublishingRole>01</PublishingRole>
32
+ <PublisherIdentifier>
33
+ <PublisherIDType>01</PublisherIDType>
34
+ <IDTypeName>ElibriPublisherCode</IDTypeName>
35
+ <IDValue>11</IDValue>
36
+ </PublisherIdentifier>
37
+ <PublisherName>GREG</PublisherName>
38
+ </Publisher>
39
+ <CityOfPublication>Warszawa</CityOfPublication>
40
+ <PublishingStatus>04</PublishingStatus>
41
+ <PublishingDate>
42
+ <PublishingDateRole>01</PublishingDateRole>
43
+ <Date dateformat="00">20120712</Date>
44
+ </PublishingDate>
45
+ <SalesRights>
46
+ <SalesRightsType>01</SalesRightsType>
47
+ <Territory>
48
+ <RegionsIncluded>WORLD</RegionsIncluded>
49
+ </Territory>
50
+ </SalesRights>
51
+ <SalesRestriction>
52
+ <SalesRestrictionType>04</SalesRestrictionType>
53
+ <SalesOutlet>
54
+ <SalesOutletIdentifier>
55
+ <SalesOutletIDType>03</SalesOutletIDType>
56
+ <IDValue>EMP</IDValue>
57
+ </SalesOutletIdentifier>
58
+ </SalesOutlet>
59
+ </SalesRestriction>
60
+ </PublishingDetail>
61
+ </Product>
62
+ </ONIXMessage>
@@ -41,13 +41,11 @@
41
41
  <PublishingStatus>02</PublishingStatus>
42
42
  <PublishingDate>
43
43
  <PublishingDateRole>01</PublishingDateRole>
44
- <DateFormat>00</DateFormat>
45
- <Date>20110210</Date>
44
+ <Date dateformat="00">20110210</Date>
46
45
  </PublishingDate>
47
46
  <PublishingDate>
48
47
  <PublishingDateRole>27</PublishingDateRole>
49
- <DateFormat>00</DateFormat>
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
- <DateFormat>01</DateFormat>
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--><DateFormat>00</DateFormat>
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--><DateFormat>00</DateFormat>
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
- <DateFormat>00</DateFormat>
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.15
4
+ version: 0.5.18
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: 2021-05-26 00:00:00.000000000 Z
12
+ date: 2024-04-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -208,6 +208,7 @@ files:
208
208
  - test/elibri_contributors_test.rb
209
209
  - test/elibri_ebook_files_test.rb
210
210
  - test/elibri_edition_test.rb
211
+ - test/elibri_exclusive_distributor_test.rb
211
212
  - test/elibri_extensions_test.rb
212
213
  - test/elibri_extent_test.rb
213
214
  - test/elibri_formats_and_protection_test.rb
@@ -220,6 +221,7 @@ files:
220
221
  - test/elibri_onix_test.rb
221
222
  - test/elibri_product_form_features_test.rb
222
223
  - test/elibri_product_form_test.rb
224
+ - test/elibri_production_country_test.rb
223
225
  - test/elibri_publisher_info_test.rb
224
226
  - test/elibri_publishing_status_test.rb
225
227
  - test/elibri_record_identifiers_test.rb
@@ -239,6 +241,7 @@ files:
239
241
  - test/fixtures/onix_audiobook_example.xml
240
242
  - test/fixtures/onix_audiobook_extent_example.xml
241
243
  - test/fixtures/onix_board_game_example.xml
244
+ - test/fixtures/onix_cn_production_country_example.xml
242
245
  - test/fixtures/onix_collective_work_example.xml
243
246
  - test/fixtures/onix_contributors_example.xml
244
247
  - test/fixtures/onix_ebook_extent_example.xml
@@ -246,6 +249,7 @@ files:
246
249
  - test/fixtures/onix_edition_example.xml
247
250
  - test/fixtures/onix_elibri_extensions_example.xml
248
251
  - test/fixtures/onix_epub_details_example.xml
252
+ - test/fixtures/onix_exclusive_distributor_example.xml
249
253
  - test/fixtures/onix_languages_example.xml
250
254
  - test/fixtures/onix_measurement_example.xml
251
255
  - test/fixtures/onix_no_contributors_example.xml
@@ -288,7 +292,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
288
292
  - !ruby/object:Gem::Version
289
293
  version: '0'
290
294
  requirements: []
291
- rubygems_version: 3.0.1
295
+ rubygems_version: 3.1.6
292
296
  signing_key:
293
297
  specification_version: 4
294
298
  summary: EDItEUR ONIX format subset implementation used in Elibri publication system