dailymotion-api-client 0.1.1 → 0.1.2

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ODM3YjRiMDkzMjBjNzU0ZDhlNDJiYzU1M2VmOWFiNmQ1NjE3NDA2Zg==
4
+ ZDAzNGY2MTMzN2FiNmU3YjNjODU2ZWE0MDQ1MGY0ZTMyMTNiNDFiNA==
5
5
  data.tar.gz: !binary |-
6
- MmQ3MGRhNmI4M2ZmODRjYWI4YTI0ZDEwMGFjNjU3ZTUwMTMxNDliZA==
6
+ MjBkOWEwYzdkZTcxOTEzMGQ0MTU4NDQwYjFhZTYyNDAxZmMyYzQ3ZA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YjA1ZjRiNWY4NzY2MzAzM2E3MjVlYjc4YjJjYmIzNmQ4YjRmY2UwZTM1MDVj
10
- MzlhY2QxYmNmYjg3NDdjMTcyNThjODY1NDEwY2JkNjNhMmNmMDQ5ZjIzZTI0
11
- MjU5NWNlN2NmYTE2ZDhlMzc5ZjE3N2U2NmEwZDBkNjk0ZjdmNzM=
9
+ NzU4MmQyN2E5YzVjMWNkZjJhM2RiMjU5NzQzNjFlNzRlYWY2YTQ2ZDdiZjE5
10
+ MjQ1YjhhMDcyZDY2NjhhNmUxZDE5ZDM2ZTM0MTVlZDcwODc3NWUyODJjY2I1
11
+ YWNhNTFkNzM4ZGI0ZTI3NjM4OTljZWJjNjlkNjk0MDc4NjIzNjA=
12
12
  data.tar.gz: !binary |-
13
- MWQ2NGVlOGQ3ZWMyMGY4ZDFjM2YzYzcwM2RiYTk0N2RiOWQ3NmEzYWU5OTcy
14
- MDQyMjllZDFkYWNmNzdkMjY0YzhlY2VkNWI3YzM0MjI3ZjE3NTE2OTIwYzZh
15
- ZTc1NGNlOGJlYmZiNWQyNmU1NzAxNTViNDY5MzYzY2UwMTI0NTM=
13
+ ZDk3ZGEzMjczMDUwYjRiZmMyOWVjNzdjMjQ0YzQ0MjAyZTMyNDllNDZmNTFh
14
+ MmMyMWFkOGU5ZjQwZjkwNWZjM2QzMzI3MDRmZmRiOGFjYzIyMTMwODhhNGM0
15
+ Nzc3MTJhMjJjM2RmMWI0MjI4NTkxMzc4YzdkOWFjMTNmNWFlOTg=
data/README.md CHANGED
@@ -32,6 +32,8 @@ Or install it yourself as:
32
32
  client.create_video
33
33
  # Update video data an publish it
34
34
  client.publish_video(title: "my video", channel: "shortfilms", tags: "my_tag")
35
+ # Get metadata for a video with a specified id
36
+ client.get_video("video_id", "url,title")
35
37
 
36
38
  ## Contributing
37
39
 
@@ -3,6 +3,8 @@ module DailymotionApi
3
3
  class Client
4
4
  API_URL = "https://api.dailymotion.com"
5
5
 
6
+ attr_reader :video_id
7
+
6
8
  def initialize(params = {})
7
9
  @username = params[:username]
8
10
  @password = params[:password]
@@ -22,16 +24,27 @@ module DailymotionApi
22
24
 
23
25
  def post_video(video)
24
26
  response = HTTMultiParty.post(@upload_url, body: {file: video})
25
- @video_url = response.parsed_response["url"]
27
+ @uploaded_video_url = response.parsed_response["url"]
26
28
  end
27
29
 
28
30
  def create_video
29
- response = HTTMultiParty.post("#{API_URL}/me/videos", body: {access_token: @access_token, url: @video_url})
31
+ response = HTTMultiParty.post("#{API_URL}/me/videos", body: {access_token: @access_token, url: @uploaded_video_url})
30
32
  @video_id = response.parsed_response["id"]
31
33
  end
32
34
 
33
35
  def publish_video(data)
34
36
  HTTMultiParty.post("#{API_URL}/video/#{@video_id}", body: data.merge(access_token: @access_token, published: true))
35
37
  end
38
+
39
+ def get_video(video_id, fields = "")
40
+ return nil unless video_id
41
+
42
+ response = HTTMultiParty.get("#{API_URL}/video/#{video_id}?fields=#{fields}")
43
+ response.parsed_response
44
+ end
45
+
46
+ def video_url
47
+ @video_url ||= get_video(@video_id, "url")["url"] rescue nil
48
+ end
36
49
  end
37
50
  end
@@ -1,4 +1,4 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  module DailymotionApi
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
@@ -43,7 +43,7 @@ describe DailymotionApi::Client do
43
43
  describe "#create_video" do
44
44
  it "should post the video" do
45
45
  client.instance_variable_set(:@access_token, "token")
46
- client.instance_variable_set(:@video_url, "video_url")
46
+ client.instance_variable_set(:@uploaded_video_url, "video_url")
47
47
  response = stub("response", parsed_response: {"id" => "video_id"})
48
48
  HTTMultiParty.should_receive(:post).with("https://api.dailymotion.com/me/videos", body: {access_token: "token", url: "video_url"}).and_return(response)
49
49
 
@@ -60,4 +60,32 @@ describe DailymotionApi::Client do
60
60
  client.publish_video(title: "video title", channel: "shortfilms", tags: "some_tag")
61
61
  end
62
62
  end
63
+
64
+ describe "#get_video" do
65
+ it "should return video metadata" do
66
+ parsed_response = {"url" => "video_url", "channel" => "video_channel"}
67
+ response = stub("response", parsed_response: parsed_response)
68
+ HTTMultiParty.should_receive(:get).with("https://api.dailymotion.com/video/123?fields=url,channel").and_return(response)
69
+
70
+ client.get_video("123", "url,channel").should == parsed_response
71
+ end
72
+ end
73
+
74
+ describe "#video_url" do
75
+ context "when video_id is defined" do
76
+ it "should return the video url" do
77
+ client.instance_variable_set(:@video_id, "video_id")
78
+ response = stub("response", parsed_response: {"url" => "url"})
79
+ HTTMultiParty.should_receive(:get).with("https://api.dailymotion.com/video/video_id?fields=url").and_return(response)
80
+
81
+ client.video_url.should == "url"
82
+ end
83
+ end
84
+
85
+ context "when video_id isn't defined" do
86
+ it "should return nil" do
87
+ client.video_url.should be_nil
88
+ end
89
+ end
90
+ end
63
91
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dailymotion-api-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guilherme Garnier