vimeo 1.0.0
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.
- 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
|