kaltura-ruby-client 1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README +20 -0
- data/Rakefile +19 -0
- data/agpl.txt +674 -0
- data/kaltura.yml +7 -0
- data/lib/kaltura.rb +31 -0
- data/lib/kaltura_client.rb +14450 -0
- data/lib/kaltura_client_base.rb +432 -0
- data/lib/kaltura_plugins/kaltura_abc_screeners_watermark_access_control_client_plugin.rb +37 -0
- data/lib/kaltura_plugins/kaltura_ad_cue_point_client_plugin.rb +108 -0
- data/lib/kaltura_plugins/kaltura_annotation_client_plugin.rb +237 -0
- data/lib/kaltura_plugins/kaltura_aspera_client_plugin.rb +61 -0
- data/lib/kaltura_plugins/kaltura_attachment_client_plugin.rb +227 -0
- data/lib/kaltura_plugins/kaltura_audit_client_plugin.rb +349 -0
- data/lib/kaltura_plugins/kaltura_bulk_upload_client_plugin.rb +109 -0
- data/lib/kaltura_plugins/kaltura_bulk_upload_csv_client_plugin.rb +55 -0
- data/lib/kaltura_plugins/kaltura_bulk_upload_filter_client_plugin.rb +46 -0
- data/lib/kaltura_plugins/kaltura_bulk_upload_xml_client_plugin.rb +40 -0
- data/lib/kaltura_plugins/kaltura_caption_client_plugin.rb +406 -0
- data/lib/kaltura_plugins/kaltura_caption_search_client_plugin.rb +138 -0
- data/lib/kaltura_plugins/kaltura_code_cue_point_client_plugin.rb +97 -0
- data/lib/kaltura_plugins/kaltura_content_distribution_client_plugin.rb +1717 -0
- data/lib/kaltura_plugins/kaltura_cue_point_client_plugin.rb +290 -0
- data/lib/kaltura_plugins/kaltura_document_client_plugin.rb +522 -0
- data/lib/kaltura_plugins/kaltura_drm_client_plugin.rb +204 -0
- data/lib/kaltura_plugins/kaltura_drop_folder_client_plugin.rb +810 -0
- data/lib/kaltura_plugins/kaltura_drop_folder_xml_bulk_upload_client_plugin.rb +39 -0
- data/lib/kaltura_plugins/kaltura_email_notification_client_plugin.rb +276 -0
- data/lib/kaltura_plugins/kaltura_event_notification_client_plugin.rb +405 -0
- data/lib/kaltura_plugins/kaltura_external_media_client_plugin.rb +203 -0
- data/lib/kaltura_plugins/kaltura_file_sync_client_plugin.rb +151 -0
- data/lib/kaltura_plugins/kaltura_http_notification_client_plugin.rb +309 -0
- data/lib/kaltura_plugins/kaltura_kontiki_client_plugin.rb +72 -0
- data/lib/kaltura_plugins/kaltura_like_client_plugin.rb +82 -0
- data/lib/kaltura_plugins/kaltura_metadata_client_plugin.rb +788 -0
- data/lib/kaltura_plugins/kaltura_multi_centers_client_plugin.rb +45 -0
- data/lib/kaltura_plugins/kaltura_short_link_client_plugin.rb +231 -0
- data/lib/kaltura_plugins/kaltura_tag_search_client_plugin.rb +145 -0
- data/lib/kaltura_plugins/kaltura_var_console_client_plugin.rb +238 -0
- data/lib/kaltura_plugins/kaltura_velocix_client_plugin.rb +40 -0
- data/lib/kaltura_plugins/kaltura_virus_scan_client_plugin.rb +263 -0
- data/lib/kaltura_plugins/kaltura_webex_drop_folder_client_plugin.rb +121 -0
- data/lib/kaltura_plugins/kaltura_widevine_client_plugin.rb +195 -0
- data/license.txt +674 -0
- data/test/access_control_service_test.rb +75 -0
- data/test/base_entry_service_test.rb +267 -0
- data/test/configuration_test.rb +178 -0
- data/test/cue_point_service_test.rb +67 -0
- data/test/data_service_test.rb +76 -0
- data/test/document_service_test.rb +41 -0
- data/test/media/test.mov +0 -0
- data/test/media/test.pdf +0 -0
- data/test/media/test.png +0 -0
- data/test/media/test.swf +0 -0
- data/test/media/test.wmv +0 -0
- data/test/media_service_test.rb +294 -0
- data/test/metadata_profile_service_test.rb +63 -0
- data/test/test_helper.rb +59 -0
- metadata +127 -0
@@ -0,0 +1,290 @@
|
|
1
|
+
# ===================================================================================================
|
2
|
+
# _ __ _ _
|
3
|
+
# | |/ /__ _| | |_ _ _ _ _ __ _
|
4
|
+
# | ' </ _` | | _| || | '_/ _` |
|
5
|
+
# |_|\_\__,_|_|\__|\_,_|_| \__,_|
|
6
|
+
#
|
7
|
+
# This file is part of the Kaltura Collaborative Media Suite which allows users
|
8
|
+
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
|
+
# text.
|
10
|
+
#
|
11
|
+
# Copyright (C) 2006-2011 Kaltura Inc.
|
12
|
+
#
|
13
|
+
# This program is free software: you can redistribute it and/or modify
|
14
|
+
# it under the terms of the GNU Affero General Public License as
|
15
|
+
# published by the Free Software Foundation, either version 3 of the
|
16
|
+
# License, or (at your option) any later version.
|
17
|
+
#
|
18
|
+
# This program is distributed in the hope that it will be useful,
|
19
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
20
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
21
|
+
# GNU Affero General Public License for more details.
|
22
|
+
#
|
23
|
+
# You should have received a copy of the GNU Affero General Public License
|
24
|
+
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
|
25
|
+
#
|
26
|
+
# @ignore
|
27
|
+
# ===================================================================================================
|
28
|
+
require 'kaltura_client.rb'
|
29
|
+
|
30
|
+
module Kaltura
|
31
|
+
|
32
|
+
class KalturaCuePointStatus
|
33
|
+
READY = 1
|
34
|
+
DELETED = 2
|
35
|
+
end
|
36
|
+
|
37
|
+
class KalturaCuePointOrderBy
|
38
|
+
CREATED_AT_ASC = "+createdAt"
|
39
|
+
PARTNER_SORT_VALUE_ASC = "+partnerSortValue"
|
40
|
+
START_TIME_ASC = "+startTime"
|
41
|
+
UPDATED_AT_ASC = "+updatedAt"
|
42
|
+
CREATED_AT_DESC = "-createdAt"
|
43
|
+
PARTNER_SORT_VALUE_DESC = "-partnerSortValue"
|
44
|
+
START_TIME_DESC = "-startTime"
|
45
|
+
UPDATED_AT_DESC = "-updatedAt"
|
46
|
+
end
|
47
|
+
|
48
|
+
class KalturaCuePointType
|
49
|
+
AD = "adCuePoint.Ad"
|
50
|
+
ANNOTATION = "annotation.Annotation"
|
51
|
+
CODE = "codeCuePoint.Code"
|
52
|
+
end
|
53
|
+
|
54
|
+
class KalturaCuePoint < KalturaObjectBase
|
55
|
+
attr_accessor :id
|
56
|
+
attr_accessor :cue_point_type
|
57
|
+
attr_accessor :status
|
58
|
+
attr_accessor :entry_id
|
59
|
+
attr_accessor :partner_id
|
60
|
+
attr_accessor :created_at
|
61
|
+
attr_accessor :updated_at
|
62
|
+
attr_accessor :tags
|
63
|
+
# Start time in milliseconds
|
64
|
+
#
|
65
|
+
attr_accessor :start_time
|
66
|
+
attr_accessor :user_id
|
67
|
+
attr_accessor :partner_data
|
68
|
+
attr_accessor :partner_sort_value
|
69
|
+
attr_accessor :force_stop
|
70
|
+
attr_accessor :thumb_offset
|
71
|
+
attr_accessor :system_name
|
72
|
+
|
73
|
+
def status=(val)
|
74
|
+
@status = val.to_i
|
75
|
+
end
|
76
|
+
def partner_id=(val)
|
77
|
+
@partner_id = val.to_i
|
78
|
+
end
|
79
|
+
def created_at=(val)
|
80
|
+
@created_at = val.to_i
|
81
|
+
end
|
82
|
+
def updated_at=(val)
|
83
|
+
@updated_at = val.to_i
|
84
|
+
end
|
85
|
+
def start_time=(val)
|
86
|
+
@start_time = val.to_i
|
87
|
+
end
|
88
|
+
def partner_sort_value=(val)
|
89
|
+
@partner_sort_value = val.to_i
|
90
|
+
end
|
91
|
+
def force_stop=(val)
|
92
|
+
@force_stop = val.to_i
|
93
|
+
end
|
94
|
+
def thumb_offset=(val)
|
95
|
+
@thumb_offset = val.to_i
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
class KalturaCuePointListResponse < KalturaObjectBase
|
100
|
+
attr_accessor :objects
|
101
|
+
attr_accessor :total_count
|
102
|
+
|
103
|
+
def total_count=(val)
|
104
|
+
@total_count = val.to_i
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
class KalturaCuePointBaseFilter < KalturaFilter
|
109
|
+
attr_accessor :id_equal
|
110
|
+
attr_accessor :id_in
|
111
|
+
attr_accessor :cue_point_type_equal
|
112
|
+
attr_accessor :cue_point_type_in
|
113
|
+
attr_accessor :status_equal
|
114
|
+
attr_accessor :status_in
|
115
|
+
attr_accessor :entry_id_equal
|
116
|
+
attr_accessor :entry_id_in
|
117
|
+
attr_accessor :created_at_greater_than_or_equal
|
118
|
+
attr_accessor :created_at_less_than_or_equal
|
119
|
+
attr_accessor :updated_at_greater_than_or_equal
|
120
|
+
attr_accessor :updated_at_less_than_or_equal
|
121
|
+
attr_accessor :tags_like
|
122
|
+
attr_accessor :tags_multi_like_or
|
123
|
+
attr_accessor :tags_multi_like_and
|
124
|
+
attr_accessor :start_time_greater_than_or_equal
|
125
|
+
attr_accessor :start_time_less_than_or_equal
|
126
|
+
attr_accessor :user_id_equal
|
127
|
+
attr_accessor :user_id_in
|
128
|
+
attr_accessor :partner_sort_value_equal
|
129
|
+
attr_accessor :partner_sort_value_in
|
130
|
+
attr_accessor :partner_sort_value_greater_than_or_equal
|
131
|
+
attr_accessor :partner_sort_value_less_than_or_equal
|
132
|
+
attr_accessor :force_stop_equal
|
133
|
+
attr_accessor :system_name_equal
|
134
|
+
attr_accessor :system_name_in
|
135
|
+
|
136
|
+
def status_equal=(val)
|
137
|
+
@status_equal = val.to_i
|
138
|
+
end
|
139
|
+
def created_at_greater_than_or_equal=(val)
|
140
|
+
@created_at_greater_than_or_equal = val.to_i
|
141
|
+
end
|
142
|
+
def created_at_less_than_or_equal=(val)
|
143
|
+
@created_at_less_than_or_equal = val.to_i
|
144
|
+
end
|
145
|
+
def updated_at_greater_than_or_equal=(val)
|
146
|
+
@updated_at_greater_than_or_equal = val.to_i
|
147
|
+
end
|
148
|
+
def updated_at_less_than_or_equal=(val)
|
149
|
+
@updated_at_less_than_or_equal = val.to_i
|
150
|
+
end
|
151
|
+
def start_time_greater_than_or_equal=(val)
|
152
|
+
@start_time_greater_than_or_equal = val.to_i
|
153
|
+
end
|
154
|
+
def start_time_less_than_or_equal=(val)
|
155
|
+
@start_time_less_than_or_equal = val.to_i
|
156
|
+
end
|
157
|
+
def partner_sort_value_equal=(val)
|
158
|
+
@partner_sort_value_equal = val.to_i
|
159
|
+
end
|
160
|
+
def partner_sort_value_greater_than_or_equal=(val)
|
161
|
+
@partner_sort_value_greater_than_or_equal = val.to_i
|
162
|
+
end
|
163
|
+
def partner_sort_value_less_than_or_equal=(val)
|
164
|
+
@partner_sort_value_less_than_or_equal = val.to_i
|
165
|
+
end
|
166
|
+
def force_stop_equal=(val)
|
167
|
+
@force_stop_equal = val.to_i
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
class KalturaCuePointFilter < KalturaCuePointBaseFilter
|
172
|
+
|
173
|
+
end
|
174
|
+
|
175
|
+
|
176
|
+
# Cue Point service
|
177
|
+
#
|
178
|
+
class KalturaCuePointService < KalturaServiceBase
|
179
|
+
def initialize(client)
|
180
|
+
super(client)
|
181
|
+
end
|
182
|
+
|
183
|
+
# Allows you to add an cue point object associated with an entry
|
184
|
+
#
|
185
|
+
def add(cue_point)
|
186
|
+
kparams = {}
|
187
|
+
client.add_param(kparams, 'cuePoint', cue_point);
|
188
|
+
client.queue_service_action_call('cuepoint_cuepoint', 'add', kparams);
|
189
|
+
if (client.is_multirequest)
|
190
|
+
return nil;
|
191
|
+
end
|
192
|
+
return client.do_queue();
|
193
|
+
end
|
194
|
+
|
195
|
+
# Allows you to add multiple cue points objects by uploading XML that contains multiple cue point definitions
|
196
|
+
#
|
197
|
+
def add_from_bulk(file_data)
|
198
|
+
kparams = {}
|
199
|
+
client.add_param(kparams, 'fileData', file_data);
|
200
|
+
client.queue_service_action_call('cuepoint_cuepoint', 'addFromBulk', kparams);
|
201
|
+
if (client.is_multirequest)
|
202
|
+
return nil;
|
203
|
+
end
|
204
|
+
return client.do_queue();
|
205
|
+
end
|
206
|
+
|
207
|
+
# Download multiple cue points objects as XML definitions
|
208
|
+
#
|
209
|
+
def serve_bulk(filter=KalturaNotImplemented, pager=KalturaNotImplemented)
|
210
|
+
kparams = {}
|
211
|
+
client.add_param(kparams, 'filter', filter);
|
212
|
+
client.add_param(kparams, 'pager', pager);
|
213
|
+
client.queue_service_action_call('cuepoint_cuepoint', 'serveBulk', kparams);
|
214
|
+
return client.get_serve_url();
|
215
|
+
end
|
216
|
+
|
217
|
+
# Retrieve an CuePoint object by id
|
218
|
+
#
|
219
|
+
def get(id)
|
220
|
+
kparams = {}
|
221
|
+
client.add_param(kparams, 'id', id);
|
222
|
+
client.queue_service_action_call('cuepoint_cuepoint', 'get', kparams);
|
223
|
+
if (client.is_multirequest)
|
224
|
+
return nil;
|
225
|
+
end
|
226
|
+
return client.do_queue();
|
227
|
+
end
|
228
|
+
|
229
|
+
# List cue point objects by filter and pager
|
230
|
+
#
|
231
|
+
def list(filter=KalturaNotImplemented, pager=KalturaNotImplemented)
|
232
|
+
kparams = {}
|
233
|
+
client.add_param(kparams, 'filter', filter);
|
234
|
+
client.add_param(kparams, 'pager', pager);
|
235
|
+
client.queue_service_action_call('cuepoint_cuepoint', 'list', kparams);
|
236
|
+
if (client.is_multirequest)
|
237
|
+
return nil;
|
238
|
+
end
|
239
|
+
return client.do_queue();
|
240
|
+
end
|
241
|
+
|
242
|
+
# count cue point objects by filter
|
243
|
+
#
|
244
|
+
def count(filter=KalturaNotImplemented)
|
245
|
+
kparams = {}
|
246
|
+
client.add_param(kparams, 'filter', filter);
|
247
|
+
client.queue_service_action_call('cuepoint_cuepoint', 'count', kparams);
|
248
|
+
if (client.is_multirequest)
|
249
|
+
return nil;
|
250
|
+
end
|
251
|
+
return client.do_queue();
|
252
|
+
end
|
253
|
+
|
254
|
+
# Update cue point by id
|
255
|
+
#
|
256
|
+
def update(id, cue_point)
|
257
|
+
kparams = {}
|
258
|
+
client.add_param(kparams, 'id', id);
|
259
|
+
client.add_param(kparams, 'cuePoint', cue_point);
|
260
|
+
client.queue_service_action_call('cuepoint_cuepoint', 'update', kparams);
|
261
|
+
if (client.is_multirequest)
|
262
|
+
return nil;
|
263
|
+
end
|
264
|
+
return client.do_queue();
|
265
|
+
end
|
266
|
+
|
267
|
+
# delete cue point by id, and delete all children cue points
|
268
|
+
#
|
269
|
+
def delete(id)
|
270
|
+
kparams = {}
|
271
|
+
client.add_param(kparams, 'id', id);
|
272
|
+
client.queue_service_action_call('cuepoint_cuepoint', 'delete', kparams);
|
273
|
+
if (client.is_multirequest)
|
274
|
+
return nil;
|
275
|
+
end
|
276
|
+
return client.do_queue();
|
277
|
+
end
|
278
|
+
end
|
279
|
+
|
280
|
+
class KalturaClient < KalturaClientBase
|
281
|
+
attr_reader :cue_point_service
|
282
|
+
def cue_point_service
|
283
|
+
if (@cue_point_service == nil)
|
284
|
+
@cue_point_service = KalturaCuePointService.new(self)
|
285
|
+
end
|
286
|
+
return @cue_point_service
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
end
|
@@ -0,0 +1,522 @@
|
|
1
|
+
# ===================================================================================================
|
2
|
+
# _ __ _ _
|
3
|
+
# | |/ /__ _| | |_ _ _ _ _ __ _
|
4
|
+
# | ' </ _` | | _| || | '_/ _` |
|
5
|
+
# |_|\_\__,_|_|\__|\_,_|_| \__,_|
|
6
|
+
#
|
7
|
+
# This file is part of the Kaltura Collaborative Media Suite which allows users
|
8
|
+
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
|
+
# text.
|
10
|
+
#
|
11
|
+
# Copyright (C) 2006-2011 Kaltura Inc.
|
12
|
+
#
|
13
|
+
# This program is free software: you can redistribute it and/or modify
|
14
|
+
# it under the terms of the GNU Affero General Public License as
|
15
|
+
# published by the Free Software Foundation, either version 3 of the
|
16
|
+
# License, or (at your option) any later version.
|
17
|
+
#
|
18
|
+
# This program is distributed in the hope that it will be useful,
|
19
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
20
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
21
|
+
# GNU Affero General Public License for more details.
|
22
|
+
#
|
23
|
+
# You should have received a copy of the GNU Affero General Public License
|
24
|
+
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
|
25
|
+
#
|
26
|
+
# @ignore
|
27
|
+
# ===================================================================================================
|
28
|
+
require 'kaltura_client.rb'
|
29
|
+
|
30
|
+
module Kaltura
|
31
|
+
|
32
|
+
class KalturaDocumentType
|
33
|
+
DOCUMENT = 11
|
34
|
+
SWF = 12
|
35
|
+
PDF = 13
|
36
|
+
end
|
37
|
+
|
38
|
+
class KalturaDocumentEntryOrderBy
|
39
|
+
CREATED_AT_ASC = "+createdAt"
|
40
|
+
END_DATE_ASC = "+endDate"
|
41
|
+
MODERATION_COUNT_ASC = "+moderationCount"
|
42
|
+
NAME_ASC = "+name"
|
43
|
+
PARTNER_SORT_VALUE_ASC = "+partnerSortValue"
|
44
|
+
RANK_ASC = "+rank"
|
45
|
+
RECENT_ASC = "+recent"
|
46
|
+
START_DATE_ASC = "+startDate"
|
47
|
+
TOTAL_RANK_ASC = "+totalRank"
|
48
|
+
UPDATED_AT_ASC = "+updatedAt"
|
49
|
+
WEIGHT_ASC = "+weight"
|
50
|
+
CREATED_AT_DESC = "-createdAt"
|
51
|
+
END_DATE_DESC = "-endDate"
|
52
|
+
MODERATION_COUNT_DESC = "-moderationCount"
|
53
|
+
NAME_DESC = "-name"
|
54
|
+
PARTNER_SORT_VALUE_DESC = "-partnerSortValue"
|
55
|
+
RANK_DESC = "-rank"
|
56
|
+
RECENT_DESC = "-recent"
|
57
|
+
START_DATE_DESC = "-startDate"
|
58
|
+
TOTAL_RANK_DESC = "-totalRank"
|
59
|
+
UPDATED_AT_DESC = "-updatedAt"
|
60
|
+
WEIGHT_DESC = "-weight"
|
61
|
+
end
|
62
|
+
|
63
|
+
class KalturaDocumentFlavorParamsOrderBy
|
64
|
+
end
|
65
|
+
|
66
|
+
class KalturaDocumentFlavorParamsOutputOrderBy
|
67
|
+
end
|
68
|
+
|
69
|
+
class KalturaImageFlavorParamsOrderBy
|
70
|
+
end
|
71
|
+
|
72
|
+
class KalturaImageFlavorParamsOutputOrderBy
|
73
|
+
end
|
74
|
+
|
75
|
+
class KalturaPdfFlavorParamsOrderBy
|
76
|
+
end
|
77
|
+
|
78
|
+
class KalturaPdfFlavorParamsOutputOrderBy
|
79
|
+
end
|
80
|
+
|
81
|
+
class KalturaSwfFlavorParamsOrderBy
|
82
|
+
end
|
83
|
+
|
84
|
+
class KalturaSwfFlavorParamsOutputOrderBy
|
85
|
+
end
|
86
|
+
|
87
|
+
class KalturaDocumentEntry < KalturaBaseEntry
|
88
|
+
# The type of the document
|
89
|
+
#
|
90
|
+
attr_accessor :document_type
|
91
|
+
# Comma separated asset params ids that exists for this media entry
|
92
|
+
#
|
93
|
+
attr_accessor :asset_params_ids
|
94
|
+
|
95
|
+
def document_type=(val)
|
96
|
+
@document_type = val.to_i
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
class KalturaDocumentListResponse < KalturaObjectBase
|
101
|
+
attr_accessor :objects
|
102
|
+
attr_accessor :total_count
|
103
|
+
|
104
|
+
def total_count=(val)
|
105
|
+
@total_count = val.to_i
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
class KalturaDocumentFlavorParams < KalturaFlavorParams
|
110
|
+
|
111
|
+
end
|
112
|
+
|
113
|
+
class KalturaImageFlavorParams < KalturaFlavorParams
|
114
|
+
attr_accessor :density_width
|
115
|
+
attr_accessor :density_height
|
116
|
+
attr_accessor :size_width
|
117
|
+
attr_accessor :size_height
|
118
|
+
attr_accessor :depth
|
119
|
+
|
120
|
+
def density_width=(val)
|
121
|
+
@density_width = val.to_i
|
122
|
+
end
|
123
|
+
def density_height=(val)
|
124
|
+
@density_height = val.to_i
|
125
|
+
end
|
126
|
+
def size_width=(val)
|
127
|
+
@size_width = val.to_i
|
128
|
+
end
|
129
|
+
def size_height=(val)
|
130
|
+
@size_height = val.to_i
|
131
|
+
end
|
132
|
+
def depth=(val)
|
133
|
+
@depth = val.to_i
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
class KalturaPdfFlavorParams < KalturaFlavorParams
|
138
|
+
attr_accessor :readonly
|
139
|
+
|
140
|
+
def readonly=(val)
|
141
|
+
@readonly = to_b(val)
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
class KalturaSwfFlavorParams < KalturaFlavorParams
|
146
|
+
attr_accessor :flash_version
|
147
|
+
attr_accessor :poly2bitmap
|
148
|
+
|
149
|
+
def flash_version=(val)
|
150
|
+
@flash_version = val.to_i
|
151
|
+
end
|
152
|
+
def poly2bitmap=(val)
|
153
|
+
@poly2bitmap = to_b(val)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
class KalturaDocumentEntryBaseFilter < KalturaBaseEntryFilter
|
158
|
+
attr_accessor :document_type_equal
|
159
|
+
attr_accessor :document_type_in
|
160
|
+
attr_accessor :asset_params_ids_match_or
|
161
|
+
attr_accessor :asset_params_ids_match_and
|
162
|
+
|
163
|
+
def document_type_equal=(val)
|
164
|
+
@document_type_equal = val.to_i
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
class KalturaDocumentFlavorParamsOutput < KalturaFlavorParamsOutput
|
169
|
+
|
170
|
+
end
|
171
|
+
|
172
|
+
class KalturaImageFlavorParamsOutput < KalturaFlavorParamsOutput
|
173
|
+
attr_accessor :density_width
|
174
|
+
attr_accessor :density_height
|
175
|
+
attr_accessor :size_width
|
176
|
+
attr_accessor :size_height
|
177
|
+
attr_accessor :depth
|
178
|
+
|
179
|
+
def density_width=(val)
|
180
|
+
@density_width = val.to_i
|
181
|
+
end
|
182
|
+
def density_height=(val)
|
183
|
+
@density_height = val.to_i
|
184
|
+
end
|
185
|
+
def size_width=(val)
|
186
|
+
@size_width = val.to_i
|
187
|
+
end
|
188
|
+
def size_height=(val)
|
189
|
+
@size_height = val.to_i
|
190
|
+
end
|
191
|
+
def depth=(val)
|
192
|
+
@depth = val.to_i
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
class KalturaPdfFlavorParamsOutput < KalturaFlavorParamsOutput
|
197
|
+
attr_accessor :readonly
|
198
|
+
|
199
|
+
def readonly=(val)
|
200
|
+
@readonly = to_b(val)
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
class KalturaSwfFlavorParamsOutput < KalturaFlavorParamsOutput
|
205
|
+
attr_accessor :flash_version
|
206
|
+
attr_accessor :poly2bitmap
|
207
|
+
|
208
|
+
def flash_version=(val)
|
209
|
+
@flash_version = val.to_i
|
210
|
+
end
|
211
|
+
def poly2bitmap=(val)
|
212
|
+
@poly2bitmap = to_b(val)
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
class KalturaDocumentEntryFilter < KalturaDocumentEntryBaseFilter
|
217
|
+
|
218
|
+
end
|
219
|
+
|
220
|
+
class KalturaDocumentFlavorParamsBaseFilter < KalturaFlavorParamsFilter
|
221
|
+
|
222
|
+
end
|
223
|
+
|
224
|
+
class KalturaImageFlavorParamsBaseFilter < KalturaFlavorParamsFilter
|
225
|
+
|
226
|
+
end
|
227
|
+
|
228
|
+
class KalturaPdfFlavorParamsBaseFilter < KalturaFlavorParamsFilter
|
229
|
+
|
230
|
+
end
|
231
|
+
|
232
|
+
class KalturaSwfFlavorParamsBaseFilter < KalturaFlavorParamsFilter
|
233
|
+
|
234
|
+
end
|
235
|
+
|
236
|
+
class KalturaDocumentFlavorParamsFilter < KalturaDocumentFlavorParamsBaseFilter
|
237
|
+
|
238
|
+
end
|
239
|
+
|
240
|
+
class KalturaImageFlavorParamsFilter < KalturaImageFlavorParamsBaseFilter
|
241
|
+
|
242
|
+
end
|
243
|
+
|
244
|
+
class KalturaPdfFlavorParamsFilter < KalturaPdfFlavorParamsBaseFilter
|
245
|
+
|
246
|
+
end
|
247
|
+
|
248
|
+
class KalturaSwfFlavorParamsFilter < KalturaSwfFlavorParamsBaseFilter
|
249
|
+
|
250
|
+
end
|
251
|
+
|
252
|
+
class KalturaDocumentFlavorParamsOutputBaseFilter < KalturaFlavorParamsOutputFilter
|
253
|
+
|
254
|
+
end
|
255
|
+
|
256
|
+
class KalturaImageFlavorParamsOutputBaseFilter < KalturaFlavorParamsOutputFilter
|
257
|
+
|
258
|
+
end
|
259
|
+
|
260
|
+
class KalturaPdfFlavorParamsOutputBaseFilter < KalturaFlavorParamsOutputFilter
|
261
|
+
|
262
|
+
end
|
263
|
+
|
264
|
+
class KalturaSwfFlavorParamsOutputBaseFilter < KalturaFlavorParamsOutputFilter
|
265
|
+
|
266
|
+
end
|
267
|
+
|
268
|
+
class KalturaDocumentFlavorParamsOutputFilter < KalturaDocumentFlavorParamsOutputBaseFilter
|
269
|
+
|
270
|
+
end
|
271
|
+
|
272
|
+
class KalturaImageFlavorParamsOutputFilter < KalturaImageFlavorParamsOutputBaseFilter
|
273
|
+
|
274
|
+
end
|
275
|
+
|
276
|
+
class KalturaPdfFlavorParamsOutputFilter < KalturaPdfFlavorParamsOutputBaseFilter
|
277
|
+
|
278
|
+
end
|
279
|
+
|
280
|
+
class KalturaSwfFlavorParamsOutputFilter < KalturaSwfFlavorParamsOutputBaseFilter
|
281
|
+
|
282
|
+
end
|
283
|
+
|
284
|
+
|
285
|
+
# Document service lets you upload and manage document files
|
286
|
+
#
|
287
|
+
class KalturaDocumentsService < KalturaServiceBase
|
288
|
+
def initialize(client)
|
289
|
+
super(client)
|
290
|
+
end
|
291
|
+
|
292
|
+
# Add new document entry after the specific document file was uploaded and the upload token id exists
|
293
|
+
#
|
294
|
+
def add_from_uploaded_file(document_entry, upload_token_id)
|
295
|
+
kparams = {}
|
296
|
+
# Document entry metadata
|
297
|
+
client.add_param(kparams, 'documentEntry', document_entry);
|
298
|
+
# Upload token id
|
299
|
+
client.add_param(kparams, 'uploadTokenId', upload_token_id);
|
300
|
+
client.queue_service_action_call('document_documents', 'addFromUploadedFile', kparams);
|
301
|
+
if (client.is_multirequest)
|
302
|
+
return nil;
|
303
|
+
end
|
304
|
+
return client.do_queue();
|
305
|
+
end
|
306
|
+
|
307
|
+
# Copy entry into new entry
|
308
|
+
#
|
309
|
+
def add_from_entry(source_entry_id, document_entry=KalturaNotImplemented, source_flavor_params_id=KalturaNotImplemented)
|
310
|
+
kparams = {}
|
311
|
+
# Document entry id to copy from
|
312
|
+
client.add_param(kparams, 'sourceEntryId', source_entry_id);
|
313
|
+
# Document entry metadata
|
314
|
+
client.add_param(kparams, 'documentEntry', document_entry);
|
315
|
+
# The flavor to be used as the new entry source, source flavor will be used if not specified
|
316
|
+
client.add_param(kparams, 'sourceFlavorParamsId', source_flavor_params_id);
|
317
|
+
client.queue_service_action_call('document_documents', 'addFromEntry', kparams);
|
318
|
+
if (client.is_multirequest)
|
319
|
+
return nil;
|
320
|
+
end
|
321
|
+
return client.do_queue();
|
322
|
+
end
|
323
|
+
|
324
|
+
# Copy flavor asset into new entry
|
325
|
+
#
|
326
|
+
def add_from_flavor_asset(source_flavor_asset_id, document_entry=KalturaNotImplemented)
|
327
|
+
kparams = {}
|
328
|
+
# Flavor asset id to be used as the new entry source
|
329
|
+
client.add_param(kparams, 'sourceFlavorAssetId', source_flavor_asset_id);
|
330
|
+
# Document entry metadata
|
331
|
+
client.add_param(kparams, 'documentEntry', document_entry);
|
332
|
+
client.queue_service_action_call('document_documents', 'addFromFlavorAsset', kparams);
|
333
|
+
if (client.is_multirequest)
|
334
|
+
return nil;
|
335
|
+
end
|
336
|
+
return client.do_queue();
|
337
|
+
end
|
338
|
+
|
339
|
+
# Convert entry
|
340
|
+
#
|
341
|
+
def convert(entry_id, conversion_profile_id=KalturaNotImplemented, dynamic_conversion_attributes=KalturaNotImplemented)
|
342
|
+
kparams = {}
|
343
|
+
# Document entry id
|
344
|
+
client.add_param(kparams, 'entryId', entry_id);
|
345
|
+
client.add_param(kparams, 'conversionProfileId', conversion_profile_id);
|
346
|
+
dynamicConversionAttributes.each do |obj|
|
347
|
+
client.add_param(kparams, 'dynamicConversionAttributes', obj);
|
348
|
+
end
|
349
|
+
client.queue_service_action_call('document_documents', 'convert', kparams);
|
350
|
+
if (client.is_multirequest)
|
351
|
+
return nil;
|
352
|
+
end
|
353
|
+
return client.do_queue();
|
354
|
+
end
|
355
|
+
|
356
|
+
# Get document entry by ID.
|
357
|
+
#
|
358
|
+
def get(entry_id, version=-1)
|
359
|
+
kparams = {}
|
360
|
+
# Document entry id
|
361
|
+
client.add_param(kparams, 'entryId', entry_id);
|
362
|
+
# Desired version of the data
|
363
|
+
client.add_param(kparams, 'version', version);
|
364
|
+
client.queue_service_action_call('document_documents', 'get', kparams);
|
365
|
+
if (client.is_multirequest)
|
366
|
+
return nil;
|
367
|
+
end
|
368
|
+
return client.do_queue();
|
369
|
+
end
|
370
|
+
|
371
|
+
# Update document entry. Only the properties that were set will be updated.
|
372
|
+
#
|
373
|
+
def update(entry_id, document_entry)
|
374
|
+
kparams = {}
|
375
|
+
# Document entry id to update
|
376
|
+
client.add_param(kparams, 'entryId', entry_id);
|
377
|
+
# Document entry metadata to update
|
378
|
+
client.add_param(kparams, 'documentEntry', document_entry);
|
379
|
+
client.queue_service_action_call('document_documents', 'update', kparams);
|
380
|
+
if (client.is_multirequest)
|
381
|
+
return nil;
|
382
|
+
end
|
383
|
+
return client.do_queue();
|
384
|
+
end
|
385
|
+
|
386
|
+
# Delete a document entry.
|
387
|
+
#
|
388
|
+
def delete(entry_id)
|
389
|
+
kparams = {}
|
390
|
+
# Document entry id to delete
|
391
|
+
client.add_param(kparams, 'entryId', entry_id);
|
392
|
+
client.queue_service_action_call('document_documents', 'delete', kparams);
|
393
|
+
if (client.is_multirequest)
|
394
|
+
return nil;
|
395
|
+
end
|
396
|
+
return client.do_queue();
|
397
|
+
end
|
398
|
+
|
399
|
+
# List document entries by filter with paging support.
|
400
|
+
#
|
401
|
+
def list(filter=KalturaNotImplemented, pager=KalturaNotImplemented)
|
402
|
+
kparams = {}
|
403
|
+
# Document entry filter
|
404
|
+
client.add_param(kparams, 'filter', filter);
|
405
|
+
# Pager
|
406
|
+
client.add_param(kparams, 'pager', pager);
|
407
|
+
client.queue_service_action_call('document_documents', 'list', kparams);
|
408
|
+
if (client.is_multirequest)
|
409
|
+
return nil;
|
410
|
+
end
|
411
|
+
return client.do_queue();
|
412
|
+
end
|
413
|
+
|
414
|
+
# Upload a document file to Kaltura, then the file can be used to create a document entry.
|
415
|
+
#
|
416
|
+
def upload(file_data)
|
417
|
+
kparams = {}
|
418
|
+
# The file data
|
419
|
+
client.add_param(kparams, 'fileData', file_data);
|
420
|
+
client.queue_service_action_call('document_documents', 'upload', kparams);
|
421
|
+
if (client.is_multirequest)
|
422
|
+
return nil;
|
423
|
+
end
|
424
|
+
return client.do_queue();
|
425
|
+
end
|
426
|
+
|
427
|
+
# This will queue a batch job for converting the document file to swf
|
428
|
+
# Returns the URL where the new swf will be available
|
429
|
+
#
|
430
|
+
def convert_ppt_to_swf(entry_id)
|
431
|
+
kparams = {}
|
432
|
+
client.add_param(kparams, 'entryId', entry_id);
|
433
|
+
client.queue_service_action_call('document_documents', 'convertPptToSwf', kparams);
|
434
|
+
if (client.is_multirequest)
|
435
|
+
return nil;
|
436
|
+
end
|
437
|
+
return client.do_queue();
|
438
|
+
end
|
439
|
+
|
440
|
+
# Serves the file content
|
441
|
+
#
|
442
|
+
def serve(entry_id, flavor_asset_id=KalturaNotImplemented, force_proxy=false)
|
443
|
+
kparams = {}
|
444
|
+
# Document entry id
|
445
|
+
client.add_param(kparams, 'entryId', entry_id);
|
446
|
+
# Flavor asset id
|
447
|
+
client.add_param(kparams, 'flavorAssetId', flavor_asset_id);
|
448
|
+
# force to get the content without redirect
|
449
|
+
client.add_param(kparams, 'forceProxy', force_proxy);
|
450
|
+
client.queue_service_action_call('document_documents', 'serve', kparams);
|
451
|
+
return client.get_serve_url();
|
452
|
+
end
|
453
|
+
|
454
|
+
# Serves the file content
|
455
|
+
#
|
456
|
+
def serve_by_flavor_params_id(entry_id, flavor_params_id=KalturaNotImplemented, force_proxy=false)
|
457
|
+
kparams = {}
|
458
|
+
# Document entry id
|
459
|
+
client.add_param(kparams, 'entryId', entry_id);
|
460
|
+
# Flavor params id
|
461
|
+
client.add_param(kparams, 'flavorParamsId', flavor_params_id);
|
462
|
+
# force to get the content without redirect
|
463
|
+
client.add_param(kparams, 'forceProxy', force_proxy);
|
464
|
+
client.queue_service_action_call('document_documents', 'serveByFlavorParamsId', kparams);
|
465
|
+
return client.get_serve_url();
|
466
|
+
end
|
467
|
+
|
468
|
+
# Replace content associated with the given document entry.
|
469
|
+
#
|
470
|
+
def update_content(entry_id, resource, conversion_profile_id=KalturaNotImplemented)
|
471
|
+
kparams = {}
|
472
|
+
# document entry id to update
|
473
|
+
client.add_param(kparams, 'entryId', entry_id);
|
474
|
+
# Resource to be used to replace entry doc content
|
475
|
+
client.add_param(kparams, 'resource', resource);
|
476
|
+
# The conversion profile id to be used on the entry
|
477
|
+
client.add_param(kparams, 'conversionProfileId', conversion_profile_id);
|
478
|
+
client.queue_service_action_call('document_documents', 'updateContent', kparams);
|
479
|
+
if (client.is_multirequest)
|
480
|
+
return nil;
|
481
|
+
end
|
482
|
+
return client.do_queue();
|
483
|
+
end
|
484
|
+
|
485
|
+
# Approves document replacement
|
486
|
+
#
|
487
|
+
def approve_replace(entry_id)
|
488
|
+
kparams = {}
|
489
|
+
# document entry id to replace
|
490
|
+
client.add_param(kparams, 'entryId', entry_id);
|
491
|
+
client.queue_service_action_call('document_documents', 'approveReplace', kparams);
|
492
|
+
if (client.is_multirequest)
|
493
|
+
return nil;
|
494
|
+
end
|
495
|
+
return client.do_queue();
|
496
|
+
end
|
497
|
+
|
498
|
+
# Cancels document replacement
|
499
|
+
#
|
500
|
+
def cancel_replace(entry_id)
|
501
|
+
kparams = {}
|
502
|
+
# Document entry id to cancel
|
503
|
+
client.add_param(kparams, 'entryId', entry_id);
|
504
|
+
client.queue_service_action_call('document_documents', 'cancelReplace', kparams);
|
505
|
+
if (client.is_multirequest)
|
506
|
+
return nil;
|
507
|
+
end
|
508
|
+
return client.do_queue();
|
509
|
+
end
|
510
|
+
end
|
511
|
+
|
512
|
+
class KalturaClient < KalturaClientBase
|
513
|
+
attr_reader :documents_service
|
514
|
+
def documents_service
|
515
|
+
if (@documents_service == nil)
|
516
|
+
@documents_service = KalturaDocumentsService.new(self)
|
517
|
+
end
|
518
|
+
return @documents_service
|
519
|
+
end
|
520
|
+
end
|
521
|
+
|
522
|
+
end
|