myspaceid-sdk 0.1.9 → 0.1.11
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +66 -0
- data/lib/myspace.rb +1 -1
- data/lib/myspace/end_point.rb +1 -1
- data/lib/myspace/myspace.rb +152 -58
- data/samples/rails/sample/app/controllers/oauth_controller.rb +1 -3
- data/samples/rails/sample/app/controllers/openid_controller.rb +1 -3
- data/samples/rails/sample/app/controllers/user_controller.rb +1 -3
- data/test/myspace_test.rb +6 -3
- data/test/tc_albums.rb +46 -41
- data/test/tc_friends.rb +48 -40
- data/test/tc_profile.rb +45 -55
- data/test/tc_videos.rb +39 -35
- data/test/test_data.rb +7 -4
- metadata +3 -3
- data/test/data.rb +0 -8
data/Rakefile
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'rake/testtask'
|
2
|
+
require 'rake/packagetask'
|
3
|
+
# require 'rake/rdoctask'
|
4
|
+
require 'hoe'
|
5
|
+
|
6
|
+
$LOAD_PATH.push('lib')
|
7
|
+
require 'myspace.rb'
|
8
|
+
|
9
|
+
Hoe.new('myspaceid-sdk', MySpace::VERSION) do |p|
|
10
|
+
p.author = 'Christopher B. Baker'
|
11
|
+
p.email = 'cbaker@myspace.com'
|
12
|
+
p.rubyforge_name = 'myspaceid-sdk'
|
13
|
+
p.extra_deps = ['ruby-openid', 'oauth', 'json']
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "Generate manifest file programmatically"
|
17
|
+
task :generate_manifest do
|
18
|
+
files = FileList[
|
19
|
+
'README.txt', 'lib/**/*', 'test/**/*', 'samples/**/*'
|
20
|
+
].exclude(/db\/cstore|log\/|public\/doc|tmp/)
|
21
|
+
|
22
|
+
File.rename('Manifest.txt', "Manifest-#{Time.now.to_i.to_s}.txt") if File.exists?('Manifest.txt')
|
23
|
+
File.open('Manifest.txt', 'w') do |f|
|
24
|
+
files.each do |name|
|
25
|
+
f.write(name + "\n")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# desc "Build the rubygem for the SDK"
|
31
|
+
# task 'build-gem' => [] do
|
32
|
+
# sh %{gem build myspaceid-sdk.gemspec}
|
33
|
+
# end
|
34
|
+
|
35
|
+
# desc "Build the online documetation for the SDK"
|
36
|
+
# task 'build-docs' => [] do
|
37
|
+
# sh %{rdoc --fmt html}
|
38
|
+
# end
|
39
|
+
|
40
|
+
desc "Run the unit tests"
|
41
|
+
Rake::TestTask.new do |t|
|
42
|
+
t.libs << "test"
|
43
|
+
t.test_files = 'ts_alltests.rb'
|
44
|
+
t.verbose = true
|
45
|
+
end
|
46
|
+
# Rake::RDocTask.new('rdoc') do |t|
|
47
|
+
# t.rdoc_files.include('README', 'lib/**/*.rb')
|
48
|
+
# t.main = 'README'
|
49
|
+
# t.title = "MySpaceID SDK documentation"
|
50
|
+
# end
|
51
|
+
|
52
|
+
# rubyforge_project = 'myspaceid-sdk'
|
53
|
+
# rubyforge_user = 'cbaker'
|
54
|
+
# rubyforge_path = "/var/www/gforge-projects/#{rubyforge_project}/"
|
55
|
+
# desc 'Upload documentation to RubyForge.'
|
56
|
+
# task 'upload-docs' => ['rdoc'] do
|
57
|
+
# sh "scp -r html/* " + "#{rubyforge_user}@rubyforge.org:#{rubyforge_path}"
|
58
|
+
# end
|
59
|
+
|
60
|
+
desc "Generate doc files, but deal with source control as well"
|
61
|
+
task 'generate-docs' do
|
62
|
+
sh %{git rm -rf doc}
|
63
|
+
sh %{rake docs}
|
64
|
+
sh %{git add doc}
|
65
|
+
sh %{git commmit -m 'autogenerated docs' doc}
|
66
|
+
end
|
data/lib/myspace.rb
CHANGED
data/lib/myspace/end_point.rb
CHANGED
data/lib/myspace/myspace.rb
CHANGED
@@ -16,31 +16,38 @@ module MySpace
|
|
16
16
|
# tests regularly timeout at 2 seconds
|
17
17
|
TIMEOUT_SECS = 3 unless const_defined?('TIMEOUT_SECS')
|
18
18
|
|
19
|
-
|
20
|
-
EndPoint.define(:
|
21
|
-
EndPoint.define(:
|
22
|
-
EndPoint.define(:
|
23
|
-
EndPoint.define(:
|
24
|
-
EndPoint.define(:
|
25
|
-
EndPoint.define(:
|
26
|
-
EndPoint.define(:
|
27
|
-
EndPoint.define(:
|
28
|
-
EndPoint.define(:
|
29
|
-
EndPoint.define(:
|
30
|
-
EndPoint.define(:
|
31
|
-
EndPoint.define(:
|
32
|
-
EndPoint.define(:
|
33
|
-
EndPoint.define(:
|
34
|
-
EndPoint.define(:
|
35
|
-
EndPoint.define(:
|
36
|
-
EndPoint.define(:
|
37
|
-
EndPoint.define(:
|
38
|
-
EndPoint.define(:
|
39
|
-
EndPoint.define(:
|
40
|
-
EndPoint.define(:
|
41
|
-
EndPoint.define(:
|
42
|
-
EndPoint.define(:
|
43
|
-
EndPoint.define(:
|
19
|
+
|
20
|
+
EndPoint.define(:user_info, '/v1/user', :get, :v1_json)
|
21
|
+
EndPoint.define(:albums, '/v1/users/{user_id}/albums', :get, :v1_json)
|
22
|
+
EndPoint.define(:album_info, '/v1/users/{user_id}/albums/{album_id}', :get, :v1_json)
|
23
|
+
EndPoint.define(:album, '/v1/users/{user_id}/albums/{album_id}/photos', :get, :v1_json)
|
24
|
+
EndPoint.define(:friends, '/v1/users/{user_id}/friends', :get, :v1_json)
|
25
|
+
EndPoint.define(:friendship, '/v1/users/{user_id}/friends/{friend_ids}', :get, :v1_json)
|
26
|
+
EndPoint.define(:friends_list, '/v1/users/{user_id}/friendslist/{friend_ids}', :get, :v1_json)
|
27
|
+
EndPoint.define(:mood_get, '/v1/users/{user_id}/mood', :get, :v1_json)
|
28
|
+
EndPoint.define(:mood_put, '/v1/users/{user_id}/mood', :put)
|
29
|
+
EndPoint.define(:moods, '/v1/users/{user_id}/moods', :get, :v1_json)
|
30
|
+
EndPoint.define(:photos, '/v1/users/{user_id}/photos', :get, :v1_json)
|
31
|
+
EndPoint.define(:photo, '/v1/users/{user_id}/photos/{photo_id}', :get, :v1_json)
|
32
|
+
EndPoint.define(:profile, '/v1/users/{user_id}/profile', :get, :v1_json)
|
33
|
+
EndPoint.define(:status_get, '/v1/users/{user_id}/status', :get, :v1_json)
|
34
|
+
EndPoint.define(:status_put, '/v1/users/{user_id}/status', :put)
|
35
|
+
EndPoint.define(:videos, '/v1/users/{user_id}/videos', :get, :v1_json)
|
36
|
+
EndPoint.define(:video, '/v1/users/{user_id}/videos/{video_id}', :get, :v1_json)
|
37
|
+
EndPoint.define(:activities, '/v1/users/{user_id}/activities.atom', :get)
|
38
|
+
EndPoint.define(:friends_activities, '/v1/users/{user_id}/friends/activities.atom', :get)
|
39
|
+
EndPoint.define(:appdata_global_get, '/v1/appdata/global', :get, :v1_json)
|
40
|
+
EndPoint.define(:appdata_global_keys_get, '/v1/appdata/global/{keys}', :get, :v1_json)
|
41
|
+
EndPoint.define(:appdata_global_put, '/v1/appdata/global', :put)
|
42
|
+
EndPoint.define(:appdata_global_delete, '/v1/appdata/global/{keys}', :delete)
|
43
|
+
EndPoint.define(:appdata_user_get, '/v1/users/{user_id}/appdata', :get, :v1_json)
|
44
|
+
EndPoint.define(:appdata_user_keys_get, '/v1/users/{user_id}/appdata/{keys}', :get, :v1_json)
|
45
|
+
EndPoint.define(:appdata_user_put, '/v1/users/{user_id}/appdata', :put)
|
46
|
+
EndPoint.define(:appdata_user_delete, '/v1/users/{user_id}/appdata/{keys}', :delete)
|
47
|
+
EndPoint.define(:appdata_friends_get, '/v1/users/{user_id}/friends/appdata', :get, :v1_json)
|
48
|
+
EndPoint.define(:appdata_friends_keys_get, '/v1/users/{user_id}/friends/appdata/{keys}', :get, :v1_json)
|
49
|
+
EndPoint.define(:indicators, '/v1/users/{user_id}/indicators', :get, :v1_json)
|
50
|
+
|
44
51
|
|
45
52
|
attr_reader :consumer
|
46
53
|
attr_accessor :http_logger
|
@@ -74,6 +81,7 @@ module MySpace
|
|
74
81
|
@consumer = ::OAuth::Consumer.new(oauth_token_key,
|
75
82
|
oauth_token_secret,
|
76
83
|
:scheme => :query_string,
|
84
|
+
# :scheme => :header,
|
77
85
|
:http_method => :get,
|
78
86
|
:site => OAUTH_SITES[site],
|
79
87
|
:request_token_path => OAUTH_REQUEST_TOKEN_URL,
|
@@ -164,6 +172,35 @@ module MySpace
|
|
164
172
|
call_myspace_api(:albums, params.dup.update(:user_id => user_id, :v1_json => true))
|
165
173
|
end
|
166
174
|
|
175
|
+
# Get the photo album description for user +user_id+ and album +album_id+
|
176
|
+
#
|
177
|
+
# {"photosUri"=>"http://api.myspace.com/v1/users/456073223/albums/40418/photos",
|
178
|
+
# "photoCount"=>1,
|
179
|
+
# "location"=>"",
|
180
|
+
# "title"=>"My Photos",
|
181
|
+
# "id"=>40418,
|
182
|
+
# "defaultImage"=>
|
183
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/m_f820313641924f0f90004932c8bc310c.jpg",
|
184
|
+
# "privacy"=>"Everyone",
|
185
|
+
# "user"=>
|
186
|
+
# {"name"=>"Bob",
|
187
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
188
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
189
|
+
# "largeImage"=>
|
190
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
191
|
+
# "userType"=>"RegularUser",
|
192
|
+
# "userId"=>456073223,
|
193
|
+
# "image"=>
|
194
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"},
|
195
|
+
# "albumUri"=>"http://api.myspace.com/v1/users/456073223/albums/40418"}
|
196
|
+
def get_album_info(user_id, album_id, params = {})
|
197
|
+
user_id = user_id.to_s
|
198
|
+
validate_identifier(:user_id, user_id)
|
199
|
+
album_id = album_id.to_s
|
200
|
+
validate_identifier(:album_id, album_id)
|
201
|
+
call_myspace_api(:album_info, params.dup.update(:user_id => user_id, :album_id => album_id, :v1_json => true))
|
202
|
+
end
|
203
|
+
|
167
204
|
# Get the photo descriptions for the photos of album +album_id+
|
168
205
|
# for the user +user_id+:
|
169
206
|
#
|
@@ -261,6 +298,19 @@ module MySpace
|
|
261
298
|
call_myspace_api(:friendship, :user_id => user_id, :friend_ids => friend_ids.join(';'), :v1_json => true)
|
262
299
|
end
|
263
300
|
|
301
|
+
# Gets the list of friends for the user +user_id+, for the friends
|
302
|
+
# in +friend_ids+. Use this call if you only need information
|
303
|
+
# about a specific set of friends whose ids you already know.
|
304
|
+
def get_friends_list(user_id, *friend_ids)
|
305
|
+
user_id = user_id.to_s
|
306
|
+
validate_identifier(:user_id, user_id)
|
307
|
+
friend_ids.each do |friend_id|
|
308
|
+
friend_id = friend_id.to_s
|
309
|
+
validate_identifier(:friend_ids, friend_id)
|
310
|
+
end
|
311
|
+
call_myspace_api(:friends_list, :user_id => user_id, :friend_ids => friend_ids.join(';'), :v1_json => true)
|
312
|
+
end
|
313
|
+
|
264
314
|
# Gets the mood of user +user_id+:
|
265
315
|
#
|
266
316
|
# {"mood"=>"tested",
|
@@ -280,7 +330,48 @@ module MySpace
|
|
280
330
|
def get_mood(user_id, params = {})
|
281
331
|
user_id = user_id.to_s
|
282
332
|
validate_identifier(:user_id, user_id)
|
283
|
-
call_myspace_api(:
|
333
|
+
call_myspace_api(:mood_get, params.dup.update(:user_id => user_id, :v1_json => true))
|
334
|
+
end
|
335
|
+
|
336
|
+
# Sets the mood of the user +user_id+ to +mood_id+, which must be
|
337
|
+
# a number from this list:
|
338
|
+
#
|
339
|
+
# http://wiki.developer.myspace.com/index.php?title=Myspace_mood_data_names_codes_images
|
340
|
+
def set_mood(user_id, mood_id)
|
341
|
+
user_id = user_id.to_s
|
342
|
+
validate_identifier(:user_id, user_id)
|
343
|
+
mood_id = mood_id.to_s
|
344
|
+
validate_identifier(:mood_id, mood_id)
|
345
|
+
call_myspace_api(:mood_put, :user_id => user_id, :body => {:mood => mood_id})
|
346
|
+
end
|
347
|
+
|
348
|
+
# Gets and caches the list of available moods for user +user_id+.
|
349
|
+
def moods(user_id)
|
350
|
+
@moods ||= {}
|
351
|
+
@moods[user_id] ||= get_moods(user_id)
|
352
|
+
end
|
353
|
+
|
354
|
+
# Gets the mood names available for user +user_id+.
|
355
|
+
def mood_names(user_id)
|
356
|
+
moods(user_id).collect do |mood|
|
357
|
+
mood['moodName']
|
358
|
+
end
|
359
|
+
end
|
360
|
+
|
361
|
+
# Given a +user_id+ and the name of a mood, returns the
|
362
|
+
# corresponding mood id
|
363
|
+
def mood_id(user_id, name)
|
364
|
+
moods(user_id).each do |mood|
|
365
|
+
return mood['moodId'] if mood['moodName'] == name
|
366
|
+
end
|
367
|
+
end
|
368
|
+
|
369
|
+
# Gets the list of available moods for user +user_id+.
|
370
|
+
def get_moods(user_id, params = {})
|
371
|
+
user_id = user_id.to_s
|
372
|
+
validate_identifier(:user_id, user_id)
|
373
|
+
moods = call_myspace_api(:moods, params.dup.update(:user_id => user_id, :v1_json => true))
|
374
|
+
moods['moods']
|
284
375
|
end
|
285
376
|
|
286
377
|
# Gets the photo descriptions for the photos that belong to user +user_id+:
|
@@ -498,20 +589,25 @@ module MySpace
|
|
498
589
|
call_myspace_api(:video, params.dup.update(:user_id => user_id, :video_id => video_id, :v1_json => true))
|
499
590
|
end
|
500
591
|
|
592
|
+
# Gets the activity stream of user +user_id+
|
501
593
|
def get_activities(user_id, params = {})
|
502
594
|
user_id = user_id.to_s
|
503
595
|
validate_identifier(:user_id, user_id)
|
504
596
|
call_myspace_api(:activities, params.dup.update(:user_id => user_id))
|
505
597
|
end
|
506
598
|
|
599
|
+
# Gets the activity streams of the friends of user +user_id+
|
507
600
|
def get_friends_activities(user_id, params = {})
|
508
601
|
user_id = user_id.to_s
|
509
602
|
validate_identifier(:user_id, user_id)
|
510
603
|
call_myspace_api(:friends_activities, params.dup.update(:user_id => user_id))
|
511
604
|
end
|
512
|
-
|
605
|
+
|
606
|
+
# Gets the global application data. This can be anything the
|
607
|
+
# application wants. If you pass +keys+, only return data
|
608
|
+
# corresponding to the passed keys.
|
513
609
|
def get_global_appdata(*keys)
|
514
|
-
appdata_to_hash do
|
610
|
+
MySpace.appdata_to_hash do
|
515
611
|
if keys.length > 0
|
516
612
|
call_myspace_api(:appdata_global_keys_get, :keys => keys.join(';'), :v1_json => true)
|
517
613
|
else
|
@@ -520,16 +616,6 @@ module MySpace
|
|
520
616
|
end
|
521
617
|
end
|
522
618
|
|
523
|
-
def self.remove_null_values(hash)
|
524
|
-
hash.keys.inject([]) do |nulls, key|
|
525
|
-
unless hash[key]
|
526
|
-
hash.delete(key)
|
527
|
-
nulls << key
|
528
|
-
end
|
529
|
-
nulls
|
530
|
-
end
|
531
|
-
end
|
532
|
-
|
533
619
|
def set_global_appdata(params = {})
|
534
620
|
deletes = MySpace.remove_null_values(params)
|
535
621
|
|
@@ -544,7 +630,7 @@ module MySpace
|
|
544
630
|
def get_user_appdata(user_id, *keys)
|
545
631
|
user_id = user_id.to_s
|
546
632
|
validate_identifier(:user_id, user_id)
|
547
|
-
appdata_to_hash do
|
633
|
+
MySpace.appdata_to_hash do
|
548
634
|
if keys.length > 0
|
549
635
|
call_myspace_api(:appdata_user_keys_get, :user_id => user_id, :keys => keys.join(';'), :v1_json => true)
|
550
636
|
else
|
@@ -570,23 +656,42 @@ module MySpace
|
|
570
656
|
def get_user_friends_appdata(user_id, *keys)
|
571
657
|
user_id = user_id.to_s
|
572
658
|
validate_identifier(:user_id, user_id)
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
659
|
+
if keys.length > 0
|
660
|
+
call_myspace_api(:appdata_friends_keys_get, :user_id => user_id, :keys => keys.join(';'), :v1_json => true)
|
661
|
+
else
|
662
|
+
call_myspace_api(:appdata_friends_get, :user_id => user_id, :v1_json => true)
|
663
|
+
end.inject({}) do |hash, friend|
|
664
|
+
hash.update(friend['userid'].to_s => MySpace.appdata_to_hash(friend))
|
665
|
+
end
|
666
|
+
end
|
667
|
+
|
668
|
+
protected
|
669
|
+
|
670
|
+
def self.remove_null_values(hash)
|
671
|
+
hash.keys.inject([]) do |nulls, key|
|
672
|
+
unless hash[key]
|
673
|
+
hash.delete(key)
|
674
|
+
nulls << key
|
578
675
|
end
|
676
|
+
nulls
|
579
677
|
end
|
580
678
|
end
|
581
679
|
|
582
|
-
def appdata_to_hash(&block)
|
583
|
-
appdata = yield
|
680
|
+
def self.appdata_to_hash(appdata = {}, &block)
|
681
|
+
appdata = yield if block_given?
|
584
682
|
return {} unless appdata['keyvaluecollection']
|
585
683
|
appdata['keyvaluecollection'].inject({}) do |hash, entry|
|
586
684
|
hash.update(entry['key'].to_sym => entry['value'])
|
587
685
|
end
|
588
686
|
end
|
589
687
|
|
688
|
+
public
|
689
|
+
|
690
|
+
def get_indicators(user_id)
|
691
|
+
user_id = user_id.to_s
|
692
|
+
validate_identifier(:user_id, user_id)
|
693
|
+
call_myspace_api(:indicators, :user_id => user_id, :v1_json => true)
|
694
|
+
end
|
590
695
|
|
591
696
|
def call_myspace_api(name, params = {}, &block)
|
592
697
|
params = params.dup
|
@@ -629,18 +734,6 @@ module MySpace
|
|
629
734
|
end
|
630
735
|
end
|
631
736
|
|
632
|
-
# def call_myspace_api_json(url, method = :get, params = {})
|
633
|
-
# call_myspace_api(url, method, params) do |body|
|
634
|
-
# JSON::parse(body)
|
635
|
-
# end
|
636
|
-
# end
|
637
|
-
|
638
|
-
# def call_myspace_api_xml(url, method = :get, params = {})
|
639
|
-
# call_myspace_api(url, method, params) do |body|
|
640
|
-
# REXML::Document.new(body)
|
641
|
-
# end
|
642
|
-
# end
|
643
|
-
|
644
737
|
protected
|
645
738
|
|
646
739
|
ID_REGEXP = /[0-9]+/ unless const_defined?('ID_REGEXP')
|
@@ -664,3 +757,4 @@ module MySpace
|
|
664
757
|
end
|
665
758
|
end
|
666
759
|
end
|
760
|
+
|
@@ -1,8 +1,6 @@
|
|
1
1
|
require 'myspace'
|
2
2
|
|
3
|
-
|
4
|
-
raise "You must create a consumer_key.rb file with your application credentials in it. See #{File.expand_path(File.join(File.dirname(__FILE__), "/../../../../README"))} for more info." unless File.exists?(key_file)
|
5
|
-
require key_file
|
3
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "/../../../consumer_key.rb"))
|
6
4
|
|
7
5
|
class OauthController < ApplicationController
|
8
6
|
include ConsumerKey
|
@@ -7,9 +7,7 @@ require 'openid/store/filesystem'
|
|
7
7
|
|
8
8
|
require 'myspace'
|
9
9
|
|
10
|
-
|
11
|
-
raise "You must create a consumer_key.rb file with your application credentials in it. See #{File.expand_path(File.join(File.dirname(__FILE__), "/../../../../README"))} for more info." unless File.exists?(key_file)
|
12
|
-
require key_file
|
10
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "/../../../consumer_key.rb"))
|
13
11
|
|
14
12
|
class OpenidController < ApplicationController
|
15
13
|
include ConsumerKey
|
@@ -7,9 +7,7 @@ require 'openid/store/filesystem'
|
|
7
7
|
|
8
8
|
require 'myspace'
|
9
9
|
|
10
|
-
|
11
|
-
raise "You must create a consumer_key.rb file with your application credentials in it. See #{File.expand_path(File.join(File.dirname(__FILE__), "/../../../../README"))} for more info." unless File.exists?(key_file)
|
12
|
-
require key_file
|
10
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "/../../../consumer_key.rb"))
|
13
11
|
|
14
12
|
class UserController < ApplicationController
|
15
13
|
include ConsumerKey
|
data/test/myspace_test.rb
CHANGED
@@ -8,9 +8,11 @@ module MySpaceTest
|
|
8
8
|
include TestData
|
9
9
|
|
10
10
|
def setup
|
11
|
-
@
|
12
|
-
|
13
|
-
|
11
|
+
@ms_offsite = MySpace::MySpace.new(OFFSITE_KEY, OFFSITE_SECRET,
|
12
|
+
:access_token => TOKEN, :access_token_secret => SECRET,
|
13
|
+
:logger => Logger.new($stdout))
|
14
|
+
@ms_onsite = MySpace::MySpace.new(ONSITE_KEY, ONSITE_SECRET, :application_type => MySpace::MySpace::APPLICATION_TYPE_ONSITE,
|
15
|
+
:logger => Logger.new($stdout))
|
14
16
|
end
|
15
17
|
|
16
18
|
class Tester
|
@@ -29,4 +31,5 @@ module MySpaceTest
|
|
29
31
|
end
|
30
32
|
assert(tester.passed)
|
31
33
|
end
|
34
|
+
|
32
35
|
end
|
data/test/tc_albums.rb
CHANGED
@@ -6,25 +6,28 @@ class TC_Albums < Test::Unit::TestCase
|
|
6
6
|
|
7
7
|
def test_albums
|
8
8
|
obj = nil
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
[@ms_offsite, @ms_onsite].each do |ms|
|
10
|
+
BAD_IDS.each do |value|
|
11
|
+
assert_raise(MySpace::BadIdentifier) do
|
12
|
+
obj = ms.get_albums(value)
|
13
|
+
end
|
12
14
|
end
|
15
|
+
assert_nothing_raised do
|
16
|
+
obj = ms.get_albums(USER_ID)
|
17
|
+
end
|
18
|
+
assert_equal(1, obj['count'])
|
19
|
+
albums = obj['albums']
|
20
|
+
assert_instance_of(Array, albums)
|
21
|
+
assert_equal(1, albums.length)
|
22
|
+
album = albums[0]
|
23
|
+
assert_instance_of(Hash, album)
|
24
|
+
album_id = album['id'].to_s
|
25
|
+
assert_equal('40418', album_id)
|
26
|
+
title = album['title']
|
27
|
+
assert_instance_of(String, title)
|
28
|
+
# oops this is culture specific
|
29
|
+
# assert_equal('My Photos', title)
|
13
30
|
end
|
14
|
-
assert_nothing_raised do
|
15
|
-
obj = @myspace.get_albums(USER_ID)
|
16
|
-
end
|
17
|
-
assert_equal(1, obj['count'])
|
18
|
-
albums = obj['albums']
|
19
|
-
assert_instance_of(Array, albums)
|
20
|
-
assert_equal(1, albums.length)
|
21
|
-
album = albums[0]
|
22
|
-
assert_instance_of(Hash, album)
|
23
|
-
album_id = album['id'].to_s
|
24
|
-
assert_equal('40418', album_id)
|
25
|
-
title = album['title']
|
26
|
-
assert_instance_of(String, title)
|
27
|
-
assert_equal('My Photos', title)
|
28
31
|
end
|
29
32
|
|
30
33
|
# {"albums"=>
|
@@ -62,33 +65,35 @@ class TC_Albums < Test::Unit::TestCase
|
|
62
65
|
|
63
66
|
def test_album
|
64
67
|
obj = nil
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
+
[@ms_offsite, @ms_onsite].each do |ms|
|
69
|
+
BAD_IDS.each do |value|
|
70
|
+
assert_raise(MySpace::BadIdentifier) do
|
71
|
+
obj = ms.get_album(value, ALBUM_ID)
|
72
|
+
end
|
68
73
|
end
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
74
|
+
BAD_IDS.each do |value|
|
75
|
+
assert_raise(MySpace::BadIdentifier) do
|
76
|
+
obj = ms.get_album(USER_ID, value)
|
77
|
+
end
|
73
78
|
end
|
79
|
+
assert_raise(MySpace::RestException) do
|
80
|
+
obj = ms.get_album(USER_ID, "1234")
|
81
|
+
end
|
82
|
+
assert_nothing_raised do
|
83
|
+
obj = ms.get_album(USER_ID, ALBUM_ID)
|
84
|
+
end
|
85
|
+
assert_equal(1, obj['count'])
|
86
|
+
photos = obj['photos']
|
87
|
+
assert_instance_of(Array, photos)
|
88
|
+
assert_equal(1, photos.length)
|
89
|
+
photo = photos[0]
|
90
|
+
assert_instance_of(Hash, photo)
|
91
|
+
photo_id = photo['id'].to_s
|
92
|
+
assert_equal(PHOTO_ID, photo_id)
|
93
|
+
caption = photo['caption']
|
94
|
+
assert_instance_of(String, caption)
|
95
|
+
assert_equal('', caption)
|
74
96
|
end
|
75
|
-
assert_raise(MySpace::RestException) do
|
76
|
-
obj = @myspace.get_album(USER_ID, "1234")
|
77
|
-
end
|
78
|
-
assert_nothing_raised do
|
79
|
-
obj = @myspace.get_album(USER_ID, ALBUM_ID)
|
80
|
-
end
|
81
|
-
assert_equal(1, obj['count'])
|
82
|
-
photos = obj['photos']
|
83
|
-
assert_instance_of(Array, photos)
|
84
|
-
assert_equal(1, photos.length)
|
85
|
-
photo = photos[0]
|
86
|
-
assert_instance_of(Hash, photo)
|
87
|
-
photo_id = photo['id'].to_s
|
88
|
-
assert_equal(PHOTO_ID, photo_id)
|
89
|
-
caption = photo['caption']
|
90
|
-
assert_instance_of(String, caption)
|
91
|
-
assert_equal('', caption)
|
92
97
|
end
|
93
98
|
|
94
99
|
# {"photos"=>
|
data/test/tc_friends.rb
CHANGED
@@ -6,29 +6,34 @@ class TC_Friends < Test::Unit::TestCase
|
|
6
6
|
|
7
7
|
def test_friends
|
8
8
|
obj = nil
|
9
|
-
BAD_IDS.each do |value|
|
10
|
-
assert_raise(MySpace::BadIdentifier) do
|
11
|
-
obj = @myspace.get_friends(value)
|
12
|
-
end
|
13
|
-
end
|
14
9
|
assert_raise(OAuth::Problem) do
|
15
|
-
obj = @
|
10
|
+
obj = @ms_offsite.get_friends("6221")
|
11
|
+
end
|
12
|
+
assert_raise(MySpace::PermissionDenied) do
|
13
|
+
obj = @ms_onsite.get_friends("6221")
|
16
14
|
end
|
17
|
-
|
18
|
-
|
15
|
+
[@ms_offsite, @ms_onsite].each do |ms|
|
16
|
+
BAD_IDS.each do |value|
|
17
|
+
assert_raise(MySpace::BadIdentifier) do
|
18
|
+
obj = ms.get_friends(value)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
assert_nothing_raised do
|
22
|
+
obj = ms.get_friends(USER_ID)
|
23
|
+
end
|
24
|
+
count = obj['count']
|
25
|
+
assert_instance_of(Fixnum, count)
|
26
|
+
assert_equal(2, count)
|
27
|
+
friends = obj['Friends']
|
28
|
+
assert_instance_of(Array, friends)
|
29
|
+
assert_equal(count, friends.length)
|
30
|
+
tom = friends[0]
|
31
|
+
name = tom['name']
|
32
|
+
assert_instance_of(String, name)
|
33
|
+
assert_equal('Tom', name)
|
34
|
+
userid = tom['userId'].to_s
|
35
|
+
assert_equal("6221", userid)
|
19
36
|
end
|
20
|
-
count = obj['count']
|
21
|
-
assert_instance_of(Fixnum, count)
|
22
|
-
assert_equal(1, count)
|
23
|
-
friends = obj['Friends']
|
24
|
-
assert_instance_of(Array, friends)
|
25
|
-
assert_equal(count, friends.length)
|
26
|
-
tom = friends[0]
|
27
|
-
name = tom['name']
|
28
|
-
assert_instance_of(String, name)
|
29
|
-
assert_equal('Tom', name)
|
30
|
-
userid = tom['userId'].to_s
|
31
|
-
assert_equal("6221", userid)
|
32
37
|
end
|
33
38
|
# {"topFriends"=>"http://api.myspace.com/v1/users/456073223/friends?list=top",
|
34
39
|
# "Friends"=>
|
@@ -53,30 +58,33 @@ class TC_Friends < Test::Unit::TestCase
|
|
53
58
|
|
54
59
|
def test_friendship
|
55
60
|
obj = nil
|
56
|
-
|
57
|
-
|
58
|
-
|
61
|
+
[@ms_offsite, @ms_onsite].each do |ms|
|
62
|
+
BAD_IDS.each do |value|
|
63
|
+
assert_raise(MySpace::BadIdentifier) do
|
64
|
+
obj = ms.get_friendship(USER_ID, value, "12341234", "456073223")
|
65
|
+
end
|
59
66
|
end
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
67
|
+
BAD_IDS.each do |value|
|
68
|
+
assert_raise(MySpace::BadIdentifier) do
|
69
|
+
obj = ms.get_friendship(USER_ID, 6221, value, "456073223")
|
70
|
+
end
|
64
71
|
end
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
72
|
+
BAD_IDS.each do |value|
|
73
|
+
assert_raise(MySpace::BadIdentifier) do
|
74
|
+
obj = ms.get_friendship(USER_ID, 6221, "12341234", value)
|
75
|
+
end
|
69
76
|
end
|
77
|
+
|
78
|
+
assert_nothing_raised do
|
79
|
+
obj = ms.get_friendship(USER_ID, 6221, "12341234", "456073223")
|
80
|
+
end
|
81
|
+
friendship = obj['friendship']
|
82
|
+
assert_instance_of(Array, friendship)
|
83
|
+
assert_equal(3, friendship.length)
|
84
|
+
assert_equal(true, friendship[0]['areFriends'])
|
85
|
+
assert_equal(false, friendship[1]['areFriends'])
|
86
|
+
assert_equal(true, friendship[2]['areFriends'])
|
70
87
|
end
|
71
|
-
assert_nothing_raised do
|
72
|
-
obj = @myspace.get_friendship(USER_ID, 6221, "12341234", "456073223")
|
73
|
-
end
|
74
|
-
friendship = obj['friendship']
|
75
|
-
assert_instance_of(Array, friendship)
|
76
|
-
assert_equal(3, friendship.length)
|
77
|
-
assert_equal(true, friendship[0]['areFriends'])
|
78
|
-
assert_equal(false, friendship[1]['areFriends'])
|
79
|
-
assert_equal(true, friendship[2]['areFriends'])
|
80
88
|
end
|
81
89
|
|
82
90
|
# {"friendship"=>
|
data/test/tc_profile.rb
CHANGED
@@ -10,21 +10,22 @@ class TC_Profile < Test::Unit::TestCase
|
|
10
10
|
def test_userid
|
11
11
|
user_id = nil
|
12
12
|
assert_nothing_raised do
|
13
|
-
user_id = @
|
13
|
+
user_id = @ms_offsite.get_userid
|
14
14
|
end
|
15
15
|
assert_instance_of(String, user_id)
|
16
16
|
assert_equal(USER_ID, user_id)
|
17
17
|
end
|
18
18
|
|
19
19
|
def test_profile
|
20
|
+
[@ms_offsite, @ms_onsite].each do |ms|
|
20
21
|
obj = nil
|
21
22
|
BAD_IDS.each do |value|
|
22
23
|
assert_raise(MySpace::BadIdentifier) do
|
23
|
-
obj =
|
24
|
+
obj = ms.get_profile(value)
|
24
25
|
end
|
25
26
|
end
|
26
27
|
assert_nothing_raised do
|
27
|
-
obj =
|
28
|
+
obj = ms.get_profile(USER_ID)
|
28
29
|
end
|
29
30
|
assert_instance_of(Hash, obj)
|
30
31
|
basic_profile = obj['basicprofile']
|
@@ -44,74 +45,63 @@ class TC_Profile < Test::Unit::TestCase
|
|
44
45
|
image = basic_profile['image']
|
45
46
|
assert_instance_of(String, image)
|
46
47
|
assert_equal("http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg", image)
|
48
|
+
end
|
47
49
|
end
|
48
50
|
|
49
51
|
def test_mood
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
52
|
+
[@ms_offsite, @ms_onsite].each do |ms|
|
53
|
+
obj = nil
|
54
|
+
BAD_IDS.each do |value|
|
55
|
+
assert_raise(MySpace::BadIdentifier) do
|
56
|
+
obj = ms.get_mood(value)
|
57
|
+
end
|
54
58
|
end
|
59
|
+
assert_nothing_raised do
|
60
|
+
obj = ms.get_mood(USER_ID)
|
61
|
+
end
|
62
|
+
assert_instance_of(Hash, obj)
|
63
|
+
mood = obj['mood']
|
64
|
+
assert_instance_of(String, mood)
|
65
|
+
# assert_equal("tested", mood)
|
66
|
+
# mood_image = obj['moodImageUrl']
|
67
|
+
# assert_instance_of(String, mood_image)
|
68
|
+
# assert_equal("http://x.myspacecdn.com/images/blog/moods/iBrads/confused.gif", mood_image)
|
55
69
|
end
|
56
|
-
assert_nothing_raised do
|
57
|
-
obj = @myspace.get_mood(USER_ID)
|
58
|
-
end
|
59
|
-
assert_instance_of(Hash, obj)
|
60
|
-
mood = obj['mood']
|
61
|
-
assert_instance_of(String, mood)
|
62
|
-
assert_equal("tested", mood)
|
63
|
-
mood_image = obj['moodImageUrl']
|
64
|
-
assert_instance_of(String, mood_image)
|
65
|
-
assert_equal("http://x.myspacecdn.com/images/blog/moods/iBrads/confused.gif", mood_image)
|
66
70
|
end
|
67
71
|
|
68
72
|
def test_status
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
+
[@ms_offsite, @ms_onsite].each do |ms|
|
74
|
+
obj = nil
|
75
|
+
BAD_IDS.each do |value|
|
76
|
+
assert_raise(MySpace::BadIdentifier) do
|
77
|
+
obj = ms.get_status(value)
|
78
|
+
end
|
73
79
|
end
|
74
|
-
end
|
75
|
-
assert_nothing_raised do
|
76
|
-
obj = @myspace.get_status(USER_ID)
|
77
|
-
end
|
78
|
-
assert_instance_of(Hash, obj)
|
79
|
-
status = obj['status']
|
80
|
-
assert_instance_of(String, status)
|
81
|
-
# assert_equal("Testing", status)
|
82
|
-
|
83
|
-
assert_nothing_raised do
|
84
|
-
@myspace.set_status(USER_ID, "Updating!")
|
85
|
-
end
|
86
|
-
|
87
|
-
assert_passes_eventually do |result|
|
88
80
|
assert_nothing_raised do
|
89
|
-
obj =
|
81
|
+
obj = ms.get_status(USER_ID)
|
90
82
|
end
|
91
83
|
assert_instance_of(Hash, obj)
|
92
84
|
status = obj['status']
|
93
85
|
assert_instance_of(String, status)
|
94
|
-
|
95
|
-
end
|
86
|
+
# assert_equal("Testing", status)
|
96
87
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
# obj = @myspace.get_status(USER_ID)
|
101
|
-
# end
|
102
|
-
# assert_instance_of(Hash, obj)
|
103
|
-
# status = obj['status']
|
104
|
-
# assert_instance_of(String, status)
|
105
|
-
# if status == "Updating!"
|
106
|
-
# passed = true
|
107
|
-
# break
|
108
|
-
# end
|
109
|
-
# sleep(0.1)
|
110
|
-
# end
|
111
|
-
# assert(passed)
|
88
|
+
assert_nothing_raised do
|
89
|
+
ms.set_status(USER_ID, "Updating!")
|
90
|
+
end
|
112
91
|
|
113
|
-
|
114
|
-
|
92
|
+
assert_passes_eventually do |result|
|
93
|
+
assert_nothing_raised do
|
94
|
+
obj = ms.get_status(USER_ID)
|
95
|
+
end
|
96
|
+
assert_instance_of(Hash, obj)
|
97
|
+
status = obj['status']
|
98
|
+
assert_instance_of(String, status)
|
99
|
+
result.passed = true if status == "Updating!"
|
100
|
+
end
|
101
|
+
|
102
|
+
assert_nothing_raised do
|
103
|
+
ms.set_status(USER_ID, "Testing")
|
104
|
+
end
|
115
105
|
end
|
116
106
|
end
|
117
107
|
end
|
data/test/tc_videos.rb
CHANGED
@@ -5,26 +5,28 @@ class TC_Videos < Test::Unit::TestCase
|
|
5
5
|
include MySpaceTest
|
6
6
|
|
7
7
|
def test_videos
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
[@ms_offsite, @ms_onsite].each do |ms|
|
9
|
+
obj = nil
|
10
|
+
BAD_IDS.each do |value|
|
11
|
+
assert_raise(MySpace::BadIdentifier) do
|
12
|
+
obj = ms.get_videos(value)
|
13
|
+
end
|
12
14
|
end
|
15
|
+
assert_nothing_raised do
|
16
|
+
obj = ms.get_videos(USER_ID)
|
17
|
+
end
|
18
|
+
assert_instance_of(Hash, obj)
|
19
|
+
assert_equal(1, obj['count'])
|
20
|
+
videos = obj['videos']
|
21
|
+
assert_instance_of(Array, videos)
|
22
|
+
assert_equal(1, videos.length)
|
23
|
+
video = videos[0]
|
24
|
+
video_id = video['id'].to_s
|
25
|
+
assert_equal(VIDEO_ID, video_id)
|
26
|
+
video_title = video['title']
|
27
|
+
assert_instance_of(String, video_title)
|
28
|
+
assert_equal(VIDEO_TITLE, video_title)
|
13
29
|
end
|
14
|
-
assert_nothing_raised do
|
15
|
-
obj = @myspace.get_videos(USER_ID)
|
16
|
-
end
|
17
|
-
assert_instance_of(Hash, obj)
|
18
|
-
assert_equal(1, obj['count'])
|
19
|
-
videos = obj['videos']
|
20
|
-
assert_instance_of(Array, videos)
|
21
|
-
assert_equal(1, videos.length)
|
22
|
-
video = videos[0]
|
23
|
-
video_id = video['id'].to_s
|
24
|
-
assert_equal(VIDEO_ID, video_id)
|
25
|
-
video_title = video['title']
|
26
|
-
assert_instance_of(String, video_title)
|
27
|
-
assert_equal(VIDEO_TITLE, video_title)
|
28
30
|
end
|
29
31
|
|
30
32
|
# {"videos"=>
|
@@ -70,26 +72,28 @@ class TC_Videos < Test::Unit::TestCase
|
|
70
72
|
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"}}
|
71
73
|
|
72
74
|
def test_video
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
75
|
+
[@ms_offsite, @ms_onsite].each do |ms|
|
76
|
+
obj = nil
|
77
|
+
BAD_IDS.each do |value|
|
78
|
+
assert_raise(MySpace::BadIdentifier) do
|
79
|
+
obj = ms.get_video(value, VIDEO_ID)
|
80
|
+
end
|
77
81
|
end
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
+
BAD_IDS.each do |value|
|
83
|
+
assert_raise(MySpace::BadIdentifier) do
|
84
|
+
obj = ms.get_video(USER_ID, value)
|
85
|
+
end
|
82
86
|
end
|
87
|
+
assert_nothing_raised do
|
88
|
+
obj = ms.get_video(USER_ID, VIDEO_ID)
|
89
|
+
end
|
90
|
+
assert_instance_of(Hash, obj)
|
91
|
+
video_id = obj['id'].to_s
|
92
|
+
assert_equal(VIDEO_ID, video_id)
|
93
|
+
video_title = obj['title']
|
94
|
+
assert_instance_of(String, video_title)
|
95
|
+
assert_equal(VIDEO_TITLE, video_title)
|
83
96
|
end
|
84
|
-
assert_nothing_raised do
|
85
|
-
obj = @myspace.get_video(USER_ID, VIDEO_ID)
|
86
|
-
end
|
87
|
-
assert_instance_of(Hash, obj)
|
88
|
-
video_id = obj['id'].to_s
|
89
|
-
assert_equal(VIDEO_ID, video_id)
|
90
|
-
video_title = obj['title']
|
91
|
-
assert_instance_of(String, video_title)
|
92
|
-
assert_equal(VIDEO_TITLE, video_title)
|
93
97
|
end
|
94
98
|
|
95
99
|
# {"totalrating"=>"0",
|
data/test/test_data.rb
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
module TestData
|
2
|
-
|
3
|
-
|
2
|
+
OFFSITE_KEY = '18bed0f4247a4f79bc9941bfed5b534c' unless const_defined?('OFFSITE_KEY')
|
3
|
+
OFFSITE_SECRET = '2e8ebdafbef844a5929086e659e4188c' unless const_defined?('OFFSITE_SECRET')
|
4
4
|
|
5
|
-
|
6
|
-
|
5
|
+
ONSITE_KEY = 'http://perisphere.1939worldsfair.com/app.xml' unless const_defined?('ONSITE_KEY')
|
6
|
+
ONSITE_SECRET = 'eda0c62773234093bea92645eea0493d' unless const_defined?('ONSITE_SECRET')
|
7
|
+
|
8
|
+
TOKEN = 'iELpLIedJM1N1oz4tbsME4v8bbGiqE8D2DGs1MHvqM9386xJAiBYV7kAbPsKH1LfvMCDNUxk4IDl3KvtKzbqFEZAKW90DK1pkNml0cK1xuU=' unless const_defined?('TOKEN')
|
9
|
+
SECRET = '8805c751977a4b1d8bbf0d9913ae5840' unless const_defined?('SECRET')
|
7
10
|
|
8
11
|
USER_ID = '456073223' unless const_defined?('USER_ID')
|
9
12
|
ALBUM_ID = '40418' unless const_defined?('ALBUM_ID')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: myspaceid-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christopher B. Baker
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-05-05 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -62,6 +62,7 @@ extra_rdoc_files:
|
|
62
62
|
- README.txt
|
63
63
|
- samples/rails/sample/public/robots.txt
|
64
64
|
files:
|
65
|
+
- Rakefile
|
65
66
|
- README.txt
|
66
67
|
- lib/myspace.rb
|
67
68
|
- lib/myspace
|
@@ -73,7 +74,6 @@ files:
|
|
73
74
|
- test/tc_profile.rb
|
74
75
|
- test/myspace_test.rb
|
75
76
|
- test/tc_videos.rb
|
76
|
-
- test/data.rb
|
77
77
|
- test/ts_alltests.rb
|
78
78
|
- test/tc_friends.rb
|
79
79
|
- test/tc_albums.rb
|
data/test/data.rb
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
module TestData
|
2
|
-
CONSUMER_KEY = '5796bcaafb2a4e48a94f4c1849bb2058' unless const_defined?('CONSUMER_KEY')
|
3
|
-
CONSUMER_SECRET = '5311c1fbe72b47298d4db5a098ce26d0' unless const_defined?('CONSUMER_SECRET')
|
4
|
-
|
5
|
-
TOKEN = 'BFKvhXYYsrP88LvZ+Yi3qJ2syRnUkwRUB2wfWL9jROL+MFVWOXSZfg7pi37DlCSkYoHtxLiapKMQRMXFh4mvJi9ze3t9lvKAMm85WMKPka0=' unless const_defined?('TOKEN')
|
6
|
-
SECRET = 'a062817544804c8da349e7621a8a26cb' unless const_defined?('SECRET')
|
7
|
-
USER_ID = '456073223' unless const_defined?('USER_ID')
|
8
|
-
end
|