tivohmo 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG +30 -0
  4. data/Gemfile +2 -0
  5. data/README.md +4 -6
  6. data/TODO +1 -0
  7. data/contrib/tivohmo.conf +2 -2
  8. data/contrib/tivohmo.plist +1 -1
  9. data/contrib/tivohmo.yml +60 -0
  10. data/lib/tivohmo/adapters/filesystem/file_item.rb +2 -3
  11. data/lib/tivohmo/adapters/plex/category.rb +87 -6
  12. data/lib/tivohmo/adapters/plex/episode.rb +30 -11
  13. data/lib/tivohmo/adapters/plex/group.rb +20 -0
  14. data/lib/tivohmo/adapters/plex/movie.rb +15 -3
  15. data/lib/tivohmo/adapters/plex/qualified_category.rb +14 -3
  16. data/lib/tivohmo/adapters/plex/season.rb +2 -2
  17. data/lib/tivohmo/adapters/plex/section.rb +5 -5
  18. data/lib/tivohmo/adapters/plex/transcoder.rb +5 -1
  19. data/lib/tivohmo/adapters/plex.rb +1 -0
  20. data/lib/tivohmo/adapters/settings/application.rb +37 -0
  21. data/lib/tivohmo/adapters/settings/display_item.rb +35 -0
  22. data/lib/tivohmo/adapters/settings/key_container.rb +35 -0
  23. data/lib/tivohmo/adapters/settings/metadata.rb +26 -0
  24. data/lib/tivohmo/adapters/settings/reset_defaults_item.rb +39 -0
  25. data/lib/tivohmo/adapters/settings/set_value_item.rb +38 -0
  26. data/lib/tivohmo/adapters/settings/transcoder.rb +23 -0
  27. data/lib/tivohmo/adapters/settings.rb +7 -0
  28. data/lib/tivohmo/adapters/streamio/transcoder.rb +39 -1
  29. data/lib/tivohmo/api/container.rb +5 -1
  30. data/lib/tivohmo/api/item.rb +2 -0
  31. data/lib/tivohmo/api/subtitle.rb +13 -0
  32. data/lib/tivohmo/api/transcoder.rb +1 -3
  33. data/lib/tivohmo/api.rb +1 -0
  34. data/lib/tivohmo/beacon.rb +3 -3
  35. data/lib/tivohmo/cli.rb +175 -48
  36. data/lib/tivohmo/config.rb +157 -0
  37. data/lib/tivohmo/server/views/_container.builder +1 -1
  38. data/lib/tivohmo/server.rb +6 -3
  39. data/lib/tivohmo/version.rb +1 -1
  40. data/lib/tivohmo.rb +1 -0
  41. data/spec/adapters/filesystem/file_item_spec.rb +1 -1
  42. data/spec/adapters/plex/application_spec.rb +10 -1
  43. data/spec/adapters/plex/category_spec.rb +93 -20
  44. data/spec/adapters/plex/episode_spec.rb +34 -15
  45. data/spec/adapters/plex/metadata_spec.rb +5 -7
  46. data/spec/adapters/plex/movie_spec.rb +10 -7
  47. data/spec/adapters/plex/qualified_category_spec.rb +17 -17
  48. data/spec/adapters/plex/season_spec.rb +23 -4
  49. data/spec/adapters/plex/section_spec.rb +4 -4
  50. data/spec/adapters/plex/show_spec.rb +19 -4
  51. data/spec/adapters/plex/transcoder_spec.rb +2 -8
  52. data/spec/adapters/settings/application_spec.rb +25 -0
  53. data/spec/adapters/settings/display_item_spec.rb +29 -0
  54. data/spec/adapters/settings/key_container_spec.rb +33 -0
  55. data/spec/adapters/settings/metadata_spec.rb +33 -0
  56. data/spec/adapters/settings/reset_defaults_item_spec.rb +54 -0
  57. data/spec/adapters/settings/set_value_item_spec.rb +54 -0
  58. data/spec/api/container_spec.rb +12 -0
  59. data/spec/api/item_spec.rb +2 -0
  60. data/spec/api/transcoder_spec.rb +0 -1
  61. data/spec/beacon_spec.rb +3 -1
  62. data/spec/cli_spec.rb +57 -19
  63. data/spec/config_spec.rb +224 -0
  64. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Application/_children/should_get_children.yml +61 -0
  65. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Category/_children/should_allow_disabling_subtitles.yml +424 -0
  66. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Category/_children/should_display_non-zero_child_count_once_children_fetched.yml +653 -0
  67. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Category/_children/should_have_children.yml +599 -0
  68. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Category/_children/should_have_children_with_embedded_subtitles.yml +595 -0
  69. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Category/_children/should_have_children_with_subtitles.yml +482 -0
  70. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Category/_children/should_memoize.yml +478 -0
  71. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Category/_children/should_refresh_children_when_config_changes.yml +1245 -0
  72. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Category/_children/should_use_category_value_for_children.yml +395 -0
  73. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Category/_initialize/should_instantiate.yml +61 -0
  74. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Category/_initialize/should_set_presorted_if_present.yml +61 -0
  75. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Category/_initialize/should_use_category_value_for_title_if_present.yml +61 -0
  76. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Episode/_initialize/should_instantiate.yml +444 -0
  77. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Episode/_metadata/should_allow_disabling_series_id_in_metadata.yml +444 -0
  78. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Episode/_metadata/should_populate_metadata.yml +579 -0
  79. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Metadata/_initialize/should_instantiate.yml +296 -0
  80. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Movie/_initialize/should_instantiate.yml +296 -0
  81. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Movie/_metadata/should_populate_metadata.yml +296 -0
  82. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_QualifiedCategory/_children/should_display_non-zero_child_count_once_children_fetched.yml +220 -0
  83. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_QualifiedCategory/_children/should_have_children.yml +393 -0
  84. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_QualifiedCategory/_children/should_memoize.yml +219 -0
  85. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_QualifiedCategory/_initialize/should_instantiate.yml +61 -0
  86. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Season/_children/should_have_children.yml +444 -0
  87. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Season/_children/should_memoize.yml +444 -0
  88. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Season/_initialize/should_instantiate.yml +250 -0
  89. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Section/_children/should_have_category_children.yml +61 -0
  90. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Section/_children/should_memoize.yml +61 -0
  91. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Section/_initialize/should_instantiate.yml +61 -0
  92. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Show/_children/should_have_children.yml +250 -0
  93. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Show/_children/should_memoize.yml +250 -0
  94. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Show/_initialize/should_instantiate.yml +166 -0
  95. data/spec/fixtures/vcr/TivoHMO_Adapters_Plex_Transcoder/_initialize/should_instantiate.yml +296 -0
  96. data/spec/server_spec.rb +31 -2
  97. data/spec/spec_helper.rb +24 -36
  98. data/tivohmo.gemspec +2 -2
  99. metadata +109 -3
@@ -0,0 +1,444 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://localhost:32400/library/sections
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Content-Type:
22
+ - text/xml;charset=utf-8
23
+ Connection:
24
+ - close
25
+ X-Plex-Protocol:
26
+ - '1.0'
27
+ X-Plex-Content-Original-Length:
28
+ - '2991'
29
+ X-Plex-Content-Compressed-Length:
30
+ - '805'
31
+ Content-Length:
32
+ - '805'
33
+ Cache-Control:
34
+ - no-cache
35
+ body:
36
+ encoding: UTF-8
37
+ string: |
38
+ <?xml version="1.0" encoding="UTF-8"?>
39
+ <MediaContainer size="6" allowSync="0" identifier="com.plexapp.plugins.library" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1420767545" title1="Plex Library">
40
+ <Directory allowSync="0" art="/:/resources/movie-fanart.jpg" filters="1" refreshing="0" thumb="/:/resources/movie.png" key="1" type="movie" title="Adult Movies" composite="/library/sections/1/composite/1423777283" agent="com.plexapp.agents.imdb" scanner="Plex Movie Scanner" language="en" uuid="9113e43dc6c547eede809f9439c8e80498b4a610" updatedAt="1423777283" createdAt="1332713366">
41
+ <Location id="4" path="/Users/mconway/Movies/Adult Movies" />
42
+ </Directory>
43
+ <Directory allowSync="0" art="/:/resources/show-fanart.jpg" filters="1" refreshing="0" thumb="/:/resources/show.png" key="2" type="show" title="Adult TV Shows" composite="/library/sections/2/composite/1423932892" agent="com.plexapp.agents.thetvdb" scanner="Plex Series Scanner" language="en" uuid="af8295a272d545681d462eed8025113d09195007" updatedAt="1423932892" createdAt="1332713366">
44
+ <Location id="6" path="/Users/mconway/Movies/Adult TV Shows" />
45
+ </Directory>
46
+ <Directory allowSync="0" art="/:/resources/movie-fanart.jpg" filters="1" refreshing="0" thumb="/:/resources/movie.png" key="5" type="movie" title="Kid Movies" composite="/library/sections/5/composite/1423777310" agent="com.plexapp.agents.imdb" scanner="Plex Movie Scanner" language="en" uuid="340479de-6015-4e6c-9ec0-c74f936f4013" updatedAt="1423777310" createdAt="1411071543">
47
+ <Location id="9" path="/Users/mconway/Movies/Kid Movies" />
48
+ </Directory>
49
+ <Directory allowSync="0" art="/:/resources/show-fanart.jpg" filters="1" refreshing="0" thumb="/:/resources/show.png" key="4" type="show" title="Kid TV Shows" composite="/library/sections/4/composite/1423777311" agent="com.plexapp.agents.thetvdb" scanner="Plex Series Scanner" language="en" uuid="fa1dde48-f6dd-44f7-91f3-9283160dc953" updatedAt="1423777311" createdAt="1411071497">
50
+ <Location id="8" path="/Users/mconway/Movies/Kid TV Shows" />
51
+ </Directory>
52
+ <Directory allowSync="0" art="/:/resources/movie-fanart.jpg" filters="1" refreshing="1" thumb="/:/resources/movie.png" key="6" type="movie" title="Test Movies" composite="/library/sections/6/composite/1423936036" agent="com.plexapp.agents.imdb" scanner="Plex Movie Scanner" language="en" uuid="fbc810b7-6b51-40ba-a3c5-9a2c391e5a3d" updatedAt="1423936036" createdAt="1423935251">
53
+ <Location id="10" path="/Users/mconway/Movies/TivoHMOTest/Movies" />
54
+ </Directory>
55
+ <Directory allowSync="0" art="/:/resources/show-fanart.jpg" filters="1" refreshing="0" thumb="/:/resources/show.png" key="7" type="show" title="Test TV Shows" composite="/library/sections/7/composite/1423935290" agent="com.plexapp.agents.thetvdb" scanner="Plex Series Scanner" language="en" uuid="4c37cd05-86d7-4a34-8d5b-aa2fb261a136" updatedAt="1423935290" createdAt="1423935290">
56
+ <Location id="11" path="/Users/mconway/Movies/TivoHMOTest/TV Shows" />
57
+ </Directory>
58
+ </MediaContainer>
59
+ http_version:
60
+ recorded_at: Sat, 14 Feb 2015 17:47:36 GMT
61
+ - request:
62
+ method: get
63
+ uri: http://localhost:32400/library/sections/7/all
64
+ body:
65
+ encoding: US-ASCII
66
+ string: ''
67
+ headers:
68
+ Accept-Encoding:
69
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
70
+ Accept:
71
+ - "*/*"
72
+ User-Agent:
73
+ - Ruby
74
+ response:
75
+ status:
76
+ code: 200
77
+ message: OK
78
+ headers:
79
+ Content-Type:
80
+ - text/xml;charset=utf-8
81
+ Connection:
82
+ - close
83
+ X-Plex-Protocol:
84
+ - '1.0'
85
+ X-Plex-Content-Original-Length:
86
+ - '1631'
87
+ X-Plex-Content-Compressed-Length:
88
+ - '901'
89
+ Content-Length:
90
+ - '901'
91
+ Cache-Control:
92
+ - no-cache
93
+ body:
94
+ encoding: UTF-8
95
+ string: |
96
+ <?xml version="1.0" encoding="UTF-8"?>
97
+ <MediaContainer size="1" allowSync="1" art="/:/resources/show-fanart.jpg" identifier="com.plexapp.plugins.library" librarySectionID="7" librarySectionTitle="Test TV Shows" librarySectionUUID="4c37cd05-86d7-4a34-8d5b-aa2fb261a136" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1420767545" nocache="1" thumb="/:/resources/show.png" title1="Test TV Shows" title2="All Shows" viewGroup="show" viewMode="65592">
98
+ <Directory ratingKey="1170" key="/library/metadata/1170/children" studio="NBC" type="show" title="Grimm" contentRating="TV-14" summary="Nick Burkhardt thought he prepared himself for the realities of working as a homicide detective until he started seeing things he couldn&apos;t explain. Nick&apos;s life turns upside down when his Aunt Marie reveals they are descendants of an elite group of hunters, known as &quot;Grimms,&quot; who fight to keep humanity safe from supernatural creatures. As Nick digs deeper into her past, he realizes that he will have to shoulder the responsibility of his ancestors." index="1" rating="8.3999996185302699" year="2011" thumb="/library/metadata/1170/thumb/1423935406" art="/library/metadata/1170/art/1423935406" banner="/library/metadata/1170/banner/1423935406" theme="/library/metadata/1170/theme/1423935406" duration="3600000" originallyAvailableAt="2011-10-28" leafCount="1" viewedLeafCount="0" childCount="1" addedAt="1423935401" updatedAt="1423935406">
99
+ <Genre tag="Drama" />
100
+ <Genre tag="Fantasy" />
101
+ <Role tag="David Giuntoli" />
102
+ <Role tag="Silas Weir Mitchell" />
103
+ <Role tag="Bitsie Tulloch" />
104
+ </Directory>
105
+ </MediaContainer>
106
+ http_version:
107
+ recorded_at: Sat, 14 Feb 2015 17:47:36 GMT
108
+ - request:
109
+ method: get
110
+ uri: http://localhost:32400/library/metadata/1170
111
+ body:
112
+ encoding: US-ASCII
113
+ string: ''
114
+ headers:
115
+ Accept-Encoding:
116
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
117
+ Accept:
118
+ - "*/*"
119
+ User-Agent:
120
+ - Ruby
121
+ response:
122
+ status:
123
+ code: 200
124
+ message: OK
125
+ headers:
126
+ Content-Type:
127
+ - text/xml;charset=utf-8
128
+ Connection:
129
+ - close
130
+ X-Plex-Protocol:
131
+ - '1.0'
132
+ X-Plex-Content-Original-Length:
133
+ - '2330'
134
+ X-Plex-Content-Compressed-Length:
135
+ - '1197'
136
+ Content-Length:
137
+ - '1197'
138
+ Cache-Control:
139
+ - no-cache
140
+ body:
141
+ encoding: UTF-8
142
+ string: |
143
+ <?xml version="1.0" encoding="UTF-8"?>
144
+ <MediaContainer size="1" allowSync="1" identifier="com.plexapp.plugins.library" librarySectionID="7" librarySectionTitle="Test TV Shows" librarySectionUUID="4c37cd05-86d7-4a34-8d5b-aa2fb261a136" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1420767545">
145
+ <Directory ratingKey="1170" key="/library/metadata/1170/children" guid="com.plexapp.agents.thetvdb://248736?lang=en" studio="NBC" type="show" title="Grimm" contentRating="TV-14" summary="Nick Burkhardt thought he prepared himself for the realities of working as a homicide detective until he started seeing things he couldn&apos;t explain. Nick&apos;s life turns upside down when his Aunt Marie reveals they are descendants of an elite group of hunters, known as &quot;Grimms,&quot; who fight to keep humanity safe from supernatural creatures. As Nick digs deeper into her past, he realizes that he will have to shoulder the responsibility of his ancestors." index="1" rating="8.3999996185302699" year="2011" thumb="/library/metadata/1170/thumb/1423935406" art="/library/metadata/1170/art/1423935406" banner="/library/metadata/1170/banner/1423935406" theme="/library/metadata/1170/theme/1423935406" duration="3600000" originallyAvailableAt="2011-10-28" leafCount="1" viewedLeafCount="0" childCount="1" addedAt="1423935401" updatedAt="1423935406">
146
+ <Genre id="88" tag="Drama" />
147
+ <Genre id="65" tag="Fantasy" />
148
+ <Genre id="1859" tag="Horror" />
149
+ <Role id="7617" tag="David Giuntoli" role="Det. Nick Burkhardt" />
150
+ <Role id="7618" tag="Silas Weir Mitchell" role="Eddie Monroe" />
151
+ <Role id="7619" tag="Bitsie Tulloch" role="Juliette Silverton" />
152
+ <Role id="2559" tag="Bree Turner" role="Rosalee Calvert" />
153
+ <Role id="7620" tag="Russell Hornsby" role="Lt. Hank Griffin" />
154
+ <Role id="7621" tag="Sasha Roiz" role="Captain Renard" />
155
+ <Role id="7622" tag="Claire Coffee" role="Adalind Schade" />
156
+ <Role id="7623" tag="Jacqueline Toboni" role="Theresa &quot;Trubel&quot; Rubel" />
157
+ <Role id="7624" tag="Mary Elizabeth Mastrantonio" role="Woman in Black / Kelly Burkhardt" />
158
+ <Role id="2924" tag="Reggie Lee" role="Sgt. Wu" />
159
+ <Role id="7625" tag="Kate Burton" role="Marie" />
160
+ <Role id="7626" tag="Elizabeth Rodriguez" role="Chavez" />
161
+ <Location path="/Users/mconway/Movies/TivoHMOTest/TV Shows/Grimm" />
162
+ </Directory>
163
+ </MediaContainer>
164
+ http_version:
165
+ recorded_at: Sat, 14 Feb 2015 17:47:36 GMT
166
+ - request:
167
+ method: get
168
+ uri: http://localhost:32400/library/metadata/1170/children/children
169
+ body:
170
+ encoding: US-ASCII
171
+ string: ''
172
+ headers:
173
+ Accept-Encoding:
174
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
175
+ Accept:
176
+ - "*/*"
177
+ User-Agent:
178
+ - Ruby
179
+ response:
180
+ status:
181
+ code: 200
182
+ message: OK
183
+ headers:
184
+ Content-Type:
185
+ - text/xml;charset=utf-8
186
+ Connection:
187
+ - close
188
+ X-Plex-Protocol:
189
+ - '1.0'
190
+ X-Plex-Content-Original-Length:
191
+ - '1466'
192
+ X-Plex-Content-Compressed-Length:
193
+ - '771'
194
+ Content-Length:
195
+ - '771'
196
+ Cache-Control:
197
+ - no-cache
198
+ body:
199
+ encoding: UTF-8
200
+ string: |
201
+ <?xml version="1.0" encoding="UTF-8"?>
202
+ <MediaContainer size="1" allowSync="1" art="/library/metadata/1170/art/1423935406" banner="/library/metadata/1170/banner/1423935406" identifier="com.plexapp.plugins.library" key="1170" librarySectionID="7" librarySectionTitle="Test TV Shows" librarySectionUUID="4c37cd05-86d7-4a34-8d5b-aa2fb261a136" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1420767545" nocache="1" parentIndex="1" parentTitle="Grimm" parentYear="2011" summary="Nick Burkhardt thought he prepared himself for the realities of working as a homicide detective until he started seeing things he couldn&apos;t explain. Nick&apos;s life turns upside down when his Aunt Marie reveals they are descendants of an elite group of hunters, known as &quot;Grimms,&quot; who fight to keep humanity safe from supernatural creatures. As Nick digs deeper into her past, he realizes that he will have to shoulder the responsibility of his ancestors." theme="/library/metadata/1170/theme/1423935406" thumb="/library/metadata/1170/thumb/1423935406" title1="Test TV Shows" title2="Grimm" viewGroup="season" viewMode="65593">
203
+ <Directory ratingKey="1173" key="/library/metadata/1173/children" parentRatingKey="1170" type="season" title="Season 1" parentKey="/library/metadata/1170" summary="" index="1" thumb="/library/metadata/1173/thumb/1423935424" leafCount="1" viewedLeafCount="0" addedAt="1423935423" updatedAt="1423935424">
204
+ </Directory>
205
+ </MediaContainer>
206
+ http_version:
207
+ recorded_at: Sat, 14 Feb 2015 17:47:36 GMT
208
+ - request:
209
+ method: get
210
+ uri: http://localhost:32400/library/metadata/1173
211
+ body:
212
+ encoding: US-ASCII
213
+ string: ''
214
+ headers:
215
+ Accept-Encoding:
216
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
217
+ Accept:
218
+ - "*/*"
219
+ User-Agent:
220
+ - Ruby
221
+ response:
222
+ status:
223
+ code: 200
224
+ message: OK
225
+ headers:
226
+ Content-Type:
227
+ - text/xml;charset=utf-8
228
+ Connection:
229
+ - close
230
+ X-Plex-Protocol:
231
+ - '1.0'
232
+ X-Plex-Content-Original-Length:
233
+ - '884'
234
+ X-Plex-Content-Compressed-Length:
235
+ - '461'
236
+ Content-Length:
237
+ - '461'
238
+ Cache-Control:
239
+ - no-cache
240
+ body:
241
+ encoding: UTF-8
242
+ string: |
243
+ <?xml version="1.0" encoding="UTF-8"?>
244
+ <MediaContainer size="1" allowSync="1" identifier="com.plexapp.plugins.library" librarySectionID="7" librarySectionTitle="Test TV Shows" librarySectionUUID="4c37cd05-86d7-4a34-8d5b-aa2fb261a136" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1420767545">
245
+ <Directory ratingKey="1173" key="/library/metadata/1173/children" parentRatingKey="1170" guid="com.plexapp.agents.thetvdb://248736/1?lang=en" type="season" title="Season 1" parentKey="/library/metadata/1170" parentTitle="Grimm" summary="" index="1" parentIndex="1" thumb="/library/metadata/1173/thumb/1423935424" art="/library/metadata/1170/art/1423935406" parentThumb="/library/metadata/1170/thumb/1423935406" parentTheme="/library/metadata/1170/theme/1423935406" leafCount="1" viewedLeafCount="0" addedAt="1423935423" updatedAt="1423935424">
246
+ </Directory>
247
+ </MediaContainer>
248
+ http_version:
249
+ recorded_at: Sat, 14 Feb 2015 17:47:36 GMT
250
+ - request:
251
+ method: get
252
+ uri: http://localhost:32400/library/metadata/1173/children/children
253
+ body:
254
+ encoding: US-ASCII
255
+ string: ''
256
+ headers:
257
+ Accept-Encoding:
258
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
259
+ Accept:
260
+ - "*/*"
261
+ User-Agent:
262
+ - Ruby
263
+ response:
264
+ status:
265
+ code: 200
266
+ message: OK
267
+ headers:
268
+ Content-Type:
269
+ - text/xml;charset=utf-8
270
+ Connection:
271
+ - close
272
+ X-Plex-Protocol:
273
+ - '1.0'
274
+ X-Plex-Content-Original-Length:
275
+ - '2389'
276
+ X-Plex-Content-Compressed-Length:
277
+ - '1216'
278
+ Content-Length:
279
+ - '1216'
280
+ Cache-Control:
281
+ - no-cache
282
+ body:
283
+ encoding: ASCII-8BIT
284
+ string: !binary |-
285
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPE1lZGlh
286
+ Q29udGFpbmVyIHNpemU9IjEiIGFsbG93U3luYz0iMSIgYXJ0PSIvbGlicmFy
287
+ eS9tZXRhZGF0YS8xMTcwL2FydC8xNDIzOTM1NDA2IiBiYW5uZXI9Ii9saWJy
288
+ YXJ5L21ldGFkYXRhLzExNzAvYmFubmVyLzE0MjM5MzU0MDYiIGdyYW5kcGFy
289
+ ZW50Q29udGVudFJhdGluZz0iVFYtMTQiIGdyYW5kcGFyZW50U3R1ZGlvPSJO
290
+ QkMiIGdyYW5kcGFyZW50VGhlbWU9Ii9saWJyYXJ5L21ldGFkYXRhLzExNzAv
291
+ dGhlbWUvMTQyMzkzNTQwNiIgZ3JhbmRwYXJlbnRUaXRsZT0iR3JpbW0iIGlk
292
+ ZW50aWZpZXI9ImNvbS5wbGV4YXBwLnBsdWdpbnMubGlicmFyeSIga2V5PSIx
293
+ MTczIiBsaWJyYXJ5U2VjdGlvbklEPSI3IiBsaWJyYXJ5U2VjdGlvblRpdGxl
294
+ PSJUZXN0IFRWIFNob3dzIiBsaWJyYXJ5U2VjdGlvblVVSUQ9IjRjMzdjZDA1
295
+ LTg2ZDctNGEzNC04ZDViLWFhMmZiMjYxYTEzNiIgbWVkaWFUYWdQcmVmaXg9
296
+ Ii9zeXN0ZW0vYnVuZGxlL21lZGlhL2ZsYWdzLyIgbWVkaWFUYWdWZXJzaW9u
297
+ PSIxNDIwNzY3NTQ1IiBub2NhY2hlPSIxIiBwYXJlbnRJbmRleD0iMSIgcGFy
298
+ ZW50VGl0bGU9IiIgdGhlbWU9Ii9saWJyYXJ5L21ldGFkYXRhLzExNzAvdGhl
299
+ bWUvMTQyMzkzNTQwNiIgdGh1bWI9Ii9saWJyYXJ5L21ldGFkYXRhLzExNzMv
300
+ dGh1bWIvMTQyMzkzNTQyNCIgdGl0bGUxPSJHcmltbSIgdGl0bGUyPSJTZWFz
301
+ b24gMSIgdmlld0dyb3VwPSJlcGlzb2RlIiB2aWV3TW9kZT0iNjU1OTIiPgo8
302
+ VmlkZW8gcmF0aW5nS2V5PSIxMTc0IiBrZXk9Ii9saWJyYXJ5L21ldGFkYXRh
303
+ LzExNzQiIHBhcmVudFJhdGluZ0tleT0iMTE3MyIgdHlwZT0iZXBpc29kZSIg
304
+ dGl0bGU9IlBpbG90IiBwYXJlbnRLZXk9Ii9saWJyYXJ5L21ldGFkYXRhLzEx
305
+ NzMiIHN1bW1hcnk9IkFmdGVyIHRoZSBteXN0ZXJpb3VzIGJydXRhbCBhdHRh
306
+ Y2sgb2YgYSBsb2NhbCBjb2xsZWdlIGNvLWVkLCBQb3J0bGFuZCBob21pY2lk
307
+ ZSBEZXRlY3RpdmUgTmljayBCdXJraGFyZHQgZGlzY292ZXJzIGhlIGlzIGRl
308
+ c2NlbmRlZCBmcm9tIGFuIGVsaXRlIGxpbmUgb2YgY3JpbWluYWwgcHJvZmls
309
+ ZXJzIGtub3duIGFzICZxdW90O0dyaW1tcyZxdW90OywgY2hhcmdlZCB3aXRo
310
+ IGtlZXBpbmcgYmFsYW5jZSBiZXR3ZWVuIGh1bWFuaXR5IGFuZCB0aGUgbXl0
311
+ aG9sb2dpY2FsIGNyZWF0dXJlcyBvZiB0aGUgd29ybGQuIEFzIGhlIHRyaWVz
312
+ IHRvIGhpZGUgdGhlIGRhbmdlcnMgb2YgaGlzIG5ldyBmb3VuZCBjYWxsaW5n
313
+ IGZyb20gaGlzIGZpYW5jw6llLCBKdWxpZXR0ZSBTaWx2ZXJ0b24sIGFuZCBo
314
+ aXMgcGFydG5lciwgSGFuayBHcmlmZmluLCBoZSBiZWNvbWVzIGV2ZXIgbW9y
315
+ ZSBlbnRyZW5jaGVkIGluIHRoZSBhbmNpZW50IHJpdmFscmllcyBhbmQgYWxs
316
+ aWFuY2VzIG9mIHRoZSBHcmltbSB3b3JsZC4gV2l0aCBoZWxwIGZyb20gaGlz
317
+ IHJlbHVjdGFudCBjb25maWRhbnQsIE1vbnJvZSwgYSByZWZvcm1lZCBHcmlt
318
+ bSBjcmVhdHVyZSBoaW1zZWxmLCBOaWNrIG11c3QgbmF2aWdhdGUgdGhyb3Vn
319
+ aCB0aGUgZm9yY2VzIG9mIGEgbGFyZ2VyLXRoYW4tbGlmZSBteXRob2xvZ3ku
320
+ IiBpbmRleD0iMSIgcmF0aW5nPSI3LjU5OTk5OTkwNDYzMjU3MDEiIHllYXI9
321
+ IjIwMTEiIHRodW1iPSIvbGlicmFyeS9tZXRhZGF0YS8xMTc0L3RodW1iLzE0
322
+ MjM5MzU0MjQiIGR1cmF0aW9uPSIyNTExMzYwIiBvcmlnaW5hbGx5QXZhaWxh
323
+ YmxlQXQ9IjIwMTEtMTAtMjgiIGFkZGVkQXQ9IjE0MjM5MzU0MDEiIHVwZGF0
324
+ ZWRBdD0iMTQyMzkzNTQyNCI+CjxNZWRpYSB2aWRlb1Jlc29sdXRpb249IjQ4
325
+ MCIgaWQ9IjE0MDEiIGR1cmF0aW9uPSIyNTExMzYwIiBiaXRyYXRlPSI3Nzki
326
+ IHdpZHRoPSI3MjAiIGhlaWdodD0iNDA0IiBhc3BlY3RSYXRpbz0iMS43OCIg
327
+ YXVkaW9DaGFubmVscz0iMiIgYXVkaW9Db2RlYz0iYWFjIiB2aWRlb0NvZGVj
328
+ PSJoMjY0IiBjb250YWluZXI9Im1wNCIgdmlkZW9GcmFtZVJhdGU9IjI0cCIg
329
+ b3B0aW1pemVkRm9yU3RyZWFtaW5nPSIxIiBoYXM2NGJpdE9mZnNldHM9IjAi
330
+ Pgo8UGFydCBpZD0iMTk1NiIga2V5PSIvbGlicmFyeS9wYXJ0cy8xOTU2L2Zp
331
+ bGUubXA0IiBkdXJhdGlvbj0iMjUxMTM2MCIgZmlsZT0iL1VzZXJzL21jb253
332
+ YXkvTW92aWVzL1Rpdm9ITU9UZXN0L1RWIFNob3dzL0dyaW1tL1NlYXNvbiAx
333
+ L0dyaW1tIFMwMUUwMS5tcDQiIHNpemU9IjI0NDUyNDIxNyIgY29udGFpbmVy
334
+ PSJtcDQiIGhhczY0Yml0T2Zmc2V0cz0iMCIgb3B0aW1pemVkRm9yU3RyZWFt
335
+ aW5nPSIxIiAvPgo8L01lZGlhPgo8V3JpdGVyIHRhZz0iRGF2aWQgR3JlZW53
336
+ YWx0IiAvPgo8V3JpdGVyIHRhZz0iSmltIEtvdWYiIC8+CjxEaXJlY3RvciB0
337
+ YWc9Ik1hcmMgQnVja2xhbmQiIC8+CjwvVmlkZW8+CjwvTWVkaWFDb250YWlu
338
+ ZXI+Cg==
339
+ http_version:
340
+ recorded_at: Sat, 14 Feb 2015 17:47:36 GMT
341
+ - request:
342
+ method: get
343
+ uri: http://localhost:32400/library/metadata/1174
344
+ body:
345
+ encoding: US-ASCII
346
+ string: ''
347
+ headers:
348
+ Accept-Encoding:
349
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
350
+ Accept:
351
+ - "*/*"
352
+ User-Agent:
353
+ - Ruby
354
+ response:
355
+ status:
356
+ code: 200
357
+ message: OK
358
+ headers:
359
+ Content-Type:
360
+ - text/xml;charset=utf-8
361
+ Connection:
362
+ - close
363
+ X-Plex-Protocol:
364
+ - '1.0'
365
+ X-Plex-Content-Original-Length:
366
+ - '2938'
367
+ X-Plex-Content-Compressed-Length:
368
+ - '1431'
369
+ Content-Length:
370
+ - '1431'
371
+ Cache-Control:
372
+ - no-cache
373
+ body:
374
+ encoding: ASCII-8BIT
375
+ string: !binary |-
376
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPE1lZGlh
377
+ Q29udGFpbmVyIHNpemU9IjEiIGFsbG93U3luYz0iMSIgaWRlbnRpZmllcj0i
378
+ Y29tLnBsZXhhcHAucGx1Z2lucy5saWJyYXJ5IiBsaWJyYXJ5U2VjdGlvbklE
379
+ PSI3IiBsaWJyYXJ5U2VjdGlvblRpdGxlPSJUZXN0IFRWIFNob3dzIiBsaWJy
380
+ YXJ5U2VjdGlvblVVSUQ9IjRjMzdjZDA1LTg2ZDctNGEzNC04ZDViLWFhMmZi
381
+ MjYxYTEzNiIgbWVkaWFUYWdQcmVmaXg9Ii9zeXN0ZW0vYnVuZGxlL21lZGlh
382
+ L2ZsYWdzLyIgbWVkaWFUYWdWZXJzaW9uPSIxNDIwNzY3NTQ1Ij4KPFZpZGVv
383
+ IHJhdGluZ0tleT0iMTE3NCIga2V5PSIvbGlicmFyeS9tZXRhZGF0YS8xMTc0
384
+ IiBwYXJlbnRSYXRpbmdLZXk9IjExNzMiIGdyYW5kcGFyZW50UmF0aW5nS2V5
385
+ PSIxMTcwIiBndWlkPSJjb20ucGxleGFwcC5hZ2VudHMudGhldHZkYjovLzI0
386
+ ODczNi8xLzE/bGFuZz1lbiIgdHlwZT0iZXBpc29kZSIgdGl0bGU9IlBpbG90
387
+ IiBncmFuZHBhcmVudEtleT0iL2xpYnJhcnkvbWV0YWRhdGEvMTE3MCIgcGFy
388
+ ZW50S2V5PSIvbGlicmFyeS9tZXRhZGF0YS8xMTczIiBncmFuZHBhcmVudFRp
389
+ dGxlPSJHcmltbSIgY29udGVudFJhdGluZz0iVFYtMTQiIHN1bW1hcnk9IkFm
390
+ dGVyIHRoZSBteXN0ZXJpb3VzIGJydXRhbCBhdHRhY2sgb2YgYSBsb2NhbCBj
391
+ b2xsZWdlIGNvLWVkLCBQb3J0bGFuZCBob21pY2lkZSBEZXRlY3RpdmUgTmlj
392
+ ayBCdXJraGFyZHQgZGlzY292ZXJzIGhlIGlzIGRlc2NlbmRlZCBmcm9tIGFu
393
+ IGVsaXRlIGxpbmUgb2YgY3JpbWluYWwgcHJvZmlsZXJzIGtub3duIGFzICZx
394
+ dW90O0dyaW1tcyZxdW90OywgY2hhcmdlZCB3aXRoIGtlZXBpbmcgYmFsYW5j
395
+ ZSBiZXR3ZWVuIGh1bWFuaXR5IGFuZCB0aGUgbXl0aG9sb2dpY2FsIGNyZWF0
396
+ dXJlcyBvZiB0aGUgd29ybGQuIEFzIGhlIHRyaWVzIHRvIGhpZGUgdGhlIGRh
397
+ bmdlcnMgb2YgaGlzIG5ldyBmb3VuZCBjYWxsaW5nIGZyb20gaGlzIGZpYW5j
398
+ w6llLCBKdWxpZXR0ZSBTaWx2ZXJ0b24sIGFuZCBoaXMgcGFydG5lciwgSGFu
399
+ ayBHcmlmZmluLCBoZSBiZWNvbWVzIGV2ZXIgbW9yZSBlbnRyZW5jaGVkIGlu
400
+ IHRoZSBhbmNpZW50IHJpdmFscmllcyBhbmQgYWxsaWFuY2VzIG9mIHRoZSBH
401
+ cmltbSB3b3JsZC4gV2l0aCBoZWxwIGZyb20gaGlzIHJlbHVjdGFudCBjb25m
402
+ aWRhbnQsIE1vbnJvZSwgYSByZWZvcm1lZCBHcmltbSBjcmVhdHVyZSBoaW1z
403
+ ZWxmLCBOaWNrIG11c3QgbmF2aWdhdGUgdGhyb3VnaCB0aGUgZm9yY2VzIG9m
404
+ IGEgbGFyZ2VyLXRoYW4tbGlmZSBteXRob2xvZ3kuIiBpbmRleD0iMSIgcGFy
405
+ ZW50SW5kZXg9IjEiIHJhdGluZz0iNy41OTk5OTk5MDQ2MzI1NzAxIiB5ZWFy
406
+ PSIyMDExIiB0aHVtYj0iL2xpYnJhcnkvbWV0YWRhdGEvMTE3NC90aHVtYi8x
407
+ NDIzOTM1NDI0IiBhcnQ9Ii9saWJyYXJ5L21ldGFkYXRhLzExNzAvYXJ0LzE0
408
+ MjM5MzU0MDYiIHBhcmVudFRodW1iPSIvbGlicmFyeS9tZXRhZGF0YS8xMTcz
409
+ L3RodW1iLzE0MjM5MzU0MjQiIGdyYW5kcGFyZW50VGh1bWI9Ii9saWJyYXJ5
410
+ L21ldGFkYXRhLzExNzAvdGh1bWIvMTQyMzkzNTQwNiIgZ3JhbmRwYXJlbnRU
411
+ aGVtZT0iL2xpYnJhcnkvbWV0YWRhdGEvMTE3MC90aGVtZS8xNDIzOTM1NDA2
412
+ IiBkdXJhdGlvbj0iMjUxMTM2MCIgb3JpZ2luYWxseUF2YWlsYWJsZUF0PSIy
413
+ MDExLTEwLTI4IiBhZGRlZEF0PSIxNDIzOTM1NDAxIiB1cGRhdGVkQXQ9IjE0
414
+ MjM5MzU0MjQiPgo8TWVkaWEgdmlkZW9SZXNvbHV0aW9uPSI0ODAiIGlkPSIx
415
+ NDAxIiBkdXJhdGlvbj0iMjUxMTM2MCIgYml0cmF0ZT0iNzc5IiB3aWR0aD0i
416
+ NzIwIiBoZWlnaHQ9IjQwNCIgYXNwZWN0UmF0aW89IjEuNzgiIGF1ZGlvQ2hh
417
+ bm5lbHM9IjIiIGF1ZGlvQ29kZWM9ImFhYyIgdmlkZW9Db2RlYz0iaDI2NCIg
418
+ Y29udGFpbmVyPSJtcDQiIHZpZGVvRnJhbWVSYXRlPSIyNHAiIG9wdGltaXpl
419
+ ZEZvclN0cmVhbWluZz0iMSIgaGFzNjRiaXRPZmZzZXRzPSIwIj4KPFBhcnQg
420
+ aWQ9IjE5NTYiIGtleT0iL2xpYnJhcnkvcGFydHMvMTk1Ni9maWxlLm1wNCIg
421
+ ZHVyYXRpb249IjI1MTEzNjAiIGZpbGU9Ii9Vc2Vycy9tY29ud2F5L01vdmll
422
+ cy9UaXZvSE1PVGVzdC9UViBTaG93cy9HcmltbS9TZWFzb24gMS9HcmltbSBT
423
+ MDFFMDEubXA0IiBzaXplPSIyNDQ1MjQyMTciIGNvbnRhaW5lcj0ibXA0IiBo
424
+ YXM2NGJpdE9mZnNldHM9IjAiIG9wdGltaXplZEZvclN0cmVhbWluZz0iMSI+
425
+ CjxTdHJlYW0gaWQ9IjU3MzQiIHN0cmVhbVR5cGU9IjEiIGNvZGVjPSJoMjY0
426
+ IiBpbmRleD0iMCIgYml0cmF0ZT0iNjU2IiBiaXREZXB0aD0iOCIgY2FiYWM9
427
+ IjEiIGNocm9tYVN1YnNhbXBsaW5nPSI0OjI6MCIgY29kZWNJRD0iYXZjMSIg
428
+ Y29sb3JTcGFjZT0ieXV2IiBkdXJhdGlvbj0iMjUxMTM0MiIgZnJhbWVSYXRl
429
+ PSIyMy45NzYiIGZyYW1lUmF0ZU1vZGU9ImNmciIgaGFzU2NhbGluZ01hdHJp
430
+ eD0iMCIgaGVpZ2h0PSI0MDQiIGxldmVsPSIzMSIgcHJvZmlsZT0iaGlnaCIg
431
+ cmVmRnJhbWVzPSI1IiBzY2FuVHlwZT0icHJvZ3Jlc3NpdmUiIHRpdGxlPSIi
432
+ IHdpZHRoPSI3MjAiIC8+CjxTdHJlYW0gaWQ9IjU3MzUiIHN0cmVhbVR5cGU9
433
+ IjIiIHNlbGVjdGVkPSIxIiBjb2RlYz0iYWFjIiBpbmRleD0iMSIgY2hhbm5l
434
+ bHM9IjIiIGJpdHJhdGU9IjExOSIgYml0cmF0ZU1vZGU9InZiciIgY29kZWNJ
435
+ RD0iNDAiIGR1cmF0aW9uPSIyNTExMzYwIiBwcm9maWxlPSJsYyIgc2FtcGxp
436
+ bmdSYXRlPSI0ODAwMCIgdGl0bGU9IiIgLz4KPC9QYXJ0Pgo8L01lZGlhPgo8
437
+ V3JpdGVyIGlkPSI3NjE0IiB0YWc9IkRhdmlkIEdyZWVud2FsdCIgLz4KPFdy
438
+ aXRlciBpZD0iNzYxNSIgdGFnPSJKaW0gS291ZiIgLz4KPFdyaXRlciBpZD0i
439
+ NzY5MSIgdGFnPSJTdGVwaGVuIENhcnBlbnRlciIgLz4KPERpcmVjdG9yIGlk
440
+ PSI3NjkyIiB0YWc9Ik1hcmMgQnVja2xhbmQiIC8+CjwvVmlkZW8+CjwvTWVk
441
+ aWFDb250YWluZXI+Cg==
442
+ http_version:
443
+ recorded_at: Sat, 14 Feb 2015 17:47:36 GMT
444
+ recorded_with: VCR 2.9.3