botr 0.1.0 → 0.1.1

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 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