rfetion 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.5
1
+ 0.3.6
data/lib/contact.rb ADDED
File without changes
@@ -0,0 +1,11 @@
1
+ class Contact
2
+ attr_reader :uri, :mobile_no, :nickname, :impresa, :nickname
3
+
4
+ def initialize(uri, attrs)
5
+ @uri = uri
6
+ @mobile_no = attrs["mobile-no"]
7
+ @nickname = attrs["nickname"]
8
+ @impresa = attrs["impresa"]
9
+ @nickname = attrs["nickname"]
10
+ end
11
+ end
@@ -38,7 +38,7 @@ class Fetion
38
38
 
39
39
  def Fetion.send_sms_to_friends(mobile_no, password, friends, content, level = Logger::INFO)
40
40
  friends = Array(friends)
41
- friends.collect! {|friend| friend.to_i}
41
+ friends.collect! {|friend| friend.to_s}
42
42
  fetion = Fetion.new
43
43
  fetion.logger_level = level
44
44
  fetion.mobile_no = mobile_no
@@ -48,9 +48,9 @@ class Fetion
48
48
  fetion.get_buddy_list
49
49
  fetion.get_contacts_info
50
50
  fetion.contacts.each do |contact|
51
- if friends.include? contact[:mobile_no].to_i
52
- fetion.send_sms(contact[:sip], content)
53
- elsif friends.any? { |friend| contact[:sip].index(friend) }
51
+ if friends.include? contact.mobile_no.to_s
52
+ fetion.send_sms(contact.uri, content)
53
+ elsif friends.any? { |friend| contact.uri.index(friend) }
54
54
  fetion.send_sms
55
55
  end
56
56
  end
@@ -81,6 +81,7 @@ class Fetion
81
81
  raise FetionException.new('Fetion Error: No ssic found in cookie.') unless response['set-cookie'] =~ /ssic=(.*);/
82
82
 
83
83
  @ssic = $1
84
+ @logger.debug response.body
84
85
  doc = REXML::Document.new(response.body)
85
86
  results = doc.root
86
87
  @status_code = results.attributes["status-code"]
@@ -163,8 +164,11 @@ class Fetion
163
164
  response = curl_exec(next_url, @ssic, FETION_SIPP)
164
165
  raise FetionException.new("Fetion Error: Get contacts info error") unless response.is_a? Net::HTTPSuccess
165
166
 
166
- response.body.scan(/uri="([^"]+)".*?mobile-no="([^"]+)"/).each do |contact|
167
- @contacts << {:sip => contact[0], :mobile_no => contact[1]}
167
+ response.body.scan(%r{<events>.*?</events>}).each do |events|
168
+ doc = REXML::Document.new(events)
169
+ doc.elements.each("events/event/results/contacts/contact") do |contact|
170
+ @contacts << Contact.new(contact.attributes["uri"], contact.elements.first.attributes)
171
+ end
168
172
  end
169
173
  @logger.debug @contacts.inspect
170
174
  @logger.info "fetion get contacts info success"
data/lib/rfetion.rb CHANGED
@@ -6,3 +6,4 @@ require 'rexml/document'
6
6
  require 'digest/sha1'
7
7
  require 'logger'
8
8
  require 'rfetion/fetion'
9
+ require 'rfetion/contact'
data/rfetion.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rfetion}
8
- s.version = "0.3.5"
8
+ s.version = "0.3.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Richard Huang"]
12
- s.date = %q{2009-10-25}
12
+ s.date = %q{2009-10-29}
13
13
  s.description = %q{rfetion is a ruby gem for China Mobile fetion service that you can send SMS free.}
14
14
  s.email = %q{flyerhzm@gmail.com}
15
15
  s.executables = ["rfetion", "rfetion"]
@@ -21,8 +21,10 @@ Gem::Specification.new do |s|
21
21
  "Rakefile",
22
22
  "VERSION",
23
23
  "bin/rfetion",
24
+ "lib/contact.rb",
24
25
  "lib/rfetion.rb",
25
26
  "lib/rfetion/command.rb",
27
+ "lib/rfetion/contact.rb",
26
28
  "lib/rfetion/fetion.rb",
27
29
  "rfetion.gemspec"
28
30
  ]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rfetion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-25 00:00:00 +08:00
12
+ date: 2009-10-29 00:00:00 +08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -36,8 +36,10 @@ files:
36
36
  - Rakefile
37
37
  - VERSION
38
38
  - bin/rfetion
39
+ - lib/contact.rb
39
40
  - lib/rfetion.rb
40
41
  - lib/rfetion/command.rb
42
+ - lib/rfetion/contact.rb
41
43
  - lib/rfetion/fetion.rb
42
44
  - rfetion.gemspec
43
45
  has_rdoc: true