diff --git a/plugins/youtube_plugin.rb b/plugins/youtube_plugin.rb index bffb6816cb88eb4ecb2443c0a5acb80a69437b9b..262b83d4c01e931e0871a6f3994cf751ac1bf81f 100644 --- a/plugins/youtube_plugin.rb +++ b/plugins/youtube_plugin.rb @@ -1,12 +1,21 @@ require_relative '../lib/site_plugin.rb' +require 'rubygems' +require 'youtube_it' + class YoutubePlugin < SitePlugin def self.can_handle?(site) site =~ /^http:\/\/((www.)?youtube.(fr|com)\/watch\?v=|youtu\.be\/)[a-zA-Z0-9]+$/ end public + # Store a new youtube api client + def initialize + @client = YouTubeIt::Client.new + end + def get(url) - puts "Oh oh oh ! #{url}" + video = @client.video_by(url) + {:title => video.title, :author => video.author.name} end end diff --git a/spec/site_plugin_spec.rb b/spec/site_plugin_spec.rb index 241ab691d2cdabce1e31c69cc99bbba6a3f97b0c..833ea20b3d0f993526b669d908def6d58daa6e0d 100644 --- a/spec/site_plugin_spec.rb +++ b/spec/site_plugin_spec.rb @@ -14,7 +14,7 @@ describe SitePlugin do end describe '.for_site' do - it 'return plugin that can handle a given site"' do + it 'return plugin that can handle a given site' do class TestPlugin2 < SitePlugin def self.can_handle?(site) site =~ /test/ diff --git a/spec/youtube_plugin_spec.rb b/spec/youtube_plugin_spec.rb index 3dba54c3e799eb2adf562dd4ace5e0ba0ae67ba7..8a6c06e11f24681c4a2fac0f16eb40dc999a7cef 100644 --- a/spec/youtube_plugin_spec.rb +++ b/spec/youtube_plugin_spec.rb @@ -14,4 +14,11 @@ describe YoutubePlugin do YoutubePlugin.can_handle?('http://youtu.be/Pb8VPYMgHlg').should be_true end end + + describe '#get' do + it "return video's informations" do + YoutubePlugin.new.get('http://youtube.com/watch?v=Pb8VPYMgHlg')[:title].should == 'DJ Showtek - FTS (Fuck the system)' + YoutubePlugin.new.get('http://youtube.com/watch?v=Pb8VPYMgHlg')[:author].should == 'bf2julian' + end + end end