kaltura_box 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +24 -0
  3. data/Gemfile +6 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +60 -0
  6. data/Rakefile +2 -0
  7. data/kaltura_box.gemspec +28 -0
  8. data/lib/generators/kaltura_box/install_generator.rb +16 -0
  9. data/lib/generators/templates/kaltura_box.rb +18 -0
  10. data/lib/generators/templates/kaltura_upload.js +67 -0
  11. data/lib/kaltura_box.rb +10 -0
  12. data/lib/kaltura_box/api.rb +13 -0
  13. data/lib/kaltura_box/category.rb +18 -0
  14. data/lib/kaltura_box/category/class_methods.rb +50 -0
  15. data/lib/kaltura_box/category/instance_methods.rb +30 -0
  16. data/lib/kaltura_box/client.rb +45 -0
  17. data/lib/kaltura_box/configuration.rb +22 -0
  18. data/lib/kaltura_box/entry.rb +36 -0
  19. data/lib/kaltura_box/entry/class_methods.rb +51 -0
  20. data/lib/kaltura_box/entry/instance_methods.rb +13 -0
  21. data/lib/kaltura_box/entry/metadata.rb +152 -0
  22. data/lib/kaltura_box/entry/metadata/class_and_instance_methods.rb +54 -0
  23. data/lib/kaltura_box/entry/metadata/class_methods.rb +69 -0
  24. data/lib/kaltura_box/version.rb +3 -0
  25. data/spec/api_spec.rb +22 -0
  26. data/spec/category_spec.rb +51 -0
  27. data/spec/entry_spec.rb +38 -0
  28. data/spec/metadata_spec.rb +256 -0
  29. data/spec/spec_helper.rb +68 -0
  30. data/spec/support/video.flv +0 -0
  31. data/vendor/kaltura-ruby-client/README +20 -0
  32. data/vendor/kaltura-ruby-client/Rakefile +19 -0
  33. data/vendor/kaltura-ruby-client/kaltura.gemspec +15 -0
  34. data/vendor/kaltura-ruby-client/kaltura.yml +7 -0
  35. data/vendor/kaltura-ruby-client/lib/kaltura.rb +31 -0
  36. data/vendor/kaltura-ruby-client/lib/kaltura_client.rb +14450 -0
  37. data/vendor/kaltura-ruby-client/lib/kaltura_client_base.rb +432 -0
  38. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_abc_screeners_watermark_access_control_client_plugin.rb +37 -0
  39. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_ad_cue_point_client_plugin.rb +108 -0
  40. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_annotation_client_plugin.rb +237 -0
  41. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_aspera_client_plugin.rb +61 -0
  42. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_attachment_client_plugin.rb +227 -0
  43. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_audit_client_plugin.rb +349 -0
  44. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_bulk_upload_client_plugin.rb +109 -0
  45. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_bulk_upload_csv_client_plugin.rb +55 -0
  46. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_bulk_upload_filter_client_plugin.rb +46 -0
  47. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_bulk_upload_xml_client_plugin.rb +40 -0
  48. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_caption_client_plugin.rb +406 -0
  49. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_caption_search_client_plugin.rb +138 -0
  50. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_code_cue_point_client_plugin.rb +97 -0
  51. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_content_distribution_client_plugin.rb +1717 -0
  52. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_cue_point_client_plugin.rb +290 -0
  53. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_document_client_plugin.rb +522 -0
  54. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_drm_client_plugin.rb +204 -0
  55. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_drop_folder_client_plugin.rb +810 -0
  56. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_drop_folder_xml_bulk_upload_client_plugin.rb +39 -0
  57. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_email_notification_client_plugin.rb +276 -0
  58. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_event_notification_client_plugin.rb +405 -0
  59. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_external_media_client_plugin.rb +203 -0
  60. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_file_sync_client_plugin.rb +151 -0
  61. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_http_notification_client_plugin.rb +309 -0
  62. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_kontiki_client_plugin.rb +72 -0
  63. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_like_client_plugin.rb +82 -0
  64. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_metadata_client_plugin.rb +788 -0
  65. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_multi_centers_client_plugin.rb +45 -0
  66. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_short_link_client_plugin.rb +231 -0
  67. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_tag_search_client_plugin.rb +145 -0
  68. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_var_console_client_plugin.rb +238 -0
  69. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_velocix_client_plugin.rb +40 -0
  70. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_virus_scan_client_plugin.rb +263 -0
  71. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_webex_drop_folder_client_plugin.rb +121 -0
  72. data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_widevine_client_plugin.rb +195 -0
  73. data/vendor/kaltura-ruby-client/license.txt +674 -0
  74. data/vendor/kaltura-ruby-client/test/access_control_service_test.rb +75 -0
  75. data/vendor/kaltura-ruby-client/test/base_entry_service_test.rb +267 -0
  76. data/vendor/kaltura-ruby-client/test/configuration_test.rb +178 -0
  77. data/vendor/kaltura-ruby-client/test/cue_point_service_test.rb +67 -0
  78. data/vendor/kaltura-ruby-client/test/data_service_test.rb +76 -0
  79. data/vendor/kaltura-ruby-client/test/document_service_test.rb +41 -0
  80. data/vendor/kaltura-ruby-client/test/media/test.mov +0 -0
  81. data/vendor/kaltura-ruby-client/test/media/test.pdf +0 -0
  82. data/vendor/kaltura-ruby-client/test/media/test.png +0 -0
  83. data/vendor/kaltura-ruby-client/test/media/test.swf +0 -0
  84. data/vendor/kaltura-ruby-client/test/media/test.wmv +0 -0
  85. data/vendor/kaltura-ruby-client/test/media_service_test.rb +294 -0
  86. data/vendor/kaltura-ruby-client/test/metadata_profile_service_test.rb +63 -0
  87. data/vendor/kaltura-ruby-client/test/test_helper.rb +59 -0
  88. metadata +220 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ef074ebbbc9f5d418b83bceaf45f25e5ce4668d1
4
+ data.tar.gz: 1eb48ebcb0461976d12e1949c35c765e60608cba
5
+ SHA512:
6
+ metadata.gz: f585e2fd7efcdcc2d0497d31d68706e7742591e900c0ac9e927ce2970e20bcd53cb23fc40668a4ccda4202094b573650a10843314653e92b785df7b6d164fc04
7
+ data.tar.gz: 73b163b702644eea8a8dc66ae3dfefc7ff442cc56d76539e76dc2ed7453687411d61e2769cba8e3e2124a04f434a28553116131c8ffd0276f062a42ab3a42e79
data/.gitignore ADDED
@@ -0,0 +1,24 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
23
+ .ruby-version
24
+ .ruby-gemset
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'kaltura-ruby-client', path: 'vendor/kaltura-ruby-client'
4
+
5
+ # Specify your gem's dependencies in kaltura_box.gemspec
6
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 shinn
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,60 @@
1
+ # KalturaBox
2
+
3
+ Customized Ruby wrapper for Kaltura API
4
+
5
+ Heavily influenced and continuation of [Kaltura_Fu](https://github.com/Velir/kaltura_fu)
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ gem 'kaltura_box'
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install kaltura_box
20
+
21
+ ## Usage
22
+
23
+ # For the Entry class
24
+ class Video < ActiveRecord::Base
25
+ include KalturaBox::Entry
26
+ end
27
+
28
+ # Category class
29
+ class Category < ActiveRecord::Base
30
+ include KalturaBox::Category
31
+ end
32
+
33
+ # Entry listing from Kaltura
34
+ Video.video_list
35
+
36
+ # Create videos based on Kaltura entries
37
+ Video.update_all_videos!
38
+
39
+ # Retrieve a kaltura entry
40
+ video = Video.new(entry_id: "0_7ivwzhbh")
41
+ video.get
42
+
43
+ # Tagging
44
+ video.set_tags = "noodles, food, yummy" # Create a new set of tags
45
+ video.add_tags = "rice, fruits" # Add more tags to the existing tag list
46
+ video.add_tag("bacon") # Add a single tag
47
+ video.get_tags # Retrieve tags
48
+
49
+ # Kaltura Metadata
50
+ video.set(name: "bla", description: "blablabla")
51
+ video.set_name = "bla"
52
+ video.set_description = "blablabla"
53
+
54
+ ## Contributing
55
+
56
+ 1. Fork it ( https://github.com/[my-github-username]/kaltura_box/fork )
57
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
58
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
59
+ 4. Push to the branch (`git push origin my-new-feature`)
60
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'kaltura_box/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "kaltura_box"
8
+ spec.version = KalturaBox::VERSION
9
+ spec.authors = ["Shinn Chong"]
10
+ spec.email = ["shinnyx@gmail.com"]
11
+ spec.summary = %q{Ruby wrapper for Kaltura API}
12
+ spec.description = spec.summary
13
+ spec.homepage = "https://github.com/shinnyx/kaltura_box"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency('kaltura-ruby-client')
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.6"
24
+ spec.add_development_dependency "rake"
25
+ spec.add_development_dependency 'rspec'
26
+ spec.add_development_dependency 'activerecord'
27
+ spec.add_development_dependency 'sqlite3'
28
+ end
@@ -0,0 +1,16 @@
1
+ module KalturaBox
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ source_root File.expand_path("../../templates",__FILE__)
5
+ desc "Copies the KalturaBox config file and upload JS to your app."
6
+
7
+ def copy_config
8
+ copy_file "kaltura_box.rb", "config/initializers/kaltura_box.rb"
9
+ end
10
+
11
+ def copy_javascript
12
+ copy_file "kaltura_upload.js", "public/javascripts/kaltura_upload.js"
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,18 @@
1
+ # Set up the following configuration with environment variables (Recommended)
2
+ #
3
+ # Obtain your Kaltura API publisher credentials via the KMC Integration Settings
4
+ # http://www.kaltura.com/index.php/kmc/kmc4#account|integration
5
+ #
6
+
7
+ KalturaBox.config do |c|
8
+ c.login_email = ENV["USER_EMAIL"]
9
+ c.login_password = ENV["THE_PASSWORD"]
10
+ c.partner_id = ENV["PARTNER_ID"]
11
+ c.subpartner_id = ENV["PARTNER_ID"].to_i * 100
12
+ c.administrator_secret = ENV["ADMINISTRATOR_SECRET"]
13
+ c.user_secret = ENV["USER_SECRET"]
14
+ c.thumb_width = "300"
15
+ c.thumb_height = "300"
16
+ c.player_conf_id = ENV["whatever"]
17
+ c.service_url = "http://www.kaltura.com"
18
+ end
@@ -0,0 +1,67 @@
1
+ var flashObj;
2
+ var delegate = {};
3
+ var mediaTypeInput;
4
+
5
+ //KSU handlers
6
+ delegate.readyHandler = function()
7
+ {
8
+ flashObj = document.getElementById("uploader");
9
+ }
10
+
11
+ delegate.selectHandler = function()
12
+ {
13
+ //flashObj.upload();
14
+ console.log("selectHandler()");
15
+ console.log(flashObj.getTotalSize());
16
+ }
17
+
18
+ function setMediaType()
19
+ {
20
+ var mediaType = document.getElementById("mediaTypeInput").value;
21
+ //alert(mediaType);
22
+ console.log(mediaType);
23
+ flashObj.setMediaType(mediaType);
24
+ }
25
+
26
+ delegate.singleUploadCompleteHandler = function(args)
27
+ {
28
+
29
+ flashObj.addEntries();
30
+ console.log("singleUploadCompleteHandler", args[0].title);
31
+ document.getElementById('button_submit').disabled = false;
32
+
33
+ }
34
+
35
+ delegate.allUploadsCompleteHandler = function()
36
+ {
37
+ console.log("allUploadsCompleteHandler");
38
+ }
39
+
40
+ delegate.entriesAddedHandler = function(entries)
41
+ {
42
+ //alert(entries.length);
43
+ var entry = entries[0];
44
+ //alert(entry.entryId);
45
+ document.getElementById('video_entry_id').value = entry.entryId
46
+ console.log(entries);
47
+ }
48
+
49
+ delegate.progressHandler = function(args)
50
+ {
51
+ document.getElementById('video_title').value = args[2].title;
52
+ var bob = Math.round(args[0] / args[1] * 100);
53
+ document.getElementById('progress').value = bob;
54
+ console.log(args[2].title + ": " + args[0] + " / " + args[1]);
55
+ }
56
+
57
+ delegate.uiConfErrorHandler = function()
58
+ {
59
+ console.log("ui conf loading error");
60
+ }
61
+
62
+ <!--- JavaScript callback methods to activate Kaltura services via the KSU widget.-->
63
+ function upload()
64
+ {
65
+ flashObj.upload();
66
+ //flashObj.addEntries();
67
+ }
@@ -0,0 +1,10 @@
1
+ require 'kaltura'
2
+ require "kaltura_box/api"
3
+ require "kaltura_box/category"
4
+ require "kaltura_box/client"
5
+ require "kaltura_box/entry"
6
+ require "kaltura_box/version"
7
+
8
+ module KalturaBox
9
+ require 'kaltura_fu/railtie' if defined?(Rails) && Rails.version.split(".").first > "2"
10
+ end
@@ -0,0 +1,13 @@
1
+ require 'kaltura'
2
+ require 'kaltura_box/configuration'
3
+
4
+ module KalturaBox
5
+ class APIWrapper
6
+ attr_accessor :client
7
+
8
+ def initialize
9
+ self.client = ::Kaltura::KalturaClientBase.new(KalturaBox.config)
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,18 @@
1
+ require 'kaltura'
2
+ require 'kaltura_box/category/class_methods'
3
+ require 'kaltura_box/category/instance_methods'
4
+
5
+ module KalturaBox
6
+ module Category
7
+
8
+ def self.included(base)
9
+ base.extend ClassMethods
10
+ base.class_eval do
11
+ include ClassMethods
12
+ include InstanceMethods
13
+ end
14
+ super
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,50 @@
1
+ require 'kaltura'
2
+
3
+ module KalturaBox
4
+ module Category
5
+ module ClassMethods
6
+
7
+ def list
8
+ client = KalturaBox::Client.update_session
9
+ category = Kaltura::KalturaCategoryService.new(client)
10
+ category_list = category.list
11
+ category_list.objects
12
+ end
13
+
14
+ def update_all_categories!
15
+ list.each do |category|
16
+ self.create(
17
+ name: category.name,
18
+ full_name: category.full_name,
19
+ description: category.description,
20
+ ref_id: category.id,
21
+ entries_count: category.entries_count
22
+ )
23
+ end
24
+ end
25
+
26
+ def add(name, description, destroy_after_create = false)
27
+ client = KalturaBox::Client.update_session
28
+ category_svc = Kaltura::KalturaCategoryService.new(client)
29
+
30
+ new_category = Kaltura::KalturaCategory.new
31
+ new_category.name = name
32
+ new_category.description = description
33
+
34
+ if category = category_svc.add(new_category)
35
+ @cat_obj = self.create(
36
+ name: category.name,
37
+ full_name: category.full_name,
38
+ description: category.description,
39
+ ref_id: category.id,
40
+ entries_count: category.entries_count
41
+ )
42
+ category_svc.delete(@cat_obj.ref_id) if destroy_after_create
43
+ end
44
+
45
+ @cat_obj
46
+ end
47
+
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,30 @@
1
+ require 'kaltura'
2
+
3
+ module KalturaBox
4
+ module Category
5
+ module InstanceMethods
6
+
7
+ def edit(options={})
8
+ client = KalturaBox::Client.update_session
9
+ category_svc = Kaltura::KalturaCategoryService.new(client)
10
+
11
+ category = Kaltura::KalturaCategory.new
12
+ category.name = options[:name]
13
+ category.description = options[:description]
14
+
15
+ if category = category_svc.update(self.ref_id, category)
16
+ self.update(name: category.name, description: category.description)
17
+ end
18
+ end
19
+
20
+ def remove
21
+ client = KalturaBox::Client.update_session
22
+ category_svc = Kaltura::KalturaCategoryService.new(client)
23
+
24
+ result = category_svc.delete(self.ref_id) # should returns nil
25
+ self.destroy
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,45 @@
1
+ require 'kaltura'
2
+ require 'kaltura_box/configuration'
3
+
4
+ module KalturaBox
5
+ class Client
6
+ attr_accessor :client, :client_config, :session_key
7
+
8
+ class << self
9
+
10
+ def create
11
+ self.setup_config unless @client_config
12
+ @client = Kaltura::KalturaClient.new(@client_config)
13
+ @client.ks = @session_key
14
+ @client
15
+ end
16
+
17
+ def setup_config
18
+ raise "Missing Partner Identifier" unless KalturaBox.config.partner_id
19
+ @client_config = Kaltura::KalturaConfiguration.new(KalturaBox.config.partner_id)
20
+ @client_config.service_url = KalturaBox.config.service_url
21
+
22
+ self.generate_session_key
23
+
24
+ @client_config
25
+ end
26
+
27
+ def generate_session_key
28
+ self.update_session
29
+
30
+ raise "Missing Administrator Secret" unless KalturaBox.config.administrator_secret
31
+ begin
32
+ @session_key = @client.session_service.start(KalturaBox.config.administrator_secret, '', Kaltura::KalturaSessionType::ADMIN)
33
+ rescue Kaltura::KalturaAPIError => e
34
+ puts e.message
35
+ end
36
+ end
37
+
38
+ def update_session
39
+ @client ? @client : self.create
40
+ end
41
+
42
+ end
43
+
44
+ end
45
+ end