dm_cloud 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/dm_cloud.gemspec ADDED
@@ -0,0 +1,78 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "dm_cloud"
8
+ s.version = "0.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Jeremy Mortelette"]
12
+ s.date = "2012-11-26"
13
+ s.description = "This gem will simplify usage of DailyMotion Cloud API, it represent api in ruby style, with automated handler for search and upload files"
14
+ s.email = ["mortelette.jeremy@gmail.com"]
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.md"
18
+ ]
19
+ s.files = [
20
+ ".gitignore",
21
+ "Gemfile",
22
+ "LICENSE.txt",
23
+ "README.md",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "dm_cloud.gemspec",
27
+ "lib/dm_cloud.rb",
28
+ "lib/dm_cloud/builder/media.rb",
29
+ "lib/dm_cloud/media.rb",
30
+ "lib/dm_cloud/request.rb",
31
+ "lib/dm_cloud/signing.rb",
32
+ "lib/dm_cloud/streaming.rb",
33
+ "lib/dm_cloud/version.rb",
34
+ "spec/dm_cloud/media_spec.rb",
35
+ "spec/dm_cloud/signing_spec.rb",
36
+ "spec/dm_cloud/streaming_spec.rb",
37
+ "spec/dm_cloud_spec.rb",
38
+ "spec/spec_helper.rb",
39
+ "spec/vcr_cassettes/dm_cloud/dm_cloud_streaming.yml",
40
+ "spec/vcr_cassettes/dm_cloud_media.yml"
41
+ ]
42
+ s.homepage = ""
43
+ s.require_paths = ["lib"]
44
+ s.rubygems_version = "1.8.24"
45
+ s.summary = "Simplify DailyMotion Cloud API usage"
46
+ s.test_files = ["spec/dm_cloud/media_spec.rb", "spec/dm_cloud/signing_spec.rb", "spec/dm_cloud/streaming_spec.rb", "spec/dm_cloud_spec.rb", "spec/spec_helper.rb", "spec/vcr_cassettes/dm_cloud/dm_cloud_streaming.yml", "spec/vcr_cassettes/dm_cloud_media.yml"]
47
+
48
+ if s.respond_to? :specification_version then
49
+ s.specification_version = 3
50
+
51
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
52
+ s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
53
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
54
+ s.add_development_dependency(%q<bundler>, [">= 0"])
55
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
56
+ s.add_development_dependency(%q<rcov>, [">= 0"])
57
+ s.add_development_dependency(%q<vcr>, [">= 0"])
58
+ s.add_development_dependency(%q<webmock>, [">= 0"])
59
+ else
60
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
61
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
62
+ s.add_dependency(%q<bundler>, [">= 0"])
63
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
64
+ s.add_dependency(%q<rcov>, [">= 0"])
65
+ s.add_dependency(%q<vcr>, [">= 0"])
66
+ s.add_dependency(%q<webmock>, [">= 0"])
67
+ end
68
+ else
69
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
70
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
71
+ s.add_dependency(%q<bundler>, [">= 0"])
72
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
73
+ s.add_dependency(%q<rcov>, [">= 0"])
74
+ s.add_dependency(%q<vcr>, [">= 0"])
75
+ s.add_dependency(%q<webmock>, [">= 0"])
76
+ end
77
+ end
78
+
@@ -45,14 +45,15 @@ module DmCloud
45
45
  fields[:assets].each { |value| request << "assets.#{name}.#{value.to_s}" }
46
46
  end
47
47
  end
48
- puts "request fields = #{request.to_yaml}"
49
48
  request
50
49
  end
51
50
 
52
- def self.list(fields = {})
51
+ def self.list(page = 1, per_page = 10, fields = {})
53
52
  # raise StandardError, "missing :media_id in params" unless media_id
54
53
  request = Hash.new
55
54
 
55
+ request[:page] = page
56
+ request[:per_page] = per_page
56
57
  request[:fields] = []
57
58
  # requested media meta datas
58
59
  fields[:meta] = ['title'] unless fields[:meta]
@@ -68,16 +69,16 @@ module DmCloud
68
69
  # request['stats'][COUNTRY_CODE][TIME_INTERVAL] : the statistics on the number of views in a specific country (eg: stats.fr.total, stats.us.last_week, etc...)
69
70
  # request['extended_stats'][COUNTRY_CODE][TIME_INTERVAL]
70
71
 
71
- assets_names = ['source'] if assets_names.nil?
72
- if not fields[:assets]
73
- request = all_assets_fields(request, assets_names)
74
- else
75
- assets_names.each do |name|
76
- fields[:assets].each { |value| request[:fields] << "assets.#{name}.#{value.to_s}" }
77
- end
72
+ assets_names = ['source'] if assets_names.nil?
73
+ if not fields[:assets]
74
+ request = all_assets_fields(request, assets_names)
75
+ else
76
+ assets_names.each do |name|
77
+ fields[:assets].each { |value| request[:fields] << "assets.#{name}.#{value.to_s}" }
78
78
  end
79
+ end
79
80
 
80
- request
81
+ request
81
82
  end
82
83
 
83
84
 
@@ -111,7 +112,6 @@ module DmCloud
111
112
  end
112
113
  request
113
114
  end
114
-
115
115
  end
116
116
  end
117
117
  end
@@ -71,17 +71,12 @@ module DmCloud
71
71
  # per_page (Integer) – (optional) the number of objet per page, default: 10
72
72
  # Returns:
73
73
  # an object with information for the pagination and the result of the query.
74
- def self.list(options = {})
74
+ def self.list(page = 1, per_page = 10, fields = {})
75
75
  call_type = "media.list"
76
76
 
77
- page = options[:page] ? options[:page] : 1
78
- per_page = options[:per_page] ? options[:per_page] : 10
79
-
80
77
  params = {
81
78
  :call => call_type,
82
- args: DmCloud::Builder::Media.list(options),
83
- :page => page,
84
- :per_page => per_page
79
+ args: DmCloud::Builder::Media.list( page, per_page, fields)
85
80
  }
86
81
  DmCloud.config[:auto_call] == true ? DmCloud::Request.execute(call_type, params) : {call: call_type, params: params}
87
82
  end
@@ -40,7 +40,7 @@ module DmCloud
40
40
  # To generate this component the parameters are serialized using x-www-form-urlencoded, compressed with gzip and encoded in base64.
41
41
  # Result :
42
42
  # return a string which contain the signed url like
43
- # <url>?auth=<expires>-<sec>-<nonce>-<md5sum>[-<pub-sec-data>]
43
+ # <expires>-<sec>-<nonce>-<md5sum>[-<pub-sec-data>]
44
44
  def self.sign(stream, security_datas = nil)
45
45
  raise StandardError, "missing :stream in params" unless stream
46
46
  sec_level = security(DmCloud.config[:security_level])
@@ -50,7 +50,7 @@ module DmCloud
50
50
  :sec_level => sec_level,
51
51
  :url_no_query => stream,
52
52
  :expires => 1.hours.from_now.to_i,
53
- :nonce => SecureRandom.hex(16)[0,8],
53
+ :nonce => SecureRandom.hex(16)[0,16],
54
54
  :secret => DmCloud.config[:secret_key]
55
55
  }
56
56
  base.merge!(:sec_data => sec_data, :pub_sec_data => sec_data) unless sec_data.nil?
@@ -8,9 +8,9 @@ require 'digest/md5'
8
8
  module DmCloud
9
9
  class Streaming
10
10
  # Default URL to get embed content ou direct url
11
- DIRECT_STREAM = '[PROTOCOL]://cdn.DmCloud.net/route/[USER_ID]/[MEDIA_ID]/[ASSET_NAME].[ASSET_EXTENSION]'
12
- EMBED_STREAM = '[PROTOCOL]://api.DmCloud.net/embed/[USER_ID]/[MEDIA_ID]?auth=[AUTH_TOKEN]&skin=[SKIN_ID]'
13
- EMBED_IFRAME = '<iframe width=[WIDTH] height=[HEIGHT] frameborder="0" scrolling="no" src="[EMBED_URL]"></iframe>'
11
+ DIRECT_STREAM = "[PROTOCOL]://cdn.dmcloud.net/route/[USER_ID]/[MEDIA_ID]/[ASSET_NAME].[ASSET_EXTENSION]"
12
+ EMBED_STREAM = "[PROTOCOL]://api.dmcloud.net/embed/[USER_ID]/[MEDIA_ID]"
13
+ EMBED_IFRAME = '<iframe width="[WIDTH]" height="[HEIGHT]" frameborder="0" scrolling="no" src="[EMBED_URL]"></iframe>'
14
14
 
15
15
  # Get embeded player
16
16
  # Params :
@@ -26,21 +26,22 @@ module DmCloud
26
26
  raise StandardError, "missing :media_id in params" unless media_id
27
27
 
28
28
  skin_id = options[:skin_id] ? options[:skin_id] : 'modern1'
29
- width = options[:width] ? options[:width] : '848'
30
- height = options[:height] ? options[:height] : '480'
29
+ width = options[:width] ? options[:width].to_s : '848'
30
+ height = options[:height] ? options[:height].to_s : '480'
31
31
 
32
32
  stream = EMBED_STREAM
33
33
  stream.gsub!('[PROTOCOL]', DmCloud.config[:protocol])
34
34
  stream.gsub!('[USER_ID]', DmCloud.config[:user_key])
35
35
  stream.gsub!('[MEDIA_ID]', media_id)
36
- stream.gsub!('[SKIN_ID]', skin_id)
37
- stream += '?auth=[AUTH_TOKEN]'.gsub!('[AUTH_TOKEN]', DmCloud::Signing.sign(stream))
36
+ signed_url = DmCloud::Signing.sign(stream)
37
+ signed_url = stream + "?auth=#{signed_url}"
38
38
 
39
39
  frame = EMBED_IFRAME
40
40
  frame.gsub!('[WIDTH]', width)
41
41
  frame.gsub!('[HEIGHT]', height)
42
- frame.gsub!('[EMBED_URL]', stream)
43
- frame
42
+ frame.gsub!('[EMBED_URL]', signed_url)
43
+
44
+ frame.html_safe
44
45
  end
45
46
 
46
47
  # Get media url for direct link to the file on DailyMotion Cloud
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm_cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-25 00:00:00.000000000 Z
12
+ date: 2012-11-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -139,6 +139,7 @@ files:
139
139
  - README.md
140
140
  - Rakefile
141
141
  - VERSION
142
+ - dm_cloud.gemspec
142
143
  - lib/dm_cloud.rb
143
144
  - lib/dm_cloud/builder/media.rb
144
145
  - lib/dm_cloud/media.rb
@@ -167,7 +168,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
167
168
  version: '0'
168
169
  segments:
169
170
  - 0
170
- hash: 4229416292724513702
171
+ hash: 963216337890652206
171
172
  required_rubygems_version: !ruby/object:Gem::Requirement
172
173
  none: false
173
174
  requirements: