viddlereo 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use ree@viddlereo --create
data/Gemfile ADDED
@@ -0,0 +1,24 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ # Add dependencies to develop your gem here.
7
+ # Include everything needed to run rake, tests, features, etc.
8
+
9
+ gem 'rest-client'
10
+ gem 'happymapper'
11
+ gem 'configatron'
12
+
13
+ group :development do
14
+ gem "rspec", "~> 2.1.0"
15
+ gem "yard", "~> 0.6.0"
16
+ gem "bundler", "~> 1.0.0"
17
+ gem "jeweler", "~> 1.5.1"
18
+ gem "rcov", ">= 0"
19
+ gem "reek", "~> 1.2.8"
20
+ gem "roodi", "~> 2.1.0"
21
+ gem "webmock"
22
+ gem "vcr"
23
+ gem "ruby-debug"
24
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,72 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ addressable (2.2.2)
5
+ columnize (0.3.2)
6
+ configatron (2.6.4)
7
+ yamler (>= 0.1.0)
8
+ crack (0.1.8)
9
+ diff-lcs (1.1.2)
10
+ git (1.2.5)
11
+ happymapper (0.3.2)
12
+ libxml-ruby (~> 1.1.3)
13
+ jeweler (1.5.1)
14
+ bundler (~> 1.0.0)
15
+ git (>= 1.2.5)
16
+ rake
17
+ libxml-ruby (1.1.4)
18
+ linecache (0.43)
19
+ mime-types (1.16)
20
+ rake (0.8.7)
21
+ rcov (0.9.9)
22
+ reek (1.2.8)
23
+ ruby2ruby (~> 1.2)
24
+ ruby_parser (~> 2.0)
25
+ sexp_processor (~> 3.0)
26
+ rest-client (1.6.1)
27
+ mime-types (>= 1.16)
28
+ roodi (2.1.0)
29
+ ruby_parser
30
+ rspec (2.1.0)
31
+ rspec-core (~> 2.1.0)
32
+ rspec-expectations (~> 2.1.0)
33
+ rspec-mocks (~> 2.1.0)
34
+ rspec-core (2.1.0)
35
+ rspec-expectations (2.1.0)
36
+ diff-lcs (~> 1.1.2)
37
+ rspec-mocks (2.1.0)
38
+ ruby-debug (0.10.4)
39
+ columnize (>= 0.1)
40
+ ruby-debug-base (~> 0.10.4.0)
41
+ ruby-debug-base (0.10.4)
42
+ linecache (>= 0.3)
43
+ ruby2ruby (1.2.5)
44
+ ruby_parser (~> 2.0)
45
+ sexp_processor (~> 3.0)
46
+ ruby_parser (2.0.5)
47
+ sexp_processor (~> 3.0)
48
+ sexp_processor (3.0.5)
49
+ vcr (1.3.2)
50
+ webmock (1.6.1)
51
+ addressable (>= 2.2.2)
52
+ crack (>= 0.1.7)
53
+ yamler (0.1.0)
54
+ yard (0.6.2)
55
+
56
+ PLATFORMS
57
+ ruby
58
+
59
+ DEPENDENCIES
60
+ bundler (~> 1.0.0)
61
+ configatron
62
+ happymapper
63
+ jeweler (~> 1.5.1)
64
+ rcov
65
+ reek (~> 1.2.8)
66
+ rest-client
67
+ roodi (~> 2.1.0)
68
+ rspec (~> 2.1.0)
69
+ ruby-debug
70
+ vcr
71
+ webmock
72
+ yard (~> 0.6.0)
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010 Dan Pickett
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,19 @@
1
+ = viddlereo
2
+
3
+ Description goes here.
4
+
5
+ == Contributing to viddlereo
6
+
7
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
8
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
9
+ * Fork the project
10
+ * Start a feature/bugfix branch
11
+ * Commit and push until you are happy with your contribution
12
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
13
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
14
+
15
+ == Copyright
16
+
17
+ Copyright (c) 2010 Dan Pickett. See LICENSE.txt for
18
+ further details.
19
+
data/Rakefile ADDED
@@ -0,0 +1,75 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ require 'jeweler'
13
+ Jeweler::Tasks.new do |gem|
14
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
+ gem.name = "viddlereo"
16
+ gem.homepage = "http://github.com/dpickett/viddlereo"
17
+ gem.license = "MIT"
18
+ gem.summary = %Q{A ruby wrapper for Viddler's V2 API}
19
+ gem.description = %Q{Viddler + Ruby = Great Video Success}
20
+ gem.email = "dpickett@enlightsolutions.com"
21
+ gem.authors = ["Dan Pickett"]
22
+ # Include your dependencies below. Runtime dependencies are required when using your gem,
23
+ # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
+ # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
+ # gem.add_development_dependency 'rspec', '> 1.2.3'
26
+ end
27
+ Jeweler::RubygemsDotOrgTasks.new
28
+
29
+ require 'rspec/core'
30
+ require 'rspec/core/rake_task'
31
+ RSpec::Core::RakeTask.new(:spec) do |spec|
32
+ spec.pattern = FileList['spec/**/*_spec.rb']
33
+ end
34
+
35
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
36
+ spec.pattern = 'spec/**/*_spec.rb'
37
+ spec.rcov = true
38
+ end
39
+
40
+ require 'reek/rake/task'
41
+ Reek::Rake::Task.new do |t|
42
+ t.fail_on_error = true
43
+ t.verbose = false
44
+ t.source_files = 'lib/**/*.rb'
45
+ end
46
+
47
+ require 'roodi'
48
+ require 'roodi_task'
49
+ RoodiTask.new do |t|
50
+ t.verbose = false
51
+ end
52
+
53
+ task :default => :spec
54
+
55
+ require 'yard'
56
+ YARD::Rake::YardocTask.new
57
+
58
+ namespace :vcr do
59
+ desc "uses erb to replace Viddler key and password for multi developer usage"
60
+ task :obscure_credentials do
61
+ require File.dirname(__FILE__) + "/lib/viddlereo"
62
+ [
63
+ "/spec/cassettes/**/*.yml",
64
+ "/features/cassettes/**/*.yml"
65
+ ].each do |glob|
66
+ Viddlereo.configuration.configure_from_yaml(File.dirname(__FILE__) + "/spec/viddlereo.yml")
67
+ Dir.glob(File.dirname(__FILE__) + glob).each do |f|
68
+ contents = File.read(f)
69
+ File.open(f, "w") do |j|
70
+ j << contents.gsub(CGI.escape(Viddlereo.key), "<%= key %>").gsub(CGI.escape(Viddlereo.password), "<%= password %>").gsub(CGI.escape(Viddlereo.user), "<%= user %>")
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,11 @@
1
+ module Viddlereo
2
+ class Echo < Resource
3
+ resource_name "api"
4
+ tag "echo_response"
5
+ element :message, String
6
+
7
+ def self.retrieve(message = "")
8
+ parse(get(:method => "echo", :message => message))
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ module Viddlereo
2
+ class Error < Exception
3
+ include HappyMapper
4
+
5
+ tag :error
6
+ element :code, String
7
+ element :description, String
8
+
9
+ def self.from_rest_client_exception(rest_client_exception)
10
+ parsed_response = parse(rest_client_exception.response)
11
+ new("Viddlereo Error #{parsed_response.code}: #{parsed_response.description}")
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ module Viddlereo
2
+ class Param
3
+ attr_reader :name
4
+ attr_reader :data_type
5
+
6
+ def initialize(name, data_type)
7
+ @name = name
8
+ @data_type = data_type
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,50 @@
1
+ module Viddlereo
2
+ class Playlist < Resource
3
+ auth_required
4
+
5
+ resource_name "playlists"
6
+
7
+ element :id, String
8
+ element :name, String
9
+ element :type, String
10
+ element :visibility, String
11
+ has_many :videos, Viddlereo::Video
12
+
13
+ #has_many :rules, Viddlereo::PlaylistRule
14
+
15
+ param :users, Array
16
+ param :max_age, Integer
17
+ param :tags, Array
18
+ param :visibility, String
19
+ param :min_views, Integer
20
+ param :max_views, Integer
21
+ param :sort, String
22
+
23
+
24
+ def save
25
+ new_record = self.class.parse(self.class.post(:method => "create",
26
+ :name => self.name,
27
+ :type => self.type,
28
+ :visibility => self.visibility
29
+ ))
30
+ self.id = new_record.first.id
31
+ true
32
+ end
33
+
34
+ def destroy
35
+ self.class.post(:method => "delete", :playlist_id => self.id)
36
+ true
37
+ end
38
+
39
+ def self.find_by_id(playlist_id, options = {})
40
+ begin
41
+ parse(get(:method => :getDetails,
42
+ :playlist_id => playlist_id,
43
+ :per_page => options[:per_page] || 100,
44
+ :page => options[:page] || 1)).first
45
+ rescue RestClient::ResourceNotFound
46
+ nil
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,93 @@
1
+ module Viddlereo
2
+ class Resource
3
+ BASE_URI = "http://api.viddler.com/api/v2/"
4
+
5
+ def initialize
6
+ self.class.params.each do |p|
7
+ if p.data_type == Array
8
+ self.send("#{p.name}=", [])
9
+ end
10
+ end
11
+ end
12
+
13
+ def self.inherited(child)
14
+ child.send(:include, HappyMapper)
15
+ end
16
+
17
+ def self.default_options
18
+ defaults = {
19
+ :key => Viddlereo.key
20
+ }
21
+
22
+ defaults[:sessionid] = Viddlereo.session_id if Viddlereo.has_session?
23
+ defaults
24
+ end
25
+
26
+ def self.client
27
+ RestClient
28
+ end
29
+
30
+ def self.auth_required
31
+ @auth_required = true
32
+ end
33
+
34
+ def self.auth_required?
35
+ @auth_required
36
+ end
37
+
38
+ def self.resource_name(name)
39
+ @resource_name = name
40
+ end
41
+
42
+ def self.uri(method_name = nil)
43
+ BASE_URI + "viddler." + (@resource_name || name.downcase.split("::").last) +
44
+ (!method_name.nil? ? ".#{method_name}" : "") + ".xml"
45
+ end
46
+
47
+ def self.get(options = {})
48
+ prepare_request
49
+ method_name = options.delete(:method)
50
+ begin
51
+ client.get uri(method_name), :params => options.merge(default_options)
52
+ rescue RestClient::BadRequest => e
53
+ raise Viddlereo::Error.from_rest_client_exception(e)
54
+ end
55
+ end
56
+
57
+ def self.post(options = {})
58
+ prepare_request
59
+ method_name = options.delete(:method)
60
+ begin
61
+ response = client.post uri(method_name), options.merge(default_options)
62
+ rescue RestClient::BadRequest => e
63
+ raise Viddlereo::Error.from_rest_client_exception(e)
64
+ end
65
+ end
66
+
67
+ def self.param(name, data_type)
68
+ @params ||= []
69
+ @params << Viddlereo::Param.new(name, data_type)
70
+ attr_accessor name
71
+ end
72
+
73
+ def self.params
74
+ @params || []
75
+ end
76
+
77
+ def params
78
+ @params = {}
79
+ self.class.params.each do |p|
80
+ @params[p.name] = self.send(p.name)
81
+ end
82
+
83
+ @params
84
+ end
85
+
86
+ protected
87
+ def self.prepare_request
88
+ if auth_required? && !Viddlereo.has_session?
89
+ Viddlereo.retrieve_session
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,16 @@
1
+ module Viddlereo
2
+ class Session < Resource
3
+ resource_name 'users'
4
+ tag "auth"
5
+
6
+ element :session_id, String, :tag => "sessionid"
7
+ element :record_token, String
8
+
9
+ def self.auth(get_token = false)
10
+ parse(get(:method => "auth",
11
+ :user => Viddlereo.user,
12
+ :password => Viddlereo.password,
13
+ :get_record_token => get_token ? 1 : 0))
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,20 @@
1
+ module Viddlereo
2
+ class Video < Resource
3
+ element :id, String
4
+ element :status, String
5
+ element :author, String
6
+ element :title, String
7
+ element :length, Integer
8
+ element :description, String
9
+ element :url, String
10
+ element :thumbnail_url, String
11
+ element :permalink, String
12
+ element :html5_video_source, String
13
+ element :view_count, Integer
14
+ element :upload_time, DateTime
15
+ element :made_public_time, DateTime
16
+ element :favorite, Boolean
17
+ element :comment_count, Integer
18
+ element :embed_code, String
19
+ end
20
+ end
data/lib/viddlereo.rb ADDED
@@ -0,0 +1,59 @@
1
+ require 'configatron'
2
+ require 'happymapper'
3
+ require 'rest-client'
4
+
5
+ module Viddlereo
6
+ def self.key=(key)
7
+ configuration.key = key
8
+ end
9
+
10
+ def self.key
11
+ configuration.key
12
+ end
13
+
14
+ def self.user=(user)
15
+ configuration.user = user
16
+ end
17
+
18
+ def self.user
19
+ configuration.user
20
+ end
21
+
22
+ def self.password=(password)
23
+ configuration.password = password
24
+ end
25
+
26
+ def self.password
27
+ configuration.password
28
+ end
29
+
30
+ def self.retrieve_session
31
+ configuration.session_id = Viddlereo::Session.auth.session_id
32
+ end
33
+
34
+ def self.forget_session
35
+ configuration.session_id = nil
36
+ end
37
+
38
+ def self.session_id
39
+ configuration.session_id
40
+ end
41
+
42
+ def self.has_session?
43
+ !session_id.nil?
44
+ end
45
+
46
+ def self.configuration
47
+ configatron.viddlereo
48
+ end
49
+ end
50
+
51
+ require 'viddlereo/param'
52
+ require 'viddlereo/error'
53
+
54
+ require 'viddlereo/resource'
55
+
56
+ require 'viddlereo/echo'
57
+ require 'viddlereo/session'
58
+ require 'viddlereo/video'
59
+ require 'viddlereo/playlist'
@@ -0,0 +1,163 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://api.viddler.com:80/api/v2/viddler.users.auth.xml?get_record_token=0&key=<%= key %>&password=<%= password %>&user=<%= user %>
6
+ body:
7
+ headers:
8
+ accept:
9
+ - "*/*; q=0.5, application/xml"
10
+ accept-encoding:
11
+ - gzip, deflate
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ x-viddler-node:
18
+ - viddler_i
19
+ connection:
20
+ - keep-alive
21
+ content-type:
22
+ - text/xml;charset=UTF-8
23
+ server:
24
+ - nginx/0.6.32
25
+ date:
26
+ - Sat, 20 Nov 2010 22:19:17 GMT
27
+ content-encoding:
28
+ - gzip
29
+ set-cookie:
30
+ - JSESSIONID=C3FC25F4965293012495DE3542A14A4E.viddler_i; Domain=.viddler.com; Path=/
31
+ vary:
32
+ - Accept-Encoding
33
+ transfer-encoding:
34
+ - chunked
35
+ body: !binary |
36
+ H4sIAAAAAAAAA7Kxr8jNUShLLSrOzM+zVTLUM1BSSM1Lzk/JzEu3VQoNcdO1
37
+ ULK347JJLC3JsLMpTi0GqctMsTMyMjY0MzE0SjZLMk1NMrYwNTExSTJJNjE1
38
+ sTRJMTE0STU0M7LRR6i30QebAAAAAP//AwCWt4cCbwAAAA==
39
+
40
+ http_version: "1.1"
41
+ - !ruby/struct:VCR::HTTPInteraction
42
+ request: !ruby/struct:VCR::Request
43
+ method: :post
44
+ uri: http://api.viddler.com:80/api/v2/viddler.playlists.create.xml
45
+ body: type=smart&visibility=private&sessionid=22316412c6b5eb385444b4c45494d414e162&name=Some%20Playlist&key=<%= key %>
46
+ headers:
47
+ accept:
48
+ - "*/*; q=0.5, application/xml"
49
+ content-type:
50
+ - application/x-www-form-urlencoded
51
+ accept-encoding:
52
+ - gzip, deflate
53
+ content-length:
54
+ - "122"
55
+ response: !ruby/struct:VCR::Response
56
+ status: !ruby/struct:VCR::ResponseStatus
57
+ code: 200
58
+ message: OK
59
+ headers:
60
+ x-viddler-node:
61
+ - viddler_k
62
+ connection:
63
+ - keep-alive
64
+ content-type:
65
+ - text/xml;charset=UTF-8
66
+ server:
67
+ - nginx/0.6.32
68
+ date:
69
+ - Sat, 20 Nov 2010 22:19:17 GMT
70
+ content-encoding:
71
+ - gzip
72
+ set-cookie:
73
+ - JSESSIONID=3C7DB022B9D87A320CC389F485B8F095.viddler_k; Domain=.viddler.com; Path=/
74
+ vary:
75
+ - Accept-Encoding
76
+ transfer-encoding:
77
+ - chunked
78
+ body: !binary |
79
+ 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
116
+
117
+ http_version: "1.1"
118
+ - !ruby/struct:VCR::HTTPInteraction
119
+ request: !ruby/struct:VCR::Request
120
+ method: :post
121
+ uri: http://api.viddler.com:80/api/v2/viddler.playlists.delete.xml
122
+ body: sessionid=22316412c6b5eb385444b4c45494d414e162&playlist_id=71800d6f7414e6e9&key=<%= key %>
123
+ headers:
124
+ accept:
125
+ - "*/*; q=0.5, application/xml"
126
+ content-type:
127
+ - application/x-www-form-urlencoded
128
+ accept-encoding:
129
+ - gzip, deflate
130
+ content-length:
131
+ - "100"
132
+ response: !ruby/struct:VCR::Response
133
+ status: !ruby/struct:VCR::ResponseStatus
134
+ code: 200
135
+ message: OK
136
+ headers:
137
+ x-viddler-node:
138
+ - viddler_k
139
+ connection:
140
+ - keep-alive
141
+ content-type:
142
+ - text/xml;charset=UTF-8
143
+ server:
144
+ - nginx/0.6.32
145
+ date:
146
+ - Sat, 20 Nov 2010 22:19:17 GMT
147
+ content-encoding:
148
+ - gzip
149
+ set-cookie:
150
+ - JSESSIONID=D99B09378C0DE96DD0B0FF41940C6A2B.viddler_k; Domain=.viddler.com; Path=/
151
+ vary:
152
+ - Accept-Encoding
153
+ transfer-encoding:
154
+ - chunked
155
+ body: !binary |
156
+ H4sIAAAAAAAAA9ySMU/DQAyFd35FlB2cE6UpkutuzEiFuboSU1ncXU7nS0T+
157
+ fUNa1KgMzDDZ77OfpScZN5/eFT0nlTasS3NXlQWHt7aRcFiXry9Pt6tyQzfo
158
+ RPMusXYuE0Z7YDIIU8XIaXci1Yi+BUZnhy+XXlpCaag2q/vqYfleL8yCl/yI
159
+ MEIM1jNtW8/F83kZYWKYh8ik3qaRTD32orIXJ3mgmKS3mRFmDDvlRM2HY/E2
160
+ IEwSU+dYTzO9GurvJ+Fsh0uUn6Hq/xjK/P1QMHtFmD/yEQAA//8DAJa2ZPP9
161
+ AgAA
162
+
163
+ http_version: "1.1"