poms 1.0.1 → 1.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +11 -3
- data/README.md +12 -0
- data/lib/poms/api/auth.rb +40 -0
- data/lib/poms/api/request.rb +44 -0
- data/lib/poms/merged_series.rb +5 -4
- data/lib/poms/version.rb +1 -1
- data/poms.gemspec +4 -5
- data/spec/fixtures/vcr_cassettes/poms/builderless/broadcast_starts_at/returns_a_datetime.yml +17 -17
- data/spec/fixtures/vcr_cassettes/poms/builderless/clip/has_a_position.yml +16 -16
- data/spec/fixtures/vcr_cassettes/poms/builderless/clip/has_a_title.yml +16 -16
- data/spec/fixtures/vcr_cassettes/poms/builderless/clip/has_a_video_url.yml +16 -16
- data/spec/fixtures/vcr_cassettes/poms/builderless/clip/has_an_image_id.yml +17 -17
- data/spec/fixtures/vcr_cassettes/poms/fetch_broadcasts_fetch_current_broadcast_fetches_the_current_broadcast.yml +17 -17
- data/spec/fixtures/vcr_cassettes/poms/fetch_broadcasts_fetch_next_broadcast_and_key_fetches_the_current_broadcast.yml +68 -0
- data/spec/fixtures/vcr_cassettes/poms/fetch_broadcasts_fetch_next_broadcast_and_key_returns_the_key.yml +68 -0
- data/spec/fixtures/vcr_cassettes/poms/merged_series/turns_the_json_into_a_hash.yml +19 -19
- data/spec/fixtures/vcr_cassettes/poms_fetch/a_broadcast_has_scheduled_events_with_last_with_starts_at.yml +13 -13
- data/spec/fixtures/vcr_cassettes/poms_fetch/a_clip_has_a_title.yml +16 -16
- data/spec/fixtures/vcr_cassettes/poms_fetch/an_aankeiler_has_images.yml +13 -13
- data/spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast/has_a_mid.yml +16 -16
- data/spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast/has_a_title.yml +16 -16
- data/spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast/has_scheduled_events_with_last_with_starts_at.yml +16 -16
- data/spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast_and_key/has_a_broadcast_with_a_mid.yml +16 -16
- data/spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast_and_key/has_a_key.yml +16 -16
- data/spec/fixtures/vcr_cassettes/poms_fetch_group/has_a_child_with_a_media_type.yml +409 -383
- data/spec/fixtures/vcr_cassettes/poms_fetch_group/has_a_child_with_a_title.yml +409 -383
- data/spec/fixtures/vcr_cassettes/poms_fetch_playlist_clips/creates_an_array_of_clips.yml +987 -906
- data/spec/lib/poms/api/auth_spec.rb +34 -0
- data/spec/lib/poms/api/request_spec.rb +30 -0
- data/spec/lib/poms/builderless/clip_spec.rb +2 -2
- data/spec/lib/poms/merged_series_spec.rb +8 -10
- data/spec/lib/poms/views_spec.rb +2 -2
- data/spec/lib/poms_spec.rb +14 -14
- data/spec/spec_helper.rb +4 -4
- metadata +14 -18
- data/spec/fixtures/vcr_cassettes/poms/builderless/broadcast/has_a_position.yml +0 -43
- data/spec/fixtures/vcr_cassettes/poms/builderless/broadcast/has_a_title.yml +0 -43
- data/spec/fixtures/vcr_cassettes/poms/builderless/broadcast/has_a_video_url.yml +0 -43
- data/spec/fixtures/vcr_cassettes/poms/builderless/broadcast/has_an_image_id.yml +0 -43
- data/spec/fixtures/vcr_cassettes/poms/merged_series/is_enumerable.yml +0 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea2f8a418ece2d7e6a781048eface1f3e59718a8
|
4
|
+
data.tar.gz: 119fe18a3cbed68a20e9cedcd65eb4462633b213
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f443e47960ae7bacf500761fac52a7474adbc4cf9f3152b26c28495887b2d079da37c07ae124aa2968f80c1a8d2afc87ff536f673770673ddac28b3a20825e1e
|
7
|
+
data.tar.gz: 1d3a79509b18fcd9f5e489bd5e870407293a560f3073d7714fc766d7a07d750dea74154fd3a6a3ba70066bfa0f20d24707b45a7eecff0102d035d466d74b48f4
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Poms Release notes
|
2
2
|
|
3
|
+
## 1.1.0
|
4
|
+
|
5
|
+
* Updated README with usage instruction.
|
6
|
+
* [#21] Allow access to the Poms API. This functionality is only used for merging series at this point.
|
7
|
+
|
3
8
|
## 1.0.1
|
4
9
|
|
5
10
|
* [#20](https://github.com/brightin/poms/pull/20) Return schedule event `starts_at` as DateTime.
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
poms (1.
|
4
|
+
poms (1.1.0)
|
5
5
|
activesupport
|
6
6
|
|
7
7
|
GEM
|
@@ -13,15 +13,17 @@ GEM
|
|
13
13
|
minitest (~> 5.1)
|
14
14
|
thread_safe (~> 0.3, >= 0.3.4)
|
15
15
|
tzinfo (~> 1.1)
|
16
|
+
addressable (2.4.0)
|
16
17
|
ast (2.2.0)
|
17
18
|
astrolabe (1.3.1)
|
18
19
|
parser (~> 2.2)
|
19
20
|
celluloid (0.16.0)
|
20
21
|
timers (~> 4.0.0)
|
21
22
|
coderay (1.1.0)
|
23
|
+
crack (0.4.3)
|
24
|
+
safe_yaml (~> 1.0.0)
|
22
25
|
diff-lcs (1.2.5)
|
23
26
|
fabrication (2.12.2)
|
24
|
-
fakeweb (1.3.0)
|
25
27
|
ffi (1.9.8)
|
26
28
|
formatador (0.2.5)
|
27
29
|
guard (2.12.5)
|
@@ -38,6 +40,7 @@ GEM
|
|
38
40
|
guard (~> 2.1)
|
39
41
|
guard-compat (~> 1.1)
|
40
42
|
rspec (>= 2.99.0, < 4.0)
|
43
|
+
hashdiff (0.2.3)
|
41
44
|
hitimes (1.2.2)
|
42
45
|
i18n (0.7.0)
|
43
46
|
json (1.8.2)
|
@@ -84,6 +87,7 @@ GEM
|
|
84
87
|
rainbow (>= 1.99.1, < 3.0)
|
85
88
|
ruby-progressbar (~> 1.4)
|
86
89
|
ruby-progressbar (1.7.5)
|
90
|
+
safe_yaml (1.0.4)
|
87
91
|
shellany (0.0.1)
|
88
92
|
slop (3.6.0)
|
89
93
|
thor (0.19.1)
|
@@ -94,6 +98,10 @@ GEM
|
|
94
98
|
tzinfo (1.2.2)
|
95
99
|
thread_safe (~> 0.1)
|
96
100
|
vcr (2.9.3)
|
101
|
+
webmock (1.22.6)
|
102
|
+
addressable (>= 2.3.6)
|
103
|
+
crack (>= 0.3.2)
|
104
|
+
hashdiff
|
97
105
|
|
98
106
|
PLATFORMS
|
99
107
|
ruby
|
@@ -101,7 +109,6 @@ PLATFORMS
|
|
101
109
|
DEPENDENCIES
|
102
110
|
bundler (~> 1.3)
|
103
111
|
fabrication
|
104
|
-
fakeweb
|
105
112
|
guard
|
106
113
|
guard-rspec
|
107
114
|
poms!
|
@@ -110,3 +117,4 @@ DEPENDENCIES
|
|
110
117
|
rubocop (~> 0.34.1)
|
111
118
|
timecop
|
112
119
|
vcr
|
120
|
+
webmock
|
data/README.md
CHANGED
@@ -17,6 +17,18 @@ Or install it yourself as:
|
|
17
17
|
|
18
18
|
$ gem install poms
|
19
19
|
|
20
|
+
## Usage
|
21
|
+
|
22
|
+
The `Poms` module contains various ways to query the Poms CouchDB service. The simplest way to get something is to use the `fetch` function, which takes a MID.
|
23
|
+
|
24
|
+
Poms.fetch('mid')
|
25
|
+
|
26
|
+
This returns an OpenStruct-like object that wraps the json of the Poms response.
|
27
|
+
|
28
|
+
For some more advanced querying, you can use functions like `fetch_clip` which also takes a MID, but returns a `Clip` object, that is a little easier to work with.
|
29
|
+
|
30
|
+
You can also query collections in a way to get back multiple episodes. This is tied to the views in the Poms CouchDB service and is documented on the wiki of the NPO.
|
31
|
+
|
20
32
|
## Contributing
|
21
33
|
|
22
34
|
1. Fork it
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Poms
|
2
|
+
module Api
|
3
|
+
# This module can be used to create an authentication header for the Poms
|
4
|
+
# API.
|
5
|
+
#
|
6
|
+
# see: http://wiki.publiekeomroep.nl/display/npoapi/Algemeen
|
7
|
+
module Auth
|
8
|
+
# Create an auth header for the Poms API. This is a codified string
|
9
|
+
# consisting of a message that is hashed with a secret.
|
10
|
+
#
|
11
|
+
# @see message
|
12
|
+
# @param secret The Poms API secret key
|
13
|
+
# @param message The message that needs to be hashed.
|
14
|
+
def self.encode(secret, message)
|
15
|
+
sha256 = OpenSSL::Digest.new('sha256')
|
16
|
+
digest = OpenSSL::HMAC.digest(sha256, secret, message)
|
17
|
+
Base64.encode64(digest)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Creates the header that is used for authenticating a request to the Poms
|
21
|
+
# API.
|
22
|
+
#
|
23
|
+
# @param uri The uri that is being requested
|
24
|
+
# @param origin The origin header
|
25
|
+
# @param date The date as an RFC822 string
|
26
|
+
# @param params The url params as a ruby hash
|
27
|
+
def self.message(uri, origin, date, params = {})
|
28
|
+
params_string = params.sort.map do |key, value|
|
29
|
+
"#{key}:#{value}"
|
30
|
+
end.join(',') if params.present?
|
31
|
+
[
|
32
|
+
"origin:#{origin}",
|
33
|
+
"x-npo-date:#{date}",
|
34
|
+
"uri:#{uri}",
|
35
|
+
params_string
|
36
|
+
].compact.join(',')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'poms/api/auth'
|
2
|
+
|
3
|
+
module Poms
|
4
|
+
module Api
|
5
|
+
# A request to the Poms API. Does the authentication and allows you to
|
6
|
+
# execute the request.
|
7
|
+
class Request
|
8
|
+
# Create a new request to the Poms API. The request is initialized with a
|
9
|
+
# URI to be called and the key, secret and origin that are needed for
|
10
|
+
# authentication.
|
11
|
+
#
|
12
|
+
# @param uri The full URI to call on the Poms API
|
13
|
+
# @param key The api key
|
14
|
+
# @param secret The secret that goes with the api key
|
15
|
+
# @param origin The whitelisted origin for this api key
|
16
|
+
def initialize(uri, key, secret, origin)
|
17
|
+
@uri = uri
|
18
|
+
@path = URI(@uri).path
|
19
|
+
@key = key
|
20
|
+
@secret = secret
|
21
|
+
@origin = origin
|
22
|
+
end
|
23
|
+
|
24
|
+
# Executes the request.
|
25
|
+
def call
|
26
|
+
open(@uri, headers)
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def headers
|
32
|
+
date = Time.now.rfc822
|
33
|
+
origin = @origin
|
34
|
+
message = Auth.message(@path, @origin, date)
|
35
|
+
encoded_message = Auth.encode(@secret, message)
|
36
|
+
{
|
37
|
+
'Origin' => origin,
|
38
|
+
'X-NPO-Date' => date,
|
39
|
+
'Authorization' => "NPO #{@key}:#{encoded_message}"
|
40
|
+
}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/poms/merged_series.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'poms/api/request'
|
2
2
|
require 'timeout'
|
3
3
|
|
4
4
|
module Poms
|
@@ -6,7 +6,8 @@ module Poms
|
|
6
6
|
module MergedSeries
|
7
7
|
extend self
|
8
8
|
|
9
|
-
|
9
|
+
TEST_URL = 'https://rs-test.poms.omroep.nl/v1/api/media/redirects/'.freeze
|
10
|
+
PRODUCTION_URL = 'https://rs.poms.omroep.nl/v1/api/media/redirects/'.freeze
|
10
11
|
|
11
12
|
# Gets the merged serie mids as a hash. Expects a JSON response from
|
12
13
|
# the server with a `map` key.
|
@@ -15,9 +16,9 @@ module Poms
|
|
15
16
|
#
|
16
17
|
# @param api_url the API url to query
|
17
18
|
# @return [Hash] a hash with old_mid => new_mid pairs
|
18
|
-
def serie_mids(api_url =
|
19
|
+
def serie_mids(api_url = PRODUCTION_URL, key = '', secret = '', origin = '')
|
19
20
|
Timeout.timeout(3) do
|
20
|
-
data =
|
21
|
+
data = Poms::Api::Request.new(api_url, key, secret, origin).call.read
|
21
22
|
JSON.parse(data).fetch('map')
|
22
23
|
end
|
23
24
|
rescue OpenURI::HTTPError, JSON::ParserError, Timeout::Error => e
|
data/lib/poms/version.rb
CHANGED
data/poms.gemspec
CHANGED
@@ -7,11 +7,10 @@ require 'rake'
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = 'poms'
|
9
9
|
spec.version = Poms::VERSION
|
10
|
-
spec.authors = ['Tom Kruijsen'
|
11
|
-
spec.email = ['tom@brightin.nl'
|
12
|
-
'tijn@brightin.nl']
|
10
|
+
spec.authors = ['Tom Kruijsen']
|
11
|
+
spec.email = ['tom@brightin.nl']
|
13
12
|
spec.description = 'Interface to POMS CouchDB API'
|
14
|
-
spec.summary = '
|
13
|
+
spec.summary = 'Interface to POMS CouchDB API'
|
15
14
|
spec.homepage = 'https://github.com/brightin/poms'
|
16
15
|
spec.license = 'MIT'
|
17
16
|
|
@@ -24,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
24
23
|
spec.add_development_dependency 'rspec'
|
25
24
|
spec.add_development_dependency 'guard'
|
26
25
|
spec.add_development_dependency 'guard-rspec'
|
27
|
-
spec.add_development_dependency '
|
26
|
+
spec.add_development_dependency 'webmock'
|
28
27
|
spec.add_development_dependency 'fabrication'
|
29
28
|
spec.add_development_dependency 'rubocop', '~> 0.34.1'
|
30
29
|
spec.add_development_dependency 'timecop'
|
data/spec/fixtures/vcr_cassettes/poms/builderless/broadcast_starts_at/returns_a_datetime.yml
CHANGED
@@ -2,41 +2,41 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: http://docs.poms.omroep.nl/media/_design/media/_view/broadcasts-by-channel-and-start?descending=true&endkey=%5B%22OPVO%22%
|
5
|
+
uri: http://docs.poms.omroep.nl/media/_design/media/_view/broadcasts-by-channel-and-start?descending=true&endkey=%5B%22OPVO%22,%201444046400000%5D&include_docs=true&limit=1&reduce=false&startkey=%5B%22OPVO%22,%201444132800000%5D
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
9
9
|
headers:
|
10
|
-
|
10
|
+
Accept-Encoding:
|
11
11
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
-
|
12
|
+
Accept:
|
13
13
|
- "*/*"
|
14
|
-
|
14
|
+
User-Agent:
|
15
15
|
- Ruby
|
16
16
|
response:
|
17
17
|
status:
|
18
18
|
code: 200
|
19
19
|
message: OK
|
20
20
|
headers:
|
21
|
-
|
22
|
-
- Tue,
|
23
|
-
|
21
|
+
Date:
|
22
|
+
- Tue, 09 Feb 2016 11:02:28 GMT
|
23
|
+
Server:
|
24
24
|
- CouchDB/1.6.1 (Erlang OTP/R15B01)
|
25
|
-
|
26
|
-
- '"
|
27
|
-
|
25
|
+
Etag:
|
26
|
+
- '"32Y7KHAFUNQKIXXS10QE1MBD0"'
|
27
|
+
Content-Type:
|
28
28
|
- text/plain; charset=utf-8
|
29
|
-
|
29
|
+
Cache-Control:
|
30
30
|
- must-revalidate
|
31
|
-
|
31
|
+
X-Proxyinstancename:
|
32
32
|
- poms1b
|
33
|
-
|
34
|
-
- balancer://poms3cluster=balancer.
|
35
|
-
|
33
|
+
Set-Cookie:
|
34
|
+
- balancer://poms3cluster=balancer.poms1madb; path=/;
|
35
|
+
Transfer-Encoding:
|
36
36
|
- chunked
|
37
37
|
body:
|
38
38
|
encoding: UTF-8
|
39
|
-
string: "{\"total_rows\":
|
39
|
+
string: "{\"total_rows\":937833,\"offset\":241709,\"rows\":[\r\n{\"id\":\"T_POW_02983987\",\"key\":[\"OPVO\",1444128900000],\"value\":null,\"doc\":{\"_id\":\"T_POW_02983987\",\"_rev\":\"20-2580d71f807a2182a6e5298231166a69\",\"objectType\":\"program\",\"mid\":\"T_POW_02983987\",\"creationDate\":1442487246008,\"lastModified\":1452873713621,\"sortDate\":1444128900000,\"urn\":\"urn:vpro:media:program:62586944\",\"embeddable\":true,\"broadcasters\":[\"KRO-NCRV\"],\"titles\":[{\"value\":\"Peperbollen\",\"owner\":\"MIS\",\"type\":\"MAIN\"},{\"value\":\"Alle
|
40
40
|
begin is moeilijk\",\"owner\":\"MIS\",\"type\":\"SUB\"}],\"descriptions\":[{\"value\":\"Een
|
41
41
|
groepje kinderen dat zich de Peperbollen noemt bestrijdt misdaad en onrecht.
|
42
42
|
Ze hebben hun hoofdkwartier in een magazijnencomplex in het havendistrict
|
@@ -48,6 +48,6 @@ http_interactions:
|
|
48
48
|
ondertitels\",\"guideDay\":1452812400000,\"start\":1452837300000,\"duration\":1658000,\"poProgID\":\"T_POW_02983987\",\"channel\":\"OPVO\",\"urnRef\":\"urn:vpro:media:program:62586944\",\"midRef\":\"T_POW_02983987\"},{\"textSubtitles\":\"Teletekst
|
49
49
|
ondertitels\",\"guideDay\":1452812400000,\"start\":1452849900000,\"duration\":1658000,\"poProgID\":\"T_POW_02983987\",\"channel\":\"OPVO\",\"urnRef\":\"urn:vpro:media:program:62586944\",\"midRef\":\"T_POW_02983987\"},{\"textSubtitles\":\"Teletekst
|
50
50
|
ondertitels\",\"guideDay\":1453071600000,\"start\":1453148100000,\"duration\":1658000,\"poProgID\":\"T_POW_02983987\",\"channel\":\"OPVO\",\"urnRef\":\"urn:vpro:media:program:62586944\",\"midRef\":\"T_POW_02983987\"}],\"publishDate\":1452873995581,\"workflow\":\"PUBLISHED\",\"type\":\"BROADCAST\",\"avType\":\"VIDEO\"}}\r\n]}\n"
|
51
|
-
http_version:
|
51
|
+
http_version:
|
52
52
|
recorded_at: Tue, 06 Oct 2015 12:00:00 GMT
|
53
53
|
recorded_with: VCR 2.9.3
|
@@ -7,37 +7,37 @@ http_interactions:
|
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
9
9
|
headers:
|
10
|
-
|
10
|
+
Accept-Encoding:
|
11
11
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
-
|
12
|
+
Accept:
|
13
13
|
- "*/*"
|
14
|
-
|
14
|
+
User-Agent:
|
15
15
|
- Ruby
|
16
16
|
response:
|
17
17
|
status:
|
18
18
|
code: 200
|
19
19
|
message: OK
|
20
20
|
headers:
|
21
|
-
|
22
|
-
-
|
23
|
-
|
21
|
+
Date:
|
22
|
+
- Tue, 09 Feb 2016 11:02:28 GMT
|
23
|
+
Server:
|
24
24
|
- CouchDB/1.6.1 (Erlang OTP/R15B01)
|
25
|
-
|
26
|
-
- '"
|
27
|
-
|
25
|
+
Etag:
|
26
|
+
- '"8-427f3fcb3d9b620ddcd3e9387a4e67c2"'
|
27
|
+
Content-Type:
|
28
28
|
- text/plain; charset=utf-8
|
29
|
-
|
30
|
-
- '
|
31
|
-
|
29
|
+
Content-Length:
|
30
|
+
- '1634'
|
31
|
+
Cache-Control:
|
32
32
|
- must-revalidate
|
33
|
-
|
33
|
+
X-Proxyinstancename:
|
34
34
|
- poms1b
|
35
|
-
|
35
|
+
Set-Cookie:
|
36
36
|
- balancer://poms3cluster=balancer.poms1s1db; path=/;
|
37
37
|
body:
|
38
38
|
encoding: UTF-8
|
39
39
|
string: |
|
40
|
-
{"_id":"WO_NPO_1950962","_rev":"
|
41
|
-
http_version:
|
40
|
+
{"_id":"WO_NPO_1950962","_rev":"8-427f3fcb3d9b620ddcd3e9387a4e67c2","objectType":"program","mid":"WO_NPO_1950962","creationDate":1442490263679,"lastModified":1447947725305,"sortDate":1442490263679,"urn":"urn:vpro:media:program:62589080","embeddable":true,"broadcasters":["NPO"],"titles":[{"value":"De wielen van de bus","owner":"BROADCASTER","type":"MAIN"},{"value":"De wielen van de bus","owner":"BROADCASTER","type":"SUB"}],"descriptions":[{"value":"De wielen van de bus","owner":"BROADCASTER","type":"MAIN"}],"genres":["Jeugd"],"countries":[],"languages":[],"duration":60000,"descendantOf":[{"midRef":"POMS_S_NPO_2015412","urnRef":"urn:vpro:media:group:62589310","type":"PLAYLIST"},{"midRef":"POMS_S_NTR_3191139","urnRef":"urn:vpro:media:group:70383463","type":"SERIES"}],"memberOf":[{"midRef":"POMS_S_NPO_2015412","urnRef":"urn:vpro:media:group:62589310","type":"PLAYLIST","index":2,"highlighted":false,"added":1442490529409}],"locations":[{"programUrl":"http://download.omroep.nl/npo/zappelin/DWVZ_AFL_86_De_wielen_van_de_bus.mp4","avAttributes":{"bitrate":1000000,"avFileFormat":"MP4"},"owner":"BROADCASTER","creationDate":1442490345785,"lastModified":1442490345864,"workflow":"PUBLISHED","urn":"urn:vpro:media:location:62589229"}],"images":[{"title":"Wielen van de bus","description":"wielen van de bus","imageUri":"urn:vpro:image:653515","height":259,"width":559,"owner":"BROADCASTER","type":"PORTRAIT","highlighted":true,"creationDate":1442491591052,"lastModified":1442491591141,"workflow":"PUBLISHED","urn":"urn:vpro:media:image:62590127"}],"publishDate":1454339417687,"workflow":"PUBLISHED","type":"CLIP","avType":"VIDEO"}
|
41
|
+
http_version:
|
42
42
|
recorded_at: Tue, 06 Oct 2015 12:00:00 GMT
|
43
43
|
recorded_with: VCR 2.9.3
|
@@ -7,37 +7,37 @@ http_interactions:
|
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
9
9
|
headers:
|
10
|
-
|
10
|
+
Accept-Encoding:
|
11
11
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
-
|
12
|
+
Accept:
|
13
13
|
- "*/*"
|
14
|
-
|
14
|
+
User-Agent:
|
15
15
|
- Ruby
|
16
16
|
response:
|
17
17
|
status:
|
18
18
|
code: 200
|
19
19
|
message: OK
|
20
20
|
headers:
|
21
|
-
|
22
|
-
-
|
23
|
-
|
21
|
+
Date:
|
22
|
+
- Tue, 09 Feb 2016 11:02:28 GMT
|
23
|
+
Server:
|
24
24
|
- CouchDB/1.6.1 (Erlang OTP/R15B01)
|
25
|
-
|
26
|
-
- '"
|
27
|
-
|
25
|
+
Etag:
|
26
|
+
- '"8-427f3fcb3d9b620ddcd3e9387a4e67c2"'
|
27
|
+
Content-Type:
|
28
28
|
- text/plain; charset=utf-8
|
29
|
-
|
30
|
-
- '
|
31
|
-
|
29
|
+
Content-Length:
|
30
|
+
- '1634'
|
31
|
+
Cache-Control:
|
32
32
|
- must-revalidate
|
33
|
-
|
33
|
+
X-Proxyinstancename:
|
34
34
|
- poms1b
|
35
|
-
|
35
|
+
Set-Cookie:
|
36
36
|
- balancer://poms3cluster=balancer.poms1s1db; path=/;
|
37
37
|
body:
|
38
38
|
encoding: UTF-8
|
39
39
|
string: |
|
40
|
-
{"_id":"WO_NPO_1950962","_rev":"
|
41
|
-
http_version:
|
40
|
+
{"_id":"WO_NPO_1950962","_rev":"8-427f3fcb3d9b620ddcd3e9387a4e67c2","objectType":"program","mid":"WO_NPO_1950962","creationDate":1442490263679,"lastModified":1447947725305,"sortDate":1442490263679,"urn":"urn:vpro:media:program:62589080","embeddable":true,"broadcasters":["NPO"],"titles":[{"value":"De wielen van de bus","owner":"BROADCASTER","type":"MAIN"},{"value":"De wielen van de bus","owner":"BROADCASTER","type":"SUB"}],"descriptions":[{"value":"De wielen van de bus","owner":"BROADCASTER","type":"MAIN"}],"genres":["Jeugd"],"countries":[],"languages":[],"duration":60000,"descendantOf":[{"midRef":"POMS_S_NPO_2015412","urnRef":"urn:vpro:media:group:62589310","type":"PLAYLIST"},{"midRef":"POMS_S_NTR_3191139","urnRef":"urn:vpro:media:group:70383463","type":"SERIES"}],"memberOf":[{"midRef":"POMS_S_NPO_2015412","urnRef":"urn:vpro:media:group:62589310","type":"PLAYLIST","index":2,"highlighted":false,"added":1442490529409}],"locations":[{"programUrl":"http://download.omroep.nl/npo/zappelin/DWVZ_AFL_86_De_wielen_van_de_bus.mp4","avAttributes":{"bitrate":1000000,"avFileFormat":"MP4"},"owner":"BROADCASTER","creationDate":1442490345785,"lastModified":1442490345864,"workflow":"PUBLISHED","urn":"urn:vpro:media:location:62589229"}],"images":[{"title":"Wielen van de bus","description":"wielen van de bus","imageUri":"urn:vpro:image:653515","height":259,"width":559,"owner":"BROADCASTER","type":"PORTRAIT","highlighted":true,"creationDate":1442491591052,"lastModified":1442491591141,"workflow":"PUBLISHED","urn":"urn:vpro:media:image:62590127"}],"publishDate":1454339417687,"workflow":"PUBLISHED","type":"CLIP","avType":"VIDEO"}
|
41
|
+
http_version:
|
42
42
|
recorded_at: Tue, 06 Oct 2015 12:00:00 GMT
|
43
43
|
recorded_with: VCR 2.9.3
|
@@ -7,37 +7,37 @@ http_interactions:
|
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
9
9
|
headers:
|
10
|
-
|
10
|
+
Accept-Encoding:
|
11
11
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
-
|
12
|
+
Accept:
|
13
13
|
- "*/*"
|
14
|
-
|
14
|
+
User-Agent:
|
15
15
|
- Ruby
|
16
16
|
response:
|
17
17
|
status:
|
18
18
|
code: 200
|
19
19
|
message: OK
|
20
20
|
headers:
|
21
|
-
|
22
|
-
-
|
23
|
-
|
21
|
+
Date:
|
22
|
+
- Tue, 09 Feb 2016 11:02:28 GMT
|
23
|
+
Server:
|
24
24
|
- CouchDB/1.6.1 (Erlang OTP/R15B01)
|
25
|
-
|
26
|
-
- '"
|
27
|
-
|
25
|
+
Etag:
|
26
|
+
- '"8-427f3fcb3d9b620ddcd3e9387a4e67c2"'
|
27
|
+
Content-Type:
|
28
28
|
- text/plain; charset=utf-8
|
29
|
-
|
30
|
-
- '
|
31
|
-
|
29
|
+
Content-Length:
|
30
|
+
- '1634'
|
31
|
+
Cache-Control:
|
32
32
|
- must-revalidate
|
33
|
-
|
33
|
+
X-Proxyinstancename:
|
34
34
|
- poms1b
|
35
|
-
|
35
|
+
Set-Cookie:
|
36
36
|
- balancer://poms3cluster=balancer.poms1madb; path=/;
|
37
37
|
body:
|
38
38
|
encoding: UTF-8
|
39
39
|
string: |
|
40
|
-
{"_id":"WO_NPO_1950962","_rev":"
|
41
|
-
http_version:
|
40
|
+
{"_id":"WO_NPO_1950962","_rev":"8-427f3fcb3d9b620ddcd3e9387a4e67c2","objectType":"program","mid":"WO_NPO_1950962","creationDate":1442490263679,"lastModified":1447947725305,"sortDate":1442490263679,"urn":"urn:vpro:media:program:62589080","embeddable":true,"broadcasters":["NPO"],"titles":[{"value":"De wielen van de bus","owner":"BROADCASTER","type":"MAIN"},{"value":"De wielen van de bus","owner":"BROADCASTER","type":"SUB"}],"descriptions":[{"value":"De wielen van de bus","owner":"BROADCASTER","type":"MAIN"}],"genres":["Jeugd"],"countries":[],"languages":[],"duration":60000,"descendantOf":[{"midRef":"POMS_S_NPO_2015412","urnRef":"urn:vpro:media:group:62589310","type":"PLAYLIST"},{"midRef":"POMS_S_NTR_3191139","urnRef":"urn:vpro:media:group:70383463","type":"SERIES"}],"memberOf":[{"midRef":"POMS_S_NPO_2015412","urnRef":"urn:vpro:media:group:62589310","type":"PLAYLIST","index":2,"highlighted":false,"added":1442490529409}],"locations":[{"programUrl":"http://download.omroep.nl/npo/zappelin/DWVZ_AFL_86_De_wielen_van_de_bus.mp4","avAttributes":{"bitrate":1000000,"avFileFormat":"MP4"},"owner":"BROADCASTER","creationDate":1442490345785,"lastModified":1442490345864,"workflow":"PUBLISHED","urn":"urn:vpro:media:location:62589229"}],"images":[{"title":"Wielen van de bus","description":"wielen van de bus","imageUri":"urn:vpro:image:653515","height":259,"width":559,"owner":"BROADCASTER","type":"PORTRAIT","highlighted":true,"creationDate":1442491591052,"lastModified":1442491591141,"workflow":"PUBLISHED","urn":"urn:vpro:media:image:62590127"}],"publishDate":1454339417687,"workflow":"PUBLISHED","type":"CLIP","avType":"VIDEO"}
|
41
|
+
http_version:
|
42
42
|
recorded_at: Tue, 06 Oct 2015 12:00:00 GMT
|
43
43
|
recorded_with: VCR 2.9.3
|