youtube_it 1.2.1 → 1.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +2 -1
- data/README.txt +4 -1
- data/VERSION +1 -1
- data/lib/youtube_it/client.rb +4 -0
- data/lib/youtube_it/parser.rb +28 -0
- data/lib/youtube_it/request/video_upload.rb +9 -0
- data/pkg/youtube_it-1.2.1.gem +0 -0
- data/test/test_client.rb +6 -0
- data/youtube_it.gemspec +2 -1
- metadata +3 -2
data/History.txt
CHANGED
data/README.txt
CHANGED
@@ -132,7 +132,10 @@ Playlist
|
|
132
132
|
|
133
133
|
client.remove_video_from_playlist(playlist_id, playlist_entry_id)
|
134
134
|
|
135
|
-
|
135
|
+
* get all playlists from some user
|
136
|
+
|
137
|
+
client.playlists_for(user) #return array with the playlists
|
138
|
+
|
136
139
|
Access Control List
|
137
140
|
|
138
141
|
You can give permissions in your videos, for example denied comments, rate, etc...
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.3
|
data/lib/youtube_it/client.rb
CHANGED
data/lib/youtube_it/parser.rb
CHANGED
@@ -35,6 +35,34 @@ class YouTubeIt
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
+
class PlaylistsFeedParser < FeedParser #:nodoc:
|
39
|
+
|
40
|
+
# return array of playlist objects
|
41
|
+
def parse_content(content)
|
42
|
+
doc = REXML::Document.new(content.body)
|
43
|
+
feed = doc.elements["feed"]
|
44
|
+
|
45
|
+
playlists = []
|
46
|
+
feed.elements.each("entry") do |entry|
|
47
|
+
playlists << parse_entry(entry)
|
48
|
+
end
|
49
|
+
return playlists
|
50
|
+
end
|
51
|
+
|
52
|
+
protected
|
53
|
+
|
54
|
+
def parse_entry(entry)
|
55
|
+
YouTubeIt::Model::Playlist.new(
|
56
|
+
:title => entry.elements["title"].text,
|
57
|
+
:summary => (entry.elements["summary"] || entry.elements["media:group"].elements["media:description"]).text,
|
58
|
+
:description => (entry.elements["summary"] || entry.elements["media:group"].elements["media:description"]).text,
|
59
|
+
:playlist_id => entry.elements["id"].text[/playlist([^<]+)/, 1].sub(':',''),
|
60
|
+
:published => entry.elements["published"] ? entry.elements["published"].text : nil,
|
61
|
+
:response_code => nil,
|
62
|
+
:xml => nil)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
38
66
|
class VideoFeedParser < FeedParser #:nodoc:
|
39
67
|
|
40
68
|
def parse_content(content)
|
@@ -278,6 +278,15 @@ class YouTubeIt
|
|
278
278
|
return response.body
|
279
279
|
end
|
280
280
|
end
|
281
|
+
|
282
|
+
def playlists_for(user)
|
283
|
+
playlist_url = "/feeds/api/users/#{user}/playlists?v=2"
|
284
|
+
http_connection do |session|
|
285
|
+
response = session.get(playlist_url)
|
286
|
+
raise_on_faulty_response(response)
|
287
|
+
return YouTubeIt::Parser::PlaylistsFeedParser.new(response).parse #return response.body
|
288
|
+
end
|
289
|
+
end
|
281
290
|
|
282
291
|
def add_playlist(options)
|
283
292
|
response = nil
|
Binary file
|
data/test/test_client.rb
CHANGED
@@ -266,6 +266,12 @@ class TestClient < Test::Unit::TestCase
|
|
266
266
|
assert_equal playlist_updated.title, "title changed"
|
267
267
|
assert @client.delete_playlist(playlist.playlist_id)
|
268
268
|
end
|
269
|
+
|
270
|
+
def test_should_list_playlist_for_user
|
271
|
+
result = @client.playlists_for('chebyte')
|
272
|
+
assert result.last.title, "rock"
|
273
|
+
end
|
274
|
+
|
269
275
|
|
270
276
|
def test_should_determine_if_widescreen_video_is_widescreen
|
271
277
|
widescreen_id = 'QqQVll-MP3I'
|
data/youtube_it.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{youtube_it}
|
8
|
-
s.version = "1.2.
|
8
|
+
s.version = "1.2.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["chebyte", "kylejginavan"]
|
@@ -48,6 +48,7 @@ Gem::Specification.new do |s|
|
|
48
48
|
"pkg/youtube_it-1.0.0.gem",
|
49
49
|
"pkg/youtube_it-1.1.0.gem",
|
50
50
|
"pkg/youtube_it-1.2.0.gem",
|
51
|
+
"pkg/youtube_it-1.2.1.gem",
|
51
52
|
"test/helper.rb",
|
52
53
|
"test/test.mov",
|
53
54
|
"test/test_chain_io.rb",
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 1.2.
|
8
|
+
- 3
|
9
|
+
version: 1.2.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- chebyte
|
@@ -73,6 +73,7 @@ files:
|
|
73
73
|
- pkg/youtube_it-1.0.0.gem
|
74
74
|
- pkg/youtube_it-1.1.0.gem
|
75
75
|
- pkg/youtube_it-1.2.0.gem
|
76
|
+
- pkg/youtube_it-1.2.1.gem
|
76
77
|
- test/helper.rb
|
77
78
|
- test/test.mov
|
78
79
|
- test/test_chain_io.rb
|