dambalah-openaim 2009.03.24
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/README +13 -0
- data/lib/openaim.rb +7 -0
- data/lib/openaim/presence.rb +73 -0
- data/openaim.gemspec +21 -0
- metadata +65 -0
data/README
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
OpenAIM Ruby Library
|
2
|
+
|
3
|
+
Very basic. Only has Presence API for now. For more info on OpenAIM Presence API, check out http://dev.aol.com/aim/presence
|
4
|
+
|
5
|
+
Disclaimer: I don't have the need for more than the presence API now so I don't intend to add more than that functionality to the gem.
|
6
|
+
|
7
|
+
Example:
|
8
|
+
require 'rubygems'
|
9
|
+
require 'openaim'
|
10
|
+
|
11
|
+
presence = OpenAIM::Presence.new('YOUR OPEN AIM API KEY')
|
12
|
+
user = presence.get('aim_username')
|
13
|
+
puts "User is #{user.status}"
|
data/lib/openaim.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'xmlsimple'
|
3
|
+
require 'net/http'
|
4
|
+
|
5
|
+
module OpenAIM
|
6
|
+
|
7
|
+
PRESENCE_BASE_URL = 'http://api.oscar.aol.com/presence/'
|
8
|
+
|
9
|
+
class Presence
|
10
|
+
|
11
|
+
attr_reader :key
|
12
|
+
|
13
|
+
def initialize(key)
|
14
|
+
@key = key
|
15
|
+
end
|
16
|
+
|
17
|
+
def get(usernames)
|
18
|
+
usernames = [usernames] if usernames.class == String
|
19
|
+
|
20
|
+
url = PRESENCE_BASE_URL + "get?k=#{self.key}&f=xml"
|
21
|
+
usernames.each do |username|
|
22
|
+
url << "&t=#{username}"
|
23
|
+
end
|
24
|
+
|
25
|
+
xml_data = Net::HTTP.get_response(URI.parse(url)).body
|
26
|
+
|
27
|
+
data = XmlSimple.xml_in(xml_data)
|
28
|
+
|
29
|
+
users = []
|
30
|
+
data['data'][0]["users"][0]['user'].each do |item|
|
31
|
+
user = OpenAIM::User.new
|
32
|
+
user.aim_id = item["aimId"][0] if item["aimId"]
|
33
|
+
user.display_id = item["displayId"][0] if item["displayId"]
|
34
|
+
user.status = item["state"][0] if item["state"]
|
35
|
+
user.online_time = item["onlineTime"][0] if item["onlineTime"]
|
36
|
+
user.away_time = item["awayTime"][0] if item["awayTime"]
|
37
|
+
user.user_type = item["userType"][0] if item["userType"]
|
38
|
+
user.buddy_icon = item["buddyIcon"][0] if item["buddyIcon"]
|
39
|
+
user.presence_icon = item["presenceIcon"][0] if item["presenceIcon"]
|
40
|
+
users << user
|
41
|
+
end
|
42
|
+
|
43
|
+
if users.size == 1
|
44
|
+
users[0]
|
45
|
+
else
|
46
|
+
users
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
class User
|
54
|
+
attr_accessor :aim_id, :display_id, :status, :online_time, :away_time, :user_type, :buddy_icon, :presence_icon
|
55
|
+
|
56
|
+
def initialize
|
57
|
+
@aim_id = ''
|
58
|
+
@display_id = ''
|
59
|
+
@status = ''
|
60
|
+
@online_time = ''
|
61
|
+
@away_time = ''
|
62
|
+
@user_type = ''
|
63
|
+
@buddy_icon = ''
|
64
|
+
@presence_icon = ''
|
65
|
+
end
|
66
|
+
|
67
|
+
def is_online?
|
68
|
+
@status == 'online'
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
data/openaim.gemspec
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = "openaim"
|
3
|
+
s.version = "2009.03.24"
|
4
|
+
|
5
|
+
s.summary = "OpenAIM is a simple ruby library for OpenAIM API."
|
6
|
+
s.description = "Ruby library for openaim - only Presence API implemented so far."
|
7
|
+
s.platform = "ruby"
|
8
|
+
s.has_rdoc = true
|
9
|
+
s.author = "Luc Castera"
|
10
|
+
s.email = "luc.castera@gmail.com"
|
11
|
+
s.homepage = "http://github.com/dambalah/openaim"
|
12
|
+
s.require_path = "lib"
|
13
|
+
s.add_dependency('xml-simple', '>= 1.0.11')
|
14
|
+
|
15
|
+
s.files = [
|
16
|
+
"README",
|
17
|
+
"lib/openaim.rb",
|
18
|
+
"lib/openaim/presence.rb",
|
19
|
+
"openaim.gemspec"
|
20
|
+
]
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dambalah-openaim
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2009.03.24
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Luc Castera
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-03-21 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: xml-simple
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.0.11
|
24
|
+
version:
|
25
|
+
description: Ruby library for openaim - only Presence API implemented so far.
|
26
|
+
email: luc.castera@gmail.com
|
27
|
+
executables: []
|
28
|
+
|
29
|
+
extensions: []
|
30
|
+
|
31
|
+
extra_rdoc_files: []
|
32
|
+
|
33
|
+
files:
|
34
|
+
- README
|
35
|
+
- lib/openaim.rb
|
36
|
+
- lib/openaim/presence.rb
|
37
|
+
- openaim.gemspec
|
38
|
+
has_rdoc: true
|
39
|
+
homepage: http://github.com/dambalah/openaim
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
|
43
|
+
require_paths:
|
44
|
+
- lib
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: "0"
|
50
|
+
version:
|
51
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: "0"
|
56
|
+
version:
|
57
|
+
requirements: []
|
58
|
+
|
59
|
+
rubyforge_project:
|
60
|
+
rubygems_version: 1.2.0
|
61
|
+
signing_key:
|
62
|
+
specification_version: 2
|
63
|
+
summary: OpenAIM is a simple ruby library for OpenAIM API.
|
64
|
+
test_files: []
|
65
|
+
|