vimeo 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/CHANGELOG.rdoc +24 -0
- data/LICENSE +20 -0
- data/README.rdoc +322 -0
- data/Rakefile +68 -0
- data/VERSION.yml +4 -0
- data/lib/vimeo/advanced/album.rb +57 -0
- data/lib/vimeo/advanced/auth.rb +22 -0
- data/lib/vimeo/advanced/base.rb +105 -0
- data/lib/vimeo/advanced/channel.rb +58 -0
- data/lib/vimeo/advanced/contact.rb +31 -0
- data/lib/vimeo/advanced/group.rb +68 -0
- data/lib/vimeo/advanced/group_events.rb +25 -0
- data/lib/vimeo/advanced/group_forums.rb +19 -0
- data/lib/vimeo/advanced/person.rb +48 -0
- data/lib/vimeo/advanced/test.rb +36 -0
- data/lib/vimeo/advanced/upload.rb +62 -0
- data/lib/vimeo/advanced/video.rb +131 -0
- data/lib/vimeo/advanced/video_embed.rb +19 -0
- data/lib/vimeo/advanced.rb +20 -0
- data/lib/vimeo/simple/activity.rb +42 -0
- data/lib/vimeo/simple/album.rb +21 -0
- data/lib/vimeo/simple/base.rb +10 -0
- data/lib/vimeo/simple/channel.rb +21 -0
- data/lib/vimeo/simple/group.rb +28 -0
- data/lib/vimeo/simple/user.rb +84 -0
- data/lib/vimeo/simple/video.rb +14 -0
- data/lib/vimeo/simple.rb +14 -0
- data/lib/vimeo.rb +10 -0
- data/test/fixtures/advanced/album/add_video.json +4 -0
- data/test/fixtures/advanced/album/create.json +7 -0
- data/test/fixtures/advanced/album/delete.json +4 -0
- data/test/fixtures/advanced/album/get_all.json +111 -0
- data/test/fixtures/advanced/album/get_videos.json +30 -0
- data/test/fixtures/advanced/album/remove_video.json +4 -0
- data/test/fixtures/advanced/album/set_description.json +4 -0
- data/test/fixtures/advanced/album/set_password.json +4 -0
- data/test/fixtures/advanced/album/set_title.json +4 -0
- data/test/fixtures/advanced/auth/check_token.json +13 -0
- data/test/fixtures/advanced/auth/get_frob.json +5 -0
- data/test/fixtures/advanced/auth/get_token.json +13 -0
- data/test/fixtures/advanced/channel/add_video.json +4 -0
- data/test/fixtures/advanced/channel/get_all.json +1395 -0
- data/test/fixtures/advanced/channel/get_info.json +55 -0
- data/test/fixtures/advanced/channel/get_moderators.json +45 -0
- data/test/fixtures/advanced/channel/get_subscribers.json +44 -0
- data/test/fixtures/advanced/channel/get_videos.json +19 -0
- data/test/fixtures/advanced/channel/remove_video.json +4 -0
- data/test/fixtures/advanced/channel/subscribe.json +4 -0
- data/test/fixtures/advanced/channel/unsubscribe.json +4 -0
- data/test/fixtures/advanced/contact/get_all.json +117 -0
- data/test/fixtures/advanced/contact/get_mutual.json +80 -0
- data/test/fixtures/advanced/contact/get_online.json +47 -0
- data/test/fixtures/advanced/contact/get_who_added.json +117 -0
- data/test/fixtures/advanced/group/add_video.json +4 -0
- data/test/fixtures/advanced/group/get_all.json +1556 -0
- data/test/fixtures/advanced/group/get_files.json +255 -0
- data/test/fixtures/advanced/group/get_info.json +73 -0
- data/test/fixtures/advanced/group/get_members.json +862 -0
- data/test/fixtures/advanced/group/get_moderators.json +44 -0
- data/test/fixtures/advanced/group/get_video_comments.json +96 -0
- data/test/fixtures/advanced/group/get_videos.json +102 -0
- data/test/fixtures/advanced/group/join.json +4 -0
- data/test/fixtures/advanced/group/leave.json +4 -0
- data/test/fixtures/advanced/group_events/get_month.json +146 -0
- data/test/fixtures/advanced/group_events/get_past.json +146 -0
- data/test/fixtures/advanced/group_events/get_upcoming.json +146 -0
- data/test/fixtures/advanced/group_forums/get_topic_comments.json +224 -0
- data/test/fixtures/advanced/group_forums/get_topics.json +504 -0
- data/test/fixtures/advanced/person/add_contact.json +4 -0
- data/test/fixtures/advanced/person/add_subscription.json +4 -0
- data/test/fixtures/advanced/person/find_by_email.json +9 -0
- data/test/fixtures/advanced/person/get_hd_embeds.json +8 -0
- data/test/fixtures/advanced/person/get_info.json +21 -0
- data/test/fixtures/advanced/person/get_portrait_urls.json +28 -0
- data/test/fixtures/advanced/person/remove_contact.json +4 -0
- data/test/fixtures/advanced/person/remove_subscription.json +4 -0
- data/test/fixtures/advanced/test/echo.json +8 -0
- data/test/fixtures/advanced/test/login.json +8 -0
- data/test/fixtures/advanced/test/null.json +4 -0
- data/test/fixtures/advanced/upload/confirm.json +9 -0
- data/test/fixtures/advanced/upload/get_quota.json +16 -0
- data/test/fixtures/advanced/upload/get_ticket.json +8 -0
- data/test/fixtures/advanced/upload/manifest_to_upload.json +6 -0
- data/test/fixtures/advanced/upload/sample_iTunes.mov +0 -0
- data/test/fixtures/advanced/upload/verify_manifest.json +11 -0
- data/test/fixtures/advanced/video/add_cast.json +4 -0
- data/test/fixtures/advanced/video/add_comment.json +7 -0
- data/test/fixtures/advanced/video/add_photos.json +4 -0
- data/test/fixtures/advanced/video/add_tags.json +4 -0
- data/test/fixtures/advanced/video/clear_tags.json +4 -0
- data/test/fixtures/advanced/video/delete.json +4 -0
- data/test/fixtures/advanced/video/delete_comment.json +4 -0
- data/test/fixtures/advanced/video/edit_comment.json +4 -0
- data/test/fixtures/advanced/video/get_all.json +30 -0
- data/test/fixtures/advanced/video/get_appears_in.json +10 -0
- data/test/fixtures/advanced/video/get_by_tag.json +239 -0
- data/test/fixtures/advanced/video/get_cast.json +42 -0
- data/test/fixtures/advanced/video/get_comments_list.json +52 -0
- data/test/fixtures/advanced/video/get_contacts_liked.json +48 -0
- data/test/fixtures/advanced/video/get_contacts_uploaded.json +237 -0
- data/test/fixtures/advanced/video/get_info.json +246 -0
- data/test/fixtures/advanced/video/get_likes.json +32 -0
- data/test/fixtures/advanced/video/get_subscriptions.json +241 -0
- data/test/fixtures/advanced/video/get_thumbnail_urls.json +28 -0
- data/test/fixtures/advanced/video/get_uploaded.json +30 -0
- data/test/fixtures/advanced/video/remove_cast.json +4 -0
- data/test/fixtures/advanced/video/remove_tag.json +4 -0
- data/test/fixtures/advanced/video/search.json +238 -0
- data/test/fixtures/advanced/video/set_description.json +4 -0
- data/test/fixtures/advanced/video/set_like.json +4 -0
- data/test/fixtures/advanced/video/set_privacy.json +4 -0
- data/test/fixtures/advanced/video/set_title.json +4 -0
- data/test/fixtures/advanced/video_embed/get_presets.json +8 -0
- data/test/fixtures/advanced/video_embed/set_preset.json +4 -0
- data/test/fixtures/simple/activity/contacts_did.json +1 -0
- data/test/fixtures/simple/activity/everyone_did.json +1 -0
- data/test/fixtures/simple/activity/happened_to_contacts.json +1 -0
- data/test/fixtures/simple/activity/happened_to_user.json +1 -0
- data/test/fixtures/simple/activity/user_did.json +1 -0
- data/test/fixtures/simple/album/info.json +1 -0
- data/test/fixtures/simple/album/videos.json +1 -0
- data/test/fixtures/simple/channel/info.json +1 -0
- data/test/fixtures/simple/channel/videos.json +1 -0
- data/test/fixtures/simple/group/info.json +1 -0
- data/test/fixtures/simple/group/users.json +1 -0
- data/test/fixtures/simple/group/videos.json +1 -0
- data/test/fixtures/simple/user/albums.json +1 -0
- data/test/fixtures/simple/user/all_videos.json +1 -0
- data/test/fixtures/simple/user/appears_in.json +1 -0
- data/test/fixtures/simple/user/channels.json +1 -0
- data/test/fixtures/simple/user/contacts_like.json +1 -0
- data/test/fixtures/simple/user/contacts_videos.json +1 -0
- data/test/fixtures/simple/user/groups.json +1 -0
- data/test/fixtures/simple/user/info.json +1 -0
- data/test/fixtures/simple/user/likes.json +1 -0
- data/test/fixtures/simple/user/subscriptions.json +1 -0
- data/test/fixtures/simple/user/videos.json +1 -0
- data/test/fixtures/simple/video/info.json +1 -0
- data/test/test_helper.rb +50 -0
- data/test/vimeo/advanced/album_test.rb +88 -0
- data/test/vimeo/advanced/auth_test.rb +37 -0
- data/test/vimeo/advanced/base_test.rb +24 -0
- data/test/vimeo/advanced/channels_test.rb +79 -0
- data/test/vimeo/advanced/contacts_test.rb +40 -0
- data/test/vimeo/advanced/group_events_test.rb +33 -0
- data/test/vimeo/advanced/group_forums_test.rb +26 -0
- data/test/vimeo/advanced/groups_test.rb +82 -0
- data/test/vimeo/advanced/person_test.rb +68 -0
- data/test/vimeo/advanced/test_test.rb +33 -0
- data/test/vimeo/advanced/upload_test.rb +50 -0
- data/test/vimeo/advanced/videos_embed_test.rb +26 -0
- data/test/vimeo/advanced/videos_test.rb +203 -0
- data/test/vimeo/advanced_test.rb +0 -0
- data/test/vimeo/simple/activity_test.rb +60 -0
- data/test/vimeo/simple/album_test.rb +31 -0
- data/test/vimeo/simple/channel_test.rb +31 -0
- data/test/vimeo/simple/group_test.rb +41 -0
- data/test/vimeo/simple/user_test.rb +112 -0
- data/test/vimeo/simple/video_test.rb +22 -0
- data/test/vimeo/simple_test.rb +0 -0
- data/test/vimeo_test.rb +0 -0
- data/vimeo.gemspec +244 -0
- metadata +303 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
module Vimeo
|
2
|
+
module Advanced
|
3
|
+
class Channel < Vimeo::Advanced::Base
|
4
|
+
|
5
|
+
# Adds a video to a channel.
|
6
|
+
create_api_method :add_video,
|
7
|
+
"vimeo.channels.addVideo",
|
8
|
+
:required => [:auth_token, :channel_id, :video_id]
|
9
|
+
|
10
|
+
# Returns a list of all channels.
|
11
|
+
create_api_method :get_all,
|
12
|
+
"vimeo.channels.getAll",
|
13
|
+
:optional => [:page, :per_page, :sort]
|
14
|
+
|
15
|
+
# Returns information about a channel.
|
16
|
+
# FIXME: Do we need page and per_page here?
|
17
|
+
create_api_method :get_info,
|
18
|
+
"vimeo.channels.getInfo",
|
19
|
+
:required => [:channel_id],
|
20
|
+
:optional => [:page, :per_page]
|
21
|
+
|
22
|
+
# Returns a list of the moderators of a channel.
|
23
|
+
create_api_method :get_moderators,
|
24
|
+
"vimeo.channels.getModerators",
|
25
|
+
:required => [:channel_id],
|
26
|
+
:optional => [:page, :per_page]
|
27
|
+
|
28
|
+
# Returns a list of the subscribers of a channel.
|
29
|
+
create_api_method :get_subscribers,
|
30
|
+
"vimeo.channels.getSubscribers",
|
31
|
+
:required => [:channel_id],
|
32
|
+
:optional => [:page, :per_page]
|
33
|
+
|
34
|
+
# Returns a list of the videos in a channel.
|
35
|
+
# FIXME: Should there be a sort option here?
|
36
|
+
create_api_method :get_videos,
|
37
|
+
"vimeo.channels.getVideos",
|
38
|
+
:required => [:channel_id],
|
39
|
+
:optional => [:page, :per_page, :full_response]
|
40
|
+
|
41
|
+
# Removes a video from a channel.
|
42
|
+
create_api_method :remove_video,
|
43
|
+
"vimeo.channels.removeVideo",
|
44
|
+
:required => [:auth_token, :channel_id, :video_id]
|
45
|
+
|
46
|
+
# Subscribes to a channel
|
47
|
+
create_api_method :subscribe,
|
48
|
+
"vimeo.channels.subscribe",
|
49
|
+
:required => [:auth_token, :channel_id]
|
50
|
+
|
51
|
+
# Unsubscribes from a channel
|
52
|
+
create_api_method :unsubscribe,
|
53
|
+
"vimeo.channels.unsubscribe",
|
54
|
+
:required => [:auth_token, :channel_id]
|
55
|
+
|
56
|
+
end # Channel
|
57
|
+
end # Advanced
|
58
|
+
end # Vimeo
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Vimeo
|
2
|
+
module Advanced
|
3
|
+
class Contact < Vimeo::Advanced::Base
|
4
|
+
|
5
|
+
# Returns a list of a user's contacts.
|
6
|
+
create_api_method :get_all,
|
7
|
+
"vimeo.contacts.getAll",
|
8
|
+
:required => [:user_id],
|
9
|
+
:optional => [:page, :per_page, :sort]
|
10
|
+
|
11
|
+
# Returns a list of your mutual contacts with a user.
|
12
|
+
create_api_method :get_mutual,
|
13
|
+
"vimeo.contacts.getMutual",
|
14
|
+
:required => [:user_id],
|
15
|
+
:optional => [:page, :per_page, :sort]
|
16
|
+
|
17
|
+
# Returns a list of your contacts who are online.
|
18
|
+
# FIXME: Shouldn't this have optional params?
|
19
|
+
create_api_method :get_online,
|
20
|
+
"vimeo.contacts.getOnline",
|
21
|
+
:optional => [:page, :per_page, :sort]
|
22
|
+
|
23
|
+
# Returns a list of users who added a user as a contact.
|
24
|
+
create_api_method :get_who_added,
|
25
|
+
"vimeo.contacts.getWhoAdded",
|
26
|
+
:required => [:user_id],
|
27
|
+
:optional => [:page, :per_page, :sort]
|
28
|
+
|
29
|
+
end # Contact
|
30
|
+
end # Advanced
|
31
|
+
end # Vimeo
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module Vimeo
|
2
|
+
module Advanced
|
3
|
+
class Group < Vimeo::Advanced::Base
|
4
|
+
|
5
|
+
# Adds a video to a group.
|
6
|
+
create_api_method :add_video,
|
7
|
+
"vimeo.groups.addVideo",
|
8
|
+
:required => [:auth_token, :group_id, :video_id]
|
9
|
+
|
10
|
+
# Returns a list of all groups.
|
11
|
+
create_api_method :get_all,
|
12
|
+
"vimeo.groups.getAll",
|
13
|
+
:optional => [:page, :per_page, :sort]
|
14
|
+
|
15
|
+
# Returns a list of a group's files.
|
16
|
+
# FIXME: Sort optional param?
|
17
|
+
create_api_method :get_files,
|
18
|
+
"vimeo.groups.getFiles",
|
19
|
+
:required => [:group_id],
|
20
|
+
:optional => [:page, :per_page]
|
21
|
+
|
22
|
+
# Returns information about a group.
|
23
|
+
# FIXME: Does this need pagination options?
|
24
|
+
create_api_method :get_info,
|
25
|
+
"vimeo.groups.getInfo",
|
26
|
+
:required => [:group_id],
|
27
|
+
:optional => [:page, :per_page]
|
28
|
+
|
29
|
+
# Returns a list of the members in a group.
|
30
|
+
create_api_method :get_members,
|
31
|
+
"vimeo.groups.getMembers",
|
32
|
+
:required => [:group_id],
|
33
|
+
:optional => [:page, :per_page, :sort]
|
34
|
+
|
35
|
+
# Returns a list of the moderators of a group.
|
36
|
+
# FIXME: Should this have sort?
|
37
|
+
create_api_method :get_moderators,
|
38
|
+
"vimeo.groups.getModerators",
|
39
|
+
:required => [:group_id],
|
40
|
+
:optional => [:page, :per_page]
|
41
|
+
|
42
|
+
# Returns a list of the comments on a video in a group.
|
43
|
+
# FIXME: Should this have sort?
|
44
|
+
create_api_method :get_video_comments,
|
45
|
+
"vimeo.groups.getVideoComments",
|
46
|
+
:required => [:group_id, :video_id],
|
47
|
+
:optional => [:page, :per_page]
|
48
|
+
|
49
|
+
# Returns a list of the videos in a group.
|
50
|
+
# FIXME: Should this have sort?
|
51
|
+
create_api_method :get_videos,
|
52
|
+
"vimeo.groups.getVideos",
|
53
|
+
:required => [:group_id],
|
54
|
+
:optional => [:page, :per_page, :sort, :full_response]
|
55
|
+
|
56
|
+
# Joins a group.
|
57
|
+
create_api_method :join,
|
58
|
+
"vimeo.groups.join",
|
59
|
+
:required => [:auth_token, :group_id]
|
60
|
+
|
61
|
+
# Leaves a group.
|
62
|
+
create_api_method :leave,
|
63
|
+
"vimeo.groups.leave",
|
64
|
+
:required => [:auth_token, :group_id]
|
65
|
+
|
66
|
+
end # Group
|
67
|
+
end # Advanced
|
68
|
+
end # Vimeo
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Vimeo
|
2
|
+
module Advanced
|
3
|
+
class GroupEvents < Vimeo::Advanced::Base
|
4
|
+
|
5
|
+
# Returns a list of events from a group for a specific month.
|
6
|
+
create_api_method :get_month,
|
7
|
+
"vimeo.groups.events.getMonth",
|
8
|
+
:required => [:group_id],
|
9
|
+
:optional => [:page, :per_page, :month, :year]
|
10
|
+
|
11
|
+
# Returns a list of all past events from a group.
|
12
|
+
create_api_method :get_past,
|
13
|
+
"vimeo.groups.events.getPast",
|
14
|
+
:required => [:group_id],
|
15
|
+
:optional => [:page, :per_page]
|
16
|
+
|
17
|
+
# Returns a list of all upcoming events from a group.
|
18
|
+
create_api_method :get_upcoming,
|
19
|
+
"vimeo.groups.events.getUpcoming",
|
20
|
+
:required => [:group_id],
|
21
|
+
:optional => [:page, :per_page]
|
22
|
+
|
23
|
+
end # GroupEvents
|
24
|
+
end # Advanced
|
25
|
+
end # Vimeo
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Vimeo
|
2
|
+
module Advanced
|
3
|
+
class GroupForums < Vimeo::Advanced::Base
|
4
|
+
|
5
|
+
# Returns a list of comments for a group forum topic.
|
6
|
+
create_api_method :get_topic_comments,
|
7
|
+
"vimeo.groups.forums.getTopicComments",
|
8
|
+
:required => [:group_id, :topic_id],
|
9
|
+
:optional => [:page, :per_page]
|
10
|
+
|
11
|
+
# Returns a list of all group forum topics.
|
12
|
+
create_api_method :get_topics,
|
13
|
+
"vimeo.groups.forums.getTopics",
|
14
|
+
:required => [:group_id],
|
15
|
+
:optional => [:page, :per_page]
|
16
|
+
|
17
|
+
end # GroupForums
|
18
|
+
end # Advanced
|
19
|
+
end # Vimeo
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Vimeo
|
2
|
+
module Advanced
|
3
|
+
class Person < Vimeo::Advanced::Base
|
4
|
+
|
5
|
+
# Adds a user to your contact list.
|
6
|
+
create_api_method :add_contact,
|
7
|
+
"vimeo.people.addContact",
|
8
|
+
:required => [:auth_token, :user_id]
|
9
|
+
|
10
|
+
# Adds a subscription to your subscriptions.
|
11
|
+
# Types is a comma-delimited string. Valid options: "likes", "appears", "uploads"
|
12
|
+
create_api_method :add_subscription,
|
13
|
+
"vimeo.people.addSubscription",
|
14
|
+
:required => [:auth_token, :user_id, :types]
|
15
|
+
|
16
|
+
# Finds a user by their e-mail.
|
17
|
+
create_api_method :find_by_email,
|
18
|
+
"vimeo.people.findByEmail",
|
19
|
+
:required => [:user_id]
|
20
|
+
|
21
|
+
create_api_method :get_hd_embeds,
|
22
|
+
"vimeo.people.getHDEmbeds",
|
23
|
+
:required => [:auth_token]
|
24
|
+
|
25
|
+
# Returns a user's information
|
26
|
+
create_api_method :get_info,
|
27
|
+
"vimeo.people.getInfo",
|
28
|
+
:required => [:user_id]
|
29
|
+
|
30
|
+
# Returns a user's portrait URLs.
|
31
|
+
create_api_method :get_portrait_urls,
|
32
|
+
"vimeo.people.getPortraitUrls",
|
33
|
+
:required => [:user_id]
|
34
|
+
|
35
|
+
# Removes a user from your contact list.
|
36
|
+
create_api_method :remove_contact,
|
37
|
+
"vimeo.people.removeContact",
|
38
|
+
:required => [:auth_token, :user_id]
|
39
|
+
|
40
|
+
# Removes a subscription to your subscriptions.
|
41
|
+
# Types is a comma-delimited string. Valid options: "likes", "appears", "uploads"
|
42
|
+
create_api_method :remove_subscription,
|
43
|
+
"vimeo.people.removeSubscription",
|
44
|
+
:required => [:auth_token, :user_id, :types]
|
45
|
+
|
46
|
+
end # Person
|
47
|
+
end # Advanced
|
48
|
+
end # Vimeo
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Vimeo
|
2
|
+
module Advanced
|
3
|
+
|
4
|
+
class Test < Vimeo::Advanced::Base
|
5
|
+
|
6
|
+
# An echo test. Echoes all parameters.
|
7
|
+
# Options can be anything except method, api_key,
|
8
|
+
# and api_sig -- if any of these options are
|
9
|
+
# present they will be overwritten by the proper
|
10
|
+
# values.
|
11
|
+
create_api_method :echo,
|
12
|
+
"vimeo.test.echo"
|
13
|
+
|
14
|
+
# def echo(options={})
|
15
|
+
# options.merge!(:method => "vimeo.test.echo")
|
16
|
+
# api_sig = generate_api_sig options
|
17
|
+
# options.merge!(:api_sig => api_sig)
|
18
|
+
# self.class.post("/api/rest", :query => options)
|
19
|
+
# end
|
20
|
+
|
21
|
+
# Tests if the user associated to this token
|
22
|
+
# is able to make authenticated calls.
|
23
|
+
create_api_method :login,
|
24
|
+
"vimeo.test.login",
|
25
|
+
:required => [:auth_token]
|
26
|
+
|
27
|
+
|
28
|
+
# A simple ping test.
|
29
|
+
create_api_method :null,
|
30
|
+
"vimeo.test.null",
|
31
|
+
:required => [:auth_token]
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end # Advanced
|
36
|
+
end # Vimeo
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'httpclient'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module Vimeo
|
5
|
+
module Advanced
|
6
|
+
|
7
|
+
class Upload < Vimeo::Advanced::Base
|
8
|
+
|
9
|
+
# TODO: Make this work with either a JSON or an XML manifest.
|
10
|
+
# Confirms the upload process.
|
11
|
+
create_api_method :confirm,
|
12
|
+
"vimeo.videos.upload.confirm",
|
13
|
+
:required => [:auth_token, :ticket_id],
|
14
|
+
:unsigned => [:json_manifest]
|
15
|
+
|
16
|
+
# "{\"files\":[{\"md5\":\"731f09145a1ea9ec9dad689de6fa0358\"}]}"
|
17
|
+
|
18
|
+
# Returns the space and HD uploads left for a user.
|
19
|
+
create_api_method :get_quota,
|
20
|
+
"vimeo.videos.upload.getQuota",
|
21
|
+
:required => [:auth_token]
|
22
|
+
|
23
|
+
# Returns an upload ticket.
|
24
|
+
create_api_method :get_ticket,
|
25
|
+
"vimeo.videos.upload.getTicket",
|
26
|
+
:required => [:auth_token]
|
27
|
+
|
28
|
+
# Upload +file+ to vimeo with +ticket_id+ and +auth_token+
|
29
|
+
# Returns the json manifest necessary to confirm the upload.
|
30
|
+
def upload(auth_token, file_path, ticket_id, end_point)
|
31
|
+
params = {
|
32
|
+
:auth_token => auth_token,
|
33
|
+
:ticket_id => ticket_id
|
34
|
+
}
|
35
|
+
params[:api_sig] = generate_api_sig params
|
36
|
+
|
37
|
+
params.merge!({ :file_data => File.open(file_path) })
|
38
|
+
|
39
|
+
client = HTTPClient.new
|
40
|
+
response = client.post(end_point, params)
|
41
|
+
md5 = response.content
|
42
|
+
|
43
|
+
self.class.create_json_manifest(md5)
|
44
|
+
end
|
45
|
+
|
46
|
+
# TODO: Make this work with either json or xml manifest.
|
47
|
+
# FIXME: Ticket id is required?
|
48
|
+
# Verifies a file manifest.
|
49
|
+
create_api_method :verify_manifest,
|
50
|
+
"vimeo.videos.upload.verifyManifest",
|
51
|
+
:required => [:auth_token, :ticket_id],
|
52
|
+
:unsigned => [:json_manifest]
|
53
|
+
|
54
|
+
|
55
|
+
# TODO: Make this more flexible for split uploads?
|
56
|
+
def self.create_json_manifest(md5s)
|
57
|
+
{ :files => md5s.map { |md5| { :md5 => md5 } } }.to_json
|
58
|
+
end
|
59
|
+
|
60
|
+
end # Upload
|
61
|
+
end # Advanced
|
62
|
+
end # Vimeo
|
@@ -0,0 +1,131 @@
|
|
1
|
+
module Vimeo
|
2
|
+
module Advanced
|
3
|
+
class Video < Vimeo::Advanced::Base
|
4
|
+
|
5
|
+
create_api_method :add_cast,
|
6
|
+
"vimeo.videos.addCast",
|
7
|
+
:required => [:auth_token, :video_id, :user_id],
|
8
|
+
:optional => [:role]
|
9
|
+
|
10
|
+
create_api_method :add_photos,
|
11
|
+
"vimeo.videos.addPhotos",
|
12
|
+
:required => [:auth_token, :video_id, :photo_urls]
|
13
|
+
|
14
|
+
create_api_method :add_tags,
|
15
|
+
"vimeo.videos.addTags",
|
16
|
+
:required => [:auth_token, :video_id, :tags]
|
17
|
+
|
18
|
+
create_api_method :clear_tags,
|
19
|
+
"vimeo.videos.clearTags",
|
20
|
+
:required => [:auth_token, :video_id]
|
21
|
+
|
22
|
+
create_api_method :delete,
|
23
|
+
"vimeo.videos.delete",
|
24
|
+
:required => [:auth_token, :video_id]
|
25
|
+
|
26
|
+
create_api_method :get_all,
|
27
|
+
"vimeo.videos.getAll",
|
28
|
+
:required => [:user_id],
|
29
|
+
:optional => [:page, :per_page, :full_response, :sort]
|
30
|
+
|
31
|
+
create_api_method :get_appears_in,
|
32
|
+
"vimeo.videos.getAppearsIn",
|
33
|
+
:required => [:user_id],
|
34
|
+
:optional => [:page, :per_page, :full_response, :sort]
|
35
|
+
|
36
|
+
create_api_method :get_by_tag,
|
37
|
+
"vimeo.videos.getByTag",
|
38
|
+
:required => [:tag],
|
39
|
+
:optional => [:page, :per_page, :full_response, :sort]
|
40
|
+
|
41
|
+
create_api_method :get_cast,
|
42
|
+
"vimeo.videos.getCast",
|
43
|
+
:required => [:video_id],
|
44
|
+
:optional => [:page, :per_page]
|
45
|
+
|
46
|
+
create_api_method :get_contacts_liked,
|
47
|
+
"vimeo.videos.getContactsLiked",
|
48
|
+
:required => [:user_id],
|
49
|
+
:optional => [:page, :per_page, :full_response, :sort]
|
50
|
+
|
51
|
+
create_api_method :get_contacts_uploaded,
|
52
|
+
"vimeo.videos.getContactsUploaded",
|
53
|
+
:required => [:user_id],
|
54
|
+
:optional => [:page, :per_page, :full_response, :sort]
|
55
|
+
|
56
|
+
create_api_method :get_info,
|
57
|
+
"vimeo.videos.getInfo",
|
58
|
+
:required => [:video_id]
|
59
|
+
|
60
|
+
create_api_method :get_likes,
|
61
|
+
"vimeo.videos.getLikes",
|
62
|
+
:required => [:user_id],
|
63
|
+
:optional => [:page, :per_page, :full_response, :sort]
|
64
|
+
|
65
|
+
create_api_method :get_subscriptions,
|
66
|
+
"vimeo.videos.getSubscriptions",
|
67
|
+
:required => [:user_id],
|
68
|
+
:optional => [:page, :per_page, :full_response, :sort]
|
69
|
+
|
70
|
+
create_api_method :get_thumbnail_urls,
|
71
|
+
"vimeo.videos.getThumbnailUrls",
|
72
|
+
:required => [:video_id]
|
73
|
+
|
74
|
+
create_api_method :get_uploaded,
|
75
|
+
"vimeo.videos.getUploaded",
|
76
|
+
:required => [:user_id],
|
77
|
+
:optional => [:page, :per_page, :full_response, :sort]
|
78
|
+
|
79
|
+
create_api_method :remove_cast,
|
80
|
+
"vimeo.videos.removeCast",
|
81
|
+
:required => [:auth_token, :video_id, :user_id]
|
82
|
+
|
83
|
+
create_api_method :remove_tag,
|
84
|
+
"vimeo.videos.removeTag",
|
85
|
+
:required => [:auth_token, :video_id, :tag_id]
|
86
|
+
|
87
|
+
create_api_method :search,
|
88
|
+
"vimeo.videos.search",
|
89
|
+
:required => [:query],
|
90
|
+
:optional => [:page, :per_page, :full_response, :sort, :user_id]
|
91
|
+
|
92
|
+
create_api_method :set_description,
|
93
|
+
"vimeo.videos.setDescription",
|
94
|
+
:required => [:auth_token, :video_id, :description]
|
95
|
+
|
96
|
+
create_api_method :set_like,
|
97
|
+
"vimeo.videos.setLike",
|
98
|
+
:required => [:auth_token, :video_id, :like]
|
99
|
+
|
100
|
+
create_api_method :set_privacy,
|
101
|
+
"vimeo.videos.setPrivacy",
|
102
|
+
:required => [:auth_token, :video_id, :privacy],
|
103
|
+
:optional => [:users, :password]
|
104
|
+
|
105
|
+
create_api_method :set_title,
|
106
|
+
"vimeo.videos.setTitle",
|
107
|
+
:required => [:auth_token, :video_id, :title]
|
108
|
+
|
109
|
+
|
110
|
+
# comments
|
111
|
+
create_api_method :add_comment,
|
112
|
+
"vimeo.videos.comments.addComment",
|
113
|
+
:required => [:auth_token, :video_id, :comment_text],
|
114
|
+
:optional => [:reply_to_comment_id]
|
115
|
+
|
116
|
+
create_api_method :delete_comment,
|
117
|
+
"vimeo.videos.comments.deleteComment",
|
118
|
+
:required => [:auth_token, :video_id, :comment_id]
|
119
|
+
|
120
|
+
create_api_method :edit_comment,
|
121
|
+
"vimeo.videos.comments.editComment",
|
122
|
+
:required => [:auth_token, :video_id, :comment_id, :comment_text]
|
123
|
+
|
124
|
+
create_api_method :get_comments_list,
|
125
|
+
"vimeo.videos.comments.getList",
|
126
|
+
:required => [:video_id],
|
127
|
+
:optional => [:page, :per_page]
|
128
|
+
|
129
|
+
end # Video
|
130
|
+
end # Advanced
|
131
|
+
end # Vimeo
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Vimeo
|
2
|
+
module Advanced
|
3
|
+
class VideoEmbed < Vimeo::Advanced::Base
|
4
|
+
|
5
|
+
# Returns a list of presets for a video embed.
|
6
|
+
# FIXME: Needs a page optional as well...?
|
7
|
+
create_api_method :get_presets,
|
8
|
+
"vimeo.video.embed.getPresets",
|
9
|
+
:required => [:auth_token],
|
10
|
+
:optional => [:page, :per_page]
|
11
|
+
|
12
|
+
# Sets a preset for a video embed.
|
13
|
+
create_api_method :set_preset,
|
14
|
+
"vimeo.video.embed.setPreset",
|
15
|
+
:required => [:auth_token, :video_id, :preset_id]
|
16
|
+
|
17
|
+
end # VideoEmbed
|
18
|
+
end # Advanced
|
19
|
+
end # Vimeo
|
@@ -0,0 +1,20 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__))
|
2
|
+
require 'advanced/base'
|
3
|
+
require 'advanced/album'
|
4
|
+
require 'advanced/auth'
|
5
|
+
require 'advanced/channel'
|
6
|
+
require 'advanced/contact'
|
7
|
+
require 'advanced/group'
|
8
|
+
require 'advanced/group_events'
|
9
|
+
require 'advanced/group_forums'
|
10
|
+
require 'advanced/person'
|
11
|
+
require 'advanced/test'
|
12
|
+
require 'advanced/upload'
|
13
|
+
require 'advanced/video'
|
14
|
+
require 'advanced/video_embed'
|
15
|
+
|
16
|
+
module Vimeo
|
17
|
+
module Advanced
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Vimeo
|
2
|
+
module Simple
|
3
|
+
|
4
|
+
class Activity < Vimeo::Simple::Base
|
5
|
+
# Returns a list of a user's activities.
|
6
|
+
#
|
7
|
+
# @param [String] username The user's id or username.
|
8
|
+
def self.user_did(username)
|
9
|
+
get("/activity/#{username}/user_did.json")
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns a list of activities that happened to a user.
|
13
|
+
#
|
14
|
+
# @param [String] username The user's id or username.
|
15
|
+
def self.happened_to_user(username)
|
16
|
+
get("/activity/#{username}/happened_to_user.json")
|
17
|
+
end
|
18
|
+
|
19
|
+
# Returns a list of activities a user's contact's did.
|
20
|
+
#
|
21
|
+
# @param [String] username The user's id or username.
|
22
|
+
def self.contacts_did(username)
|
23
|
+
get("/activity/#{username}/contacts_did.json")
|
24
|
+
end
|
25
|
+
|
26
|
+
# Returns a list of activities that happened to a user's contacts.
|
27
|
+
#
|
28
|
+
# @param [String] username The user's id or username.
|
29
|
+
def self.happened_to_contacts(username)
|
30
|
+
get("/activity/#{username}/happened_to_contacts.json")
|
31
|
+
end
|
32
|
+
|
33
|
+
# Returns a list of activities everyone did.
|
34
|
+
#
|
35
|
+
# @param [String] username The user's id or username.
|
36
|
+
def self.everyone_did(username)
|
37
|
+
get("/activity/#{username}/everyone_did.json")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end # Simple
|
42
|
+
end # Vimeo
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Vimeo
|
2
|
+
module Simple
|
3
|
+
|
4
|
+
class Album < Vimeo::Simple::Base
|
5
|
+
# Returns a list of an album's videos.
|
6
|
+
#
|
7
|
+
# @param [String] album_id The album's id.
|
8
|
+
def self.videos(album_id)
|
9
|
+
get("/album/#{album_id}/videos.json")
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns an album's metadata.
|
13
|
+
#
|
14
|
+
# @param [String] album_id The album's id.
|
15
|
+
def self.info(album_id)
|
16
|
+
get("/album/#{album_id}/info.json")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end # Simple
|
21
|
+
end # Vimeo
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Vimeo
|
2
|
+
module Simple
|
3
|
+
|
4
|
+
class Channel < Vimeo::Simple::Base
|
5
|
+
# Returns a list of a channel's videos.
|
6
|
+
#
|
7
|
+
# @param [String] channelname The channel's name.
|
8
|
+
def self.videos(channelname)
|
9
|
+
get("/channel/#{channelname}/videos.json")
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns a channel's metadata.
|
13
|
+
#
|
14
|
+
# @param [String] channelname The channel's name.
|
15
|
+
def self.info(channelname)
|
16
|
+
get("/channel/#{channelname}/info.json")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end # Simple
|
21
|
+
end # Vimeo
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Vimeo
|
2
|
+
module Simple
|
3
|
+
|
4
|
+
class Group < Vimeo::Simple::Base
|
5
|
+
# Returns a list of a group's videos.
|
6
|
+
#
|
7
|
+
# @param [String] group_name The groups's name.
|
8
|
+
def self.videos(groupname)
|
9
|
+
get("/group/#{groupname}/videos.json")
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns a list of a group's users.
|
13
|
+
#
|
14
|
+
# @param [String] group_name The groups's name.
|
15
|
+
def self.users(groupname)
|
16
|
+
get("/group/#{groupname}/users.json")
|
17
|
+
end
|
18
|
+
|
19
|
+
# Returns a group's metadata.
|
20
|
+
#
|
21
|
+
# @param [String] group_name The groups's name.
|
22
|
+
def self.info(groupname)
|
23
|
+
get("/group/#{groupname}/info.json")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end # Simple
|
28
|
+
end # Vimeo
|