elibri_watermarking 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -37,6 +37,22 @@ Biblioteka daje nam do dyspozycji parę metod, odpowiadających wywołaniom meto
37
37
  * deliver (przyjmuje jeden parametr: identifykator transacji [otrzymany od watermark]) - wywołuje żądanie dostarczenia zwatermarkowanego pliku do bucketu klienta na s3
38
38
  * watermark_and_deliver (przyjmuje parametry identyczne jak watermark, zwraca identyfikator transacji, który klient zobowiązany jest zapisać i przechowywać) - wywołuje watermarkowanie pliku, a następnie żąda jego dostarczenia do bucketu klienta na s3
39
39
  * retry (przyjmuje jako parametr identyfikator transakcji, zwraca identyfikator nowej transakcji) - wywołuje żądanie ponowienia watermarkingu pliku, który został już ściągnięty (uwaga - sklep jest zobowiązany do przetrzymywanie zwatermarkowanego pliku przynajmniej przez 7 dni, dopiero po tym czasie możliwe jest wywołanie retry). Watermarking wykonywany jest z identycznymi parametrami, jak poprzedni. Klient zobowiązany jest zapisać i przechowywać nowy identyfikator transakcji. Po komendzie retry, niezbędne jest wywołanie komendy deliver w celu dostarczeni pliku do bucketu s3. Uwaga! Każdą transakcję retryować mozna tylko raz - w przypadku kolejnego żądania retry, konieczne jest podanie identyfikatora transakcji otrzymanego od poprzedniej komendy retry.
40
+ * available_files - zwraca listę dostępnych do watermarkingu przez klienta plików. Pliki są zwracane w postaci tablicy hashów, postaci:
41
+ ```ruby
42
+ [
43
+ {:product =>
44
+ {
45
+ :record_reference => 'a'
46
+ :publisher_name => 'b'
47
+ :publisher_id => 1
48
+ :isbn => '1234'
49
+ :title => 'Tytuł',
50
+ :formats => ["epub", "mobi"]
51
+ :premiere => "data premiery (jeśli w przyszłości - plik jest jeszcze niedostępny)"
52
+ }
53
+ }
54
+ ]
55
+ ```
40
56
 
41
57
  ## Błędy
42
58
 
@@ -5,6 +5,7 @@ require 'digest/md5'
5
5
  require 'base64'
6
6
  require 'cgi'
7
7
  require 'openssl'
8
+ require 'json'
8
9
 
9
10
  module ElibriWatermarking
10
11
  class Client
@@ -64,6 +65,20 @@ module ElibriWatermarking
64
65
  return validate_response(res)
65
66
  end
66
67
 
68
+ def available_files
69
+ uri = URI(self.url + '/available_files.json')
70
+ timestamp = Time.now.to_i
71
+ sig = CGI.escape(Base64.encode64(OpenSSL::HMAC.digest('sha1', timestamp.to_s, self.secret)).strip)
72
+ data = {'stamp' => timestamp, 'sig' => sig, 'token' => self.token}
73
+ req = Net::HTTP::Get.new(uri.path)
74
+ req.set_form_data(data)
75
+ http = Net::HTTP.new(uri.host, uri.port)
76
+ http.use_ssl = true
77
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
78
+ res = http.start {|http| http.request(req) }
79
+ return JSON.parse(validate_response(res))
80
+ end
81
+
67
82
  def watermark_and_deliver(ident, formats, visible_watermark, title_postfix)
68
83
  trans_id = watermark(ident, formats, visible_watermark, title_postfix)
69
84
  return trans_id if deliver(trans_id) == "OK"
@@ -1,3 +1,3 @@
1
1
  module ElibriWatermarking
2
- VERSION = "0.4.2"
2
+ VERSION = "0.5.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elibri_watermarking
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-04 00:00:00.000000000 Z
12
+ date: 2012-08-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -55,12 +55,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
55
55
  - - ! '>='
56
56
  - !ruby/object:Gem::Version
57
57
  version: '0'
58
+ segments:
59
+ - 0
60
+ hash: 788559910828618553
58
61
  required_rubygems_version: !ruby/object:Gem::Requirement
59
62
  none: false
60
63
  requirements:
61
64
  - - ! '>='
62
65
  - !ruby/object:Gem::Version
63
66
  version: '0'
67
+ segments:
68
+ - 0
69
+ hash: 788559910828618553
64
70
  requirements: []
65
71
  rubyforge_project: elibri_watermarking
66
72
  rubygems_version: 1.8.24