botr 0.1.0 → 0.1.1

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
  SHA1:
3
- metadata.gz: 639156f787f908de46a41659c4c8d6d970cda933
4
- data.tar.gz: 622a75e74c4b9c3e9c57f00aec3cbe936a9d6d9d
3
+ metadata.gz: 0566390f9e32ca9a61ffeefb7530242bffed7a02
4
+ data.tar.gz: 99a2af2ac184d15fd438d8aa99cc45caacdcdd3f
5
5
  SHA512:
6
- metadata.gz: 43266b552c296a6ef23f5fd0080d167c07459068695d517cd90778f6c27bf7c1dd45b179ca08496a072a0c38d445ea59a75d1d34197cf7eeb54f2975daf63a61
7
- data.tar.gz: 91256d3345300acef4027cbfdf10f20ac5cd3e0c40651e5c916e92dbfe737f08d357aa1f486daed1fdca8579223f51d6f60c164ef5112ec866a9ff20cf9c523b
6
+ metadata.gz: 68a8d8d211fb8403bed97cbbbffe2ec1deab740e693f7cb6d171e7bf680be909541b5b81ed9312bcdf3dfb75ee3af33eaad1f0465196a80ab0a55dcbf7b3791f
7
+ data.tar.gz: fc9e5e878caad0e0555a59fc399b831e3692a051868334914f1f2818b5b79d20e0c3e4df8fafd544c6ba2ea4539e6a6196f1a53a738be30ff7988ab89b1b1cf0
@@ -0,0 +1 @@
1
+ # call_class = "accounts/usage"
@@ -1,14 +1,24 @@
1
1
  module BOTR
2
2
 
3
+ # The BOTR::Channel class contains calls for creating new channels, searching
4
+ # for channels, managing the channel properties (title, description etc.) and
5
+ # deleting channels.
3
6
  class Channel < BOTR::Object
4
7
 
5
8
  class << self
6
9
 
7
10
  attr_reader :last_status
8
11
 
9
- def show(key)
12
+ # Show all information about a channel.
13
+ #
14
+ # @param [String] channel_key key of the channel for which to show
15
+ # information
16
+ #
17
+ # @return [BOTR::Channel] a new object with the properties of the
18
+ # channel referenced by the channel key
19
+ def show(channel_key)
10
20
  json = get_request({:method => 'show',
11
- :channel_key => key})
21
+ :channel_key => channel_key})
12
22
  res = JSON.parse(json.body)
13
23
 
14
24
  if json.status == 200
@@ -22,6 +32,27 @@ module BOTR
22
32
 
23
33
  alias :find :show
24
34
 
35
+ # Return a list of channels, including their most interesting
36
+ # properties.
37
+ #
38
+ # @param [Hash] options search parameters
39
+ #
40
+ # @option options [String] types_filter specifies channel type by
41
+ # which returned result should be filtered: "manual" or "dynamic"
42
+ # @option options [String] search case-insensitive search in the
43
+ # author, channel_key, description, link, title fields and custom
44
+ # fields
45
+ # @option options [String] order_by specifies parameters by which
46
+ # returned result should be ordered; ":asc" and ":desc" can be
47
+ # appended accordingly
48
+ # @option options [Integer] result_limit specifies maximum number of
49
+ # channels to return; default is 50 and maximum result limit is 1000
50
+ # @option options [Integer] result_offset specifies how many channels
51
+ # should be skipped at the beginning of the result set; default is
52
+ # 0
53
+ #
54
+ # @return [BOTR::Channel] a new object with the properties of the
55
+ # channel referenced by the channel key
25
56
  def list(**options)
26
57
  json = get_request(options.merge(:method => 'list'))
27
58
  res = JSON.parse(json.body)
@@ -69,6 +100,19 @@ module BOTR
69
100
  end
70
101
  end
71
102
 
103
+ # Create a new (dynamic or manual) channel.
104
+ #
105
+ # @param [String] type type of the channel: "dynamic" or "manual"
106
+ # information
107
+ # @param [Hash] options channel parameters
108
+ #
109
+ # @option options [String] title title of the channel
110
+ # @option options [String] description description of the channel
111
+ # @option options [String] link user defined URL
112
+ # @option options [String] author author of the channel
113
+ #
114
+ # @return [BOTR::Channel] this object with the properties specified in
115
+ # the options hash
72
116
  def create(type, **options)
73
117
  json = get_request(options.merge(:method => 'create',
74
118
  :type => type))
@@ -83,6 +127,32 @@ module BOTR
83
127
  return self
84
128
  end
85
129
 
130
+ # Configure or update the properties of a channel.
131
+ #
132
+ # @param [Hash] options channel parameters
133
+ #
134
+ # @option options [String] channel_key key of the channel which should
135
+ # be configured or updated
136
+ # @option options [String] title title of the channel
137
+ # @option options [String] description description of the channel
138
+ # @option options [String] link user defined URL
139
+ # @option options [String] author author of the channel
140
+ # @option options [String] tags tags of the channel; restricts the
141
+ # inclusion of videos to the channel to the videos tagged with the
142
+ # specified tags
143
+ # @option options [String] tags_mode tags search mode for the dynamic
144
+ # channel: "all" -- a video will only be added if it has all tags
145
+ # specified in the tags parameter or "any" -- a video will be added if
146
+ # it has at least one tag specified in the tags parameter
147
+ # @option options [String] sort_order specifies sorting order of the
148
+ # videos in a dynamic channel: "date-asc", "date-desc", "title-asc",
149
+ # "title-desc", "duration-asc", "duration-desc", "views-asc" or
150
+ # "views-desc"
151
+ # @option options [Integer] videos_max maximum number of videos to
152
+ # allow in a dynamic channel; default is 10
153
+ #
154
+ # @return [BOTR::Channel] this object with the properties specified in
155
+ # the options hash
86
156
  def update(**options)
87
157
  json = put_request(options.merge(:channel_key => @key))
88
158
  res = JSON.parse(json.body)
@@ -96,6 +166,9 @@ module BOTR
96
166
  return self
97
167
  end
98
168
 
169
+ # Delete a channel.
170
+ #
171
+ # @return [BOTR::Channel] this object with null properties
99
172
  def delete
100
173
  json = delete_request({:channel_key => @key})
101
174
  res = JSON.parse(json.body)
@@ -1,14 +1,23 @@
1
1
  module BOTR
2
2
 
3
+ # The BOTR::ChannelThumbnail class contains calls that can be used to upload
4
+ # a preview image for a channel. Channels don’t have a thumb by default.
3
5
  class ChannelThumbnail < BOTR::Object
4
6
 
5
7
  class << self
6
8
 
7
9
  attr_reader :last_status
8
10
 
9
- def show(key)
11
+ # Show channel thumbnails creation status.
12
+ #
13
+ # @param [String] channel_key key of the channel for which to show
14
+ # thumbnails creation status
15
+ #
16
+ # @return [BOTR::ChannelThumbnail] a new object with the thumbnail
17
+ # properties of the channel referenced by the channel key
18
+ def show(channel_key)
10
19
  json = get_request({:method => 'show',
11
- :channel_key => key})
20
+ :channel_key => channel_key})
12
21
  res = JSON.parse(json.body)
13
22
 
14
23
  if json.status == 200
@@ -44,6 +53,9 @@ module BOTR
44
53
  raise ArgumentError, "You must specify a channel key." if @key.nil?
45
54
  end
46
55
 
56
+ # Update a channel thumbnail by uploading an image.
57
+ #
58
+ # @return [BOTR::ChannelThumbnail] this object with an upload URL
47
59
  def update
48
60
  json = put_request({:channel_key => @key})
49
61
  res = JSON.parse(json.body)
@@ -1,14 +1,30 @@
1
1
  module BOTR
2
2
 
3
+ # The BOTR::ChannelVideo class contains calls for requesting channel videos
4
+ # in the dynamic playlist. For manual channels, these calls can also be used
5
+ # to add, change video position or remove video from the playlist.
3
6
  class ChannelVideo < BOTR::Object
4
7
 
5
8
  class << self
6
9
 
7
10
  attr_reader :last_status
8
11
 
9
- def show(key, **options)
12
+ # Show information for a video from the channel.
13
+ #
14
+ # @param [String] channel_key key of the channel to which the video
15
+ # belongs
16
+ # @params [Hash] options channel video parameters
17
+ #
18
+ # @option options [String] video_key key of the video which
19
+ # information to show
20
+ # @option options [Integer] position position of the video in the
21
+ # channel for which to show information
22
+ #
23
+ # @return [BOTR::ChannelVideo] a new object with the properties of
24
+ # the video referenced by the video key or the position
25
+ def show(channel_key, **options)
10
26
  json = get_request(options.merge(:method => 'show',
11
- :channel_key => key))
27
+ :channel_key => channel_key))
12
28
  res = JSON.parse(json.body)
13
29
 
14
30
  if json.status == 200
@@ -22,9 +38,22 @@ module BOTR
22
38
 
23
39
  alias :find :show
24
40
 
25
- def list(key, **options)
41
+ # Return list of videos in the channel.
42
+ #
43
+ # @param [String] channel_key key of the channel for which videos
44
+ # should be listed
45
+ # @params [Hash] options channel video parameters
46
+ #
47
+ # @option options [Integer] result_limit specifies maximum number of
48
+ # videos to return; default is 50 and maximum result limit is 1000.
49
+ # @option options [Integer] result_offset specifies how many videos
50
+ # should be skipped at the beginning of the result set
51
+ #
52
+ # @return [Array] a list of video objects in the channel specified
53
+ # by the channel key
54
+ def list(channel_key, **options)
26
55
  json = get_request(options.merge(:method => 'list',
27
- :channel_key => key))
56
+ :channel_key => channel_key))
28
57
  res = JSON.parse(json.body)
29
58
 
30
59
  if json.status == 200
@@ -36,6 +65,19 @@ module BOTR
36
65
  return results
37
66
  end
38
67
 
68
+ # Move a video to a different position in a manual channel.
69
+ #
70
+ # @param [String] channel_key key of the channel which should be
71
+ # updated
72
+ # @params [Hash] options channel video parameters
73
+ #
74
+ # @option options [String] position_from position in the channel
75
+ # of the video which should be moved
76
+ # @option options [Integer] position_to position in the channel
77
+ # of where the video which should be moved
78
+ #
79
+ # @return [BOTR::ChannelVideo] this object with the status of the
80
+ # move operation
39
81
  def update(channel_key, **options)
40
82
  json = put_request(options.merge(:channel_key => channel_key))
41
83
  res = JSON.parse(json.body)
@@ -84,6 +126,19 @@ module BOTR
84
126
  raise ArgumentError, "You must specify a video key." if @key.nil?
85
127
  end
86
128
 
129
+ # Add a video to the playlist of a manual channel.
130
+ #
131
+ # @param [String] channel_key key of the channel to which the video
132
+ # belongs
133
+ # @params [Hash] options channel video parameters
134
+ #
135
+ # @option options [String] video_key key of the video that should be
136
+ # added to the channel
137
+ # @option options [Integer] position indicates where to insert the new
138
+ # video; defaults to insertion at the end
139
+ #
140
+ # @return [BOTR::ChannelVideo] this object with the status of the add
141
+ # operation
87
142
  def create(channel_key, **options)
88
143
  json = get_request(options.merge(:method => 'create',
89
144
  :channel_key => channel_key,
@@ -99,8 +154,21 @@ module BOTR
99
154
  return self
100
155
  end
101
156
 
102
- def delete(channel_key)
103
- json = delete_request({:channel_key => channel_key})
157
+ # Delete a video from the playlist of a manual channel.
158
+ #
159
+ # @param [String] channel_key key of the channel from which video should
160
+ # be deleted
161
+ # @params [Hash] options channel video parameters
162
+ #
163
+ # @option options [String] video_key key of the video; all videos with
164
+ # this key will be deleted from the channel
165
+ # @option options [Integer] position_to video position in the channel;
166
+ # only video at this position will be deleted from the channel
167
+ #
168
+ # @return [BOTR::ChannelVideo] this object with the status of the delete
169
+ # operation and all other parameters nulled
170
+ def delete(channel_key, **options)
171
+ json = delete_request(options.merge(:channel_key => channel_key))
104
172
  res = JSON.parse(json.body)
105
173
 
106
174
  if json.status == 200
@@ -1,14 +1,42 @@
1
1
  module BOTR
2
2
 
3
+ # The BOTR::ChannelView class contains calls for requesting channel views
4
+ # statistics.
5
+ #
6
+ # A channel view is counted every time:
7
+ #
8
+ # The RSS feed of that channel is requested from the content server.
9
+ # A player from our content server containing a channel is embedded in a
10
+ # webpage.
3
11
  class ChannelView < BOTR::Object
4
12
 
5
13
  class << self
6
14
 
7
15
  attr_reader :last_status
8
-
9
- def show(key, **options)
16
+
17
+ # Shows views statistics for a channel.
18
+ #
19
+ # @param [String] channel_key key of the channel for which to show
20
+ # information
21
+ # @param [Hash] options channel views parameters
22
+ #
23
+ # @option options [Integer] start_date Unix timestamp of date
24
+ # from which channel views statistics should be start
25
+ # @option options [Integer] end_date Unix timestamp of date
26
+ # on which channel views statistics should be end
27
+ # @option options [String] aggregate specifies if returned channel
28
+ # views statistics should be aggregate: true or false
29
+ # @option options [String] group_days specifies if returned channel
30
+ # views statistics should be grouped by year and month
31
+ # @option options [String] include_empty_days specifies if channel
32
+ # views statistics should include days for which there is no
33
+ # statistics available: true or false
34
+ #
35
+ # @return [BOTR::ChannelView] a new object with the view statistics
36
+ # of the channel referenced by the channel key
37
+ def show(channel_key, **options)
10
38
  json = get_request(options.merge(:method => 'show',
11
- :channel_key => key))
39
+ :channel_key => channel_key))
12
40
  res = JSON.parse(json.body)
13
41
 
14
42
  if json.status == 200
@@ -22,6 +50,34 @@ module BOTR
22
50
 
23
51
  alias :find :show
24
52
 
53
+ # List channel views statistics per channel or per day.
54
+ #
55
+ # @params [Hash] options stats parameters
56
+ #
57
+ # @option options [Integer] start_date Unix timestamp of date
58
+ # from which channel views statistics should be start
59
+ # @option options [Integer] end_date Unix timestamp of date
60
+ # on which channel views statistics should be end
61
+ # @option options [String] list_by specifies channel views statistics
62
+ # listing type: "channel" or "day"
63
+ # @option options [String] order_by specifies parameters by which
64
+ # returned result should be ordered; ":asc" and ":desc" can be
65
+ # appended accordingly
66
+ # @option options [Integer] result_limit specifies maximum number
67
+ # of channels to return: default is 50 and maximum result limit is
68
+ # 1000
69
+ # @option options [Integer] result_offset specifies how many channels
70
+ # should be skipped at the beginning of the result set
71
+ # @option options [String] aggregate specifies if returned channel
72
+ # views statistics should be aggregate: true or false
73
+ # @option options [String] group_days specifies if returned channel
74
+ # views statistics should be grouped by year and month
75
+ # @option options [String] include_empty_days specifies if channel
76
+ # views statistics should include days for which there is no
77
+ # statistics available: true or false
78
+ #
79
+ # @return [Array] a list of objects with the statistics of the
80
+ # all channels matching the given criteria
25
81
  def list(**options)
26
82
  json = get_request(options.merge(:method => 'list'))
27
83
  res = JSON.parse(json.body)
@@ -1,3 +1,3 @@
1
1
  module BOTR
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -7,7 +7,6 @@ module BOTR
7
7
  # A video object is a metadata container that actually contains multiple
8
8
  # video files (conversions). It does _not_ reference the actual video file
9
9
  # located on the content server.
10
- #
11
10
  class Video < BOTR::Object
12
11
 
13
12
  class << self
@@ -44,10 +43,30 @@ module BOTR
44
43
  # with these tags (multiple tags should be comma-separated)
45
44
  # @option options [String] tags_mode tags search mode: "all" -- a
46
45
  # video will only be listed if it has all tags specified in the
47
- # tags parameter or "any" -- A video will be listed if it has at
46
+ # tags parameter or "any" -- a video will be listed if it has at
48
47
  # least one tag specified in the tags parameter
48
+ # @option options [String] search case-insensitive search in the
49
+ # author, description, link, md5, tags, title and video_key fields
50
+ # @option options [String] mediatypes_filter list only videos with
51
+ # the specified media types: "unknown", "audio", "video"
52
+ # @option options [String] statuses_filter list only videos with the
53
+ # specified statuses: "created", "processing", "ready", "updating",
54
+ # "failed"
55
+ # @option options [String] order_by specifies parameters by which
56
+ # returned result should be ordered; ":asc" and ":desc" can be
57
+ # appended accordingly
58
+ # @option options [Integer] start_date video creation date starting
59
+ # from which videos list should be returned as a UNIX timestamp
60
+ # @option options [Integer] end_date video creation date until
61
+ # (and including) which videos list should be returned as a UNIX
62
+ # timestamp
63
+ # @option options [Integer] result_limit specifies maximum number of
64
+ # videos to return; default is 50 and maximum result limit is 1000
65
+ # @option options [Integer] result_offset specifies how many videos
66
+ # should be skipped at the beginning of the result set; default is
67
+ # 0
49
68
  #
50
- # @return [Array] a list of video object matching the search
69
+ # @return [Array] a list of video objects matching the search
51
70
  # criteria
52
71
  def list(**options)
53
72
  json = get_request(options.merge(:method => 'list'))
@@ -64,7 +83,7 @@ module BOTR
64
83
 
65
84
  # Return a list of all videos.
66
85
  #
67
- # @note Same as calling list with no arguments given.
86
+ # @note Same as calling `list` with no arguments given.
68
87
  def all
69
88
  list({})
70
89
  end
@@ -101,6 +120,25 @@ module BOTR
101
120
  end
102
121
  end
103
122
 
123
+ # Create a new video by sending metadata and requesting an upload URL.
124
+ #
125
+ # @param [Hash] options video parameters
126
+ #
127
+ # @option options [String] title title of the video
128
+ # @option options [String] tags tags for the video; multiple tags should
129
+ # be comma-separated
130
+ # @option options [String] description description of the video
131
+ # @option options [String] author author of the video
132
+ # @option options [Integer] date video creation date as UNIX timestamp
133
+ # @option options [String] link the URL of the web page where this video
134
+ # is published
135
+ # @option options [String] download_url URL from where to fetch a video
136
+ # file; only URLs with the http protocol are supported
137
+ # @option options [String] md5 video file MD5 message digest
138
+ # @option options [Integer] size video file size
139
+ #
140
+ # @return [BOTR::Video] this video object with the parameters specified in
141
+ # the options hash and an upload link
104
142
  def create(**options)
105
143
  json = get_request(options.merge(:method => 'create'))
106
144
  res = JSON.parse(json.body)
@@ -127,6 +165,25 @@ module BOTR
127
165
  return self
128
166
  end
129
167
 
168
+ # Update the properties of a video.
169
+ #
170
+ # @param [Hash] options video parameters
171
+ #
172
+ # @option options [String] title title of the video
173
+ # @option options [String] tags tags for the video; multiple tags should
174
+ # be comma-separated
175
+ # @option options [String] description description of the video
176
+ # @option options [String] author author of the video
177
+ # @option options [Integer] date video creation date as UNIX timestamp
178
+ # @option options [String] link the URL of the web page where this video
179
+ # is published
180
+ # @option options [String] download_url URL from where to fetch a video
181
+ # file; only URLs with the http protocol are supported
182
+ # @option options [String] md5 video file MD5 message digest
183
+ # @option options [Integer] size video file size
184
+ #
185
+ # @return [BOTR::Video] this object with the properties of the
186
+ # video referenced by the options hash
130
187
  def update(**options)
131
188
  json = put_request(options.merge(:video_key => @key))
132
189
  res = JSON.parse(json.body)
@@ -140,6 +197,9 @@ module BOTR
140
197
  return self
141
198
  end
142
199
 
200
+ # Remove a video and all of its conversions from the server.
201
+ #
202
+ # @return [BOTR::Video] this object with null properties
143
203
  def delete
144
204
  json = delete_request({:video_key => @key})
145
205
  res = JSON.parse(json.body)
@@ -1,14 +1,22 @@
1
1
  module BOTR
2
2
 
3
+ # The BOTR::VideoCaption class contains calls for manipulating videos captions.
3
4
  class VideoCaption < BOTR::Object
4
5
 
5
6
  class << self
6
7
 
7
8
  attr_reader :last_status
8
9
 
9
- def show(key)
10
+ # Show video caption information.
11
+ #
12
+ # @param [String] caption_key key of the caption which information
13
+ # to show
14
+ #
15
+ # @return [BOTR::VideoCaption] a new object with the properties of the
16
+ # caption referenced by the caption_key
17
+ def show(video_key)
10
18
  json = get_request({:method => 'show',
11
- :caption_key => key})
19
+ :caption_key => video_key})
12
20
  res = JSON.parse(json.body)
13
21
 
14
22
  if json.status == 200
@@ -22,9 +30,31 @@ module BOTR
22
30
 
23
31
  alias :find :show
24
32
 
25
- def list(key, **options)
33
+ # Return a list of videos captions.
34
+ #
35
+ # @param [Hash] options search parameters
36
+ #
37
+ # @option options [String] video_key key of the video which captions
38
+ # to list
39
+ # @option options [String] search case-insensitive search in the
40
+ # caption key and label fields
41
+ # @option options [String] statuses_filter list only captions with
42
+ # the specified statuses: "processing", "ready", "updating",
43
+ # "failed", "deleted"
44
+ # @option options [String] order_by specifies parameters by which
45
+ # returned result should be ordered; ":asc" and ":desc" can be
46
+ # appended accordingly
47
+ # @option options [Integer] result_limit specifies maximum number of
48
+ # captions to return; default is 50 and maximum result limit is 1000
49
+ # @option options [Integer] result_offset specifies how many captions
50
+ # should be skipped at the beginning of the result set; default is
51
+ # 0
52
+ #
53
+ # @return [Array] a list of video caption objects matching the search
54
+ # criteria
55
+ def list(video_key, **options)
26
56
  json = get_request(options.merge(:method => 'list',
27
- :video_key => key))
57
+ :video_key => video_key))
28
58
  res = JSON.parse(json.body)
29
59
 
30
60
  if json.status == 200
@@ -67,6 +97,20 @@ module BOTR
67
97
  end
68
98
  end
69
99
 
100
+ # Create a new video caption.
101
+ #
102
+ # @param [String] video_key key of the video for which caption should be
103
+ # created
104
+ # @param [Hash] options caption parameters
105
+ #
106
+ # @option options [String] label caption label
107
+ # @option options [Integer] position indicates where to insert the new
108
+ # caption; default is to insert at the end of the list
109
+ # @option options [String] md5 caption file MD5 message digest
110
+ # @option options [Integer] size caption file size
111
+ #
112
+ # @return [BOTR::VideoCaption] this video caption object with the
113
+ # parameters specified in the options hash and an upload link
70
114
  def create(video_key, **options)
71
115
  json = get_request(options.merge(:method => 'create',
72
116
  :video_key => video_key))
@@ -94,6 +138,16 @@ module BOTR
94
138
  return self
95
139
  end
96
140
 
141
+ # Update video caption.
142
+ #
143
+ # @param [Hash] options caption parameters
144
+ #
145
+ # @option options [String] label caption label
146
+ # @option options [Integer] position indicates where to insert the new
147
+ # caption; default is to insert at the end of the list
148
+ #
149
+ # @return [BOTR::VideoCaption] this video caption object with the
150
+ # parameters specified in the options hash and an optional upload link
97
151
  def update(**options)
98
152
  json = put_request(options.merge(:caption_key => @key))
99
153
  res = JSON.parse(json.body)
@@ -107,6 +161,9 @@ module BOTR
107
161
  return self
108
162
  end
109
163
 
164
+ # Delete a video caption.
165
+ #
166
+ # @return [BOTR::VideoCaption] this object with null properties
110
167
  def delete
111
168
  json = delete_request({:caption_key => @key})
112
169
  res = JSON.parse(json.body)
@@ -1,14 +1,27 @@
1
1
  module BOTR
2
2
 
3
+ # The BOTR::VideoConversion class calls are used to create, search for and
4
+ # delete individual video files (conversions) inside a video object.
5
+ #
6
+ # A conversion is always created by applying a transcoding template to a
7
+ # video. A template contains information for the dimensions, bitrate and
8
+ # watermark of the resulting conversion.
3
9
  class VideoConversion < BOTR::Object
4
10
 
5
11
  class << self
6
12
 
7
13
  attr_reader :last_status
8
14
 
9
- def show(key)
15
+ # Show video conversion information.
16
+ #
17
+ # @param [String] conversion_key key of the conversion for which to
18
+ # show information
19
+ #
20
+ # @return [BOTR::VideoConversion] a new object with the properties
21
+ # of the conversion referenced by the conversion_key
22
+ def show(conversion_key)
10
23
  json = get_request({:method => 'show',
11
- :conversion_key => key})
24
+ :conversion_key => conversion_key})
12
25
  res = JSON.parse(json.body)
13
26
 
14
27
  if json.status == 200
@@ -22,9 +35,24 @@ module BOTR
22
35
 
23
36
  alias :find :show
24
37
 
25
- def list(key)
26
- json = get_request({:method => 'list',
27
- :video_key => key})
38
+ # List conversions for a given video.
39
+ #
40
+ # @param [String] video_key key of the video for which to list
41
+ # conversions
42
+ # @param [Hash] options result parameters
43
+ #
44
+ # @option options [Integer] result_limit specifies maximum number of
45
+ # video conversions to return; default is 50 and maximum result
46
+ # limit is 1000
47
+ # @option options [Integer] result_offset specifies how many video
48
+ # conversions should be skipped at the beginning of the result set;
49
+ # default is 0
50
+ #
51
+ # @return [Array] a list of video conversion objects for the given
52
+ # video key
53
+ def list(key, **options)
54
+ json = get_request(options.merge(:method => 'list',
55
+ :video_key => key))
28
56
  res = JSON.parse(json.body)
29
57
 
30
58
  if json.status == 200
@@ -64,9 +92,18 @@ module BOTR
64
92
  param = "@#{key.to_s}"
65
93
  next unless methods.include? key.to_sym
66
94
  instance_variable_set(param, val)
67
- end
95
+ end
68
96
  end
69
97
 
98
+ # Create a new conversion of a video.
99
+ #
100
+ # @param [String] video_key key of the video for which conversion should
101
+ # be created
102
+ # @param [String] template_key key of the conversion template that
103
+ # should be used for this conversion.
104
+ #
105
+ # @return [BOTR::VideoConversion] this object with the properties
106
+ # of the conversion referenced by the template_key
70
107
  def create(video_key, template_key)
71
108
  json = get_request({:method => 'create',
72
109
  :video_key => video_key,
@@ -82,6 +119,9 @@ module BOTR
82
119
  return self
83
120
  end
84
121
 
122
+ # Delete a video conversion from the CDN.
123
+ #
124
+ # @return [BOTR::VideoConversion] this object with null properties
85
125
  def delete
86
126
  json = delete_request({:conversion_key => @key})
87
127
  res = JSON.parse(json.body)
@@ -1,5 +1,15 @@
1
1
  module BOTR
2
2
 
3
+ # The BOTR::VideoEngagement class contains calls for for displaying video
4
+ # engagement data.
5
+ #
6
+ # Engagement analytics allow you to track which sections of a video are
7
+ # being watched by users. These analytics are useful for determining:
8
+ #
9
+ # Drop off rates: Many users might drop off at a certain point in the video.
10
+ # Editing that section might increase engagement.
11
+ # Replay rates: Many users might replay a certain section in the video.
12
+ # This might be a location to target ads against.
3
13
  class VideoEngagement < BOTR::Object
4
14
 
5
15
  class << self
@@ -10,9 +20,16 @@ module BOTR
10
20
  "videos/engagement"
11
21
  end
12
22
 
13
- def show(key)
23
+ # Displays engagement analytics for a single video.
24
+ #
25
+ # @param [String] video_key the key of the video to display
26
+ # engagement analytics for
27
+ #
28
+ # @return [BOTR::VideoEngagement] a new object with the engagement
29
+ # analytics of the video referenced by the video key
30
+ def show(video_key)
14
31
  json = get_request({:method => 'show',
15
- :video_key => key})
32
+ :video_key => video_key})
16
33
  res = JSON.parse(json.body)
17
34
 
18
35
  if json.status == 200
@@ -1,11 +1,32 @@
1
1
  module BOTR
2
2
 
3
+ # The BOTR::VideoTag class contains calls for manipulating video tags.
4
+ #
5
+ # Tags are essentially labels that can be used for the classification of
6
+ # videos.
3
7
  class VideoTag < BOTR::Object
4
8
 
5
9
  class << self
6
10
 
7
11
  attr_reader :last_status
8
12
 
13
+ # Return a list of video tags.
14
+ #
15
+ # @param [Hash] options search parameters
16
+ #
17
+ # @option options [String] search case-insensitive search in the
18
+ # name tag field
19
+ # @option options [String] order_by specifies parameters by which
20
+ # returned result should be ordered; ":asc" and ":desc" can be
21
+ # appended accordingly
22
+ # @option options [Integer] result_limit specifies maximum number of
23
+ # tags to return; default is 50 and maximum result limit is 1000
24
+ # @option options [Integer] result_offset specifies how many tags
25
+ # should be skipped at the beginning of the result set; default is
26
+ # 0
27
+ #
28
+ # @return [Array] a list of tag objects matching the search
29
+ # criteria
9
30
  def list(**options)
10
31
  json = get_request(options.merge(:method => 'list'))
11
32
  res = JSON.parse(json.body)
@@ -1,14 +1,23 @@
1
1
  module BOTR
2
2
 
3
+ # The BOTR::VideoThumbnail class contains calls for managing the preview
4
+ # image of a video.
3
5
  class VideoThumbnail < BOTR::Object
4
6
 
5
7
  class << self
6
8
 
7
9
  attr_reader :last_status
8
10
 
9
- def show(key)
11
+ # Show video thumbnails creation status.
12
+ #
13
+ # @param [String] video_key key of the video for which to show
14
+ # thumbnails creation status
15
+ #
16
+ # @return [BOTR::VideoThumbnail] a new object with the thumbnail status of
17
+ # the video referenced by the video key
18
+ def show(video_key)
10
19
  json = get_request({:method => 'show',
11
- :video_key => key})
20
+ :video_key => video_key})
12
21
  res = JSON.parse(json.body)
13
22
 
14
23
  if json.status == 200
@@ -43,6 +52,24 @@ module BOTR
43
52
  end
44
53
  end
45
54
 
55
+ # Update a video’s thumbnail by either setting a frame from the video or
56
+ # uploading an image.
57
+ #
58
+ # @param [Hash] options video parameters
59
+ #
60
+ # @option options [Float] position video frame position in seconds from
61
+ # which thumbnail should be generated; seconds can be given as a whole
62
+ # number (e.g: 7) or with the fractions (e.g.: 7.42)
63
+ # @option options [String] tags tags for the video; multiple tags should
64
+ # be comma-separated
65
+ # @option options [Integer] thumbnail_index index of the image in the
66
+ # thumbnail strip to use as a video thumbnail; thumbnail index starts
67
+ # from 1
68
+ # @option options [String] md5 thumbnail file MD5 message digest
69
+ # @option options [Integer] size thumbnail file size
70
+ #
71
+ # @return [BOTR::VideoThumbnail] this video thumbnail object with an
72
+ # optional upload link
46
73
  def update(**options)
47
74
  json = put_request(options.merge(:video_key => @key))
48
75
  res = JSON.parse(json.body)
@@ -1,14 +1,43 @@
1
1
  module BOTR
2
2
 
3
+ # The BOTR::VideoView class contains calls for requesting video views
4
+ # statistics.
5
+ #
6
+ # A video view is counted every time:
7
+ #
8
+ # The video starts playing in one of your players.
9
+ # The video starts downloading from our content server.
10
+ # When a user scrubs through the video in a player or restarts the video, no
11
+ # additional view is counted.
3
12
  class VideoView < BOTR::Object
4
13
 
5
14
  class << self
6
15
 
7
16
  attr_reader :last_status
8
17
 
9
- def show(key, **options)
18
+ # Shows views statistics for a video.
19
+ #
20
+ # @param [String] video_key key of the video for which to show views
21
+ # statistics
22
+ # @params [Hash] options stats parameters
23
+ #
24
+ # @option options [Integer] start_date Unix timestamp of date
25
+ # from which videos views statistics should be start
26
+ # @option options [Integer] end_date Unix timestamp of date
27
+ # on which videos views statistics should be end
28
+ # @option options [String] aggregate specifies if returned video
29
+ # views statistics should be aggregate: true or false
30
+ # @option options [String] group_days specifies if returned video
31
+ # views statistics should be grouped by year and month
32
+ # @option options [String] include_empty_days specifies if video
33
+ # views statistics should include days for which there is no
34
+ # statistics available: true or false
35
+ #
36
+ # @return [BOTR::VideoView] a new object with the statistics for the
37
+ # video referenced by the video_key
38
+ def show(video_key, **options)
10
39
  json = get_request(options.merge(:method => 'show',
11
- :video_key => key))
40
+ :video_key => video_key))
12
41
  res = JSON.parse(json.body)
13
42
 
14
43
  if json.status == 200
@@ -22,6 +51,38 @@ module BOTR
22
51
 
23
52
  alias :find :show
24
53
 
54
+ # List views statistics for a video.
55
+ #
56
+ # @params [Hash] options stats parameters
57
+ #
58
+ # @option options [Integer] start_date Unix timestamp of date
59
+ # from which video views statistics should be start
60
+ # @option options [Integer] end_date Unix timestamp of date
61
+ # on which video views statistics should be end
62
+ # @option options [String] list_by specifies video views statistics
63
+ # listing type: "video" or "day"
64
+ # @option options [String] order_by specifies parameters by which
65
+ # returned result should be ordered; ":asc" and ":desc" can be
66
+ # appended accordingly
67
+ # @option options [String] search case-insensitive search in the
68
+ # author, description, link, md5, tags, title, video_key fields and
69
+ # custom fields
70
+ # @option options [Integer] result_limit specifies maximum number
71
+ # of videos to return: default is 50 and maximum result limit is 1000
72
+ # @option options [Integer] result_offset specifies how many videos
73
+ # should be skipped at the beginning of the result set
74
+ # @option options [String] aggregate specifies if returned video
75
+ # views statistics should be aggregate: true or false
76
+ # @option options [String] group_days specifies if returned video
77
+ # views statistics should be grouped by year and month
78
+ # @option options [String] include_empty_days specifies if video
79
+ # views statistics should include days for which there is no
80
+ # statistics available: true or false
81
+ # @option options [String] statuses_filter list only videos with the
82
+ # specified statuses: "active", "deleted"
83
+ #
84
+ # @return [Array] a list of objects with the statistics of the
85
+ # all videos matching the search criteria
25
86
  def list(**options)
26
87
  json = get_request(options.merge(:method => 'list'))
27
88
  res = JSON.parse(json.body)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: botr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - bertrandk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-11 00:00:00.000000000 Z
11
+ date: 2013-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -85,6 +85,7 @@ files:
85
85
  - botr.watchr
86
86
  - certs/cacert.pem
87
87
  - lib/botr.rb
88
+ - lib/botr/accounts/account_usage.rb
88
89
  - lib/botr/api/api.rb
89
90
  - lib/botr/api/authentication.rb
90
91
  - lib/botr/channels/channel.rb