TWSMS 0.2.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.
Files changed (3) hide show
  1. data/README +29 -0
  2. data/lib/twsms.rb +127 -0
  3. metadata +47 -0
data/README ADDED
@@ -0,0 +1,29 @@
1
+ = TWSMS
2
+
3
+ http://rubyforge.org/projects/smsender/
4
+
5
+ == Description
6
+
7
+ The TWSMS library is used for send SMS messages.
8
+ But, before you use, you must have an account of TWSMS.
9
+ The link of TWSMS: http://www.twsms.com
10
+
11
+ == Dependencies
12
+
13
+ * ruby 1.8.2
14
+ * cgi
15
+ * net/http
16
+
17
+ == Examples
18
+
19
+ Please read the file named: Example
20
+
21
+ == Authors
22
+
23
+ Copyright (c) 2007 by Hsu Shih Chung (zusocfc@gmail.com)
24
+
25
+ This library coded with Ruby!!
26
+
27
+ == License
28
+
29
+ This library is distributed under the Apache 2.0. Please read the LICENSE file.
data/lib/twsms.rb ADDED
@@ -0,0 +1,127 @@
1
+ # Rename to TWSMSender
2
+ =begin
3
+ == Information ==
4
+ === Copyright: Apache 2.0
5
+ === Author: CFC < zusocfc@gmail.com >
6
+ === Prog. Name: TWSMS lib
7
+ === Version: 0.2.0
8
+ === Please read README file to get more information.
9
+ =end
10
+
11
+ %w|uri cgi net/http|.each{|r| require r}
12
+ SEND_URL = "http://api.twsms.com/send_sms.php?"
13
+ QUERY_URL = "http://api.twsms.com/query_sms.php?"
14
+
15
+ class TWSMS
16
+ def initialize(username, password)
17
+ @uname, @upwd = username, password
18
+ # Before renamed, its name is: @send_options
19
+ @send_options = {
20
+ :type => "now",
21
+ :popup => "",
22
+ :mo => "Y".upcase,
23
+ :vldtime => "86400",
24
+ :modate => "",
25
+ :dlvtime => "",
26
+ :wapurl => "",
27
+ :encoding => "big5"
28
+ }
29
+
30
+ @query_options = {
31
+ :type => "now",
32
+ :msgid => "",
33
+ :monumber => "",
34
+ :sdate => "",
35
+ :edate => ""
36
+ }
37
+
38
+ # Before renamed, its name is: @@errors
39
+ @@send_errors = {
40
+ -1.to_s.to_sym => "Send failed",
41
+ -2.to_s.to_sym => "Username or password is invalid",
42
+ -3.to_s.to_sym => "Popup tag error",
43
+ -4.to_s.to_sym => "Mo tag error",
44
+ -5.to_s.to_sym => "Encoding tag error",
45
+ -6.to_s.to_sym => "Mobile tag error",
46
+ -7.to_s.to_sym => "Message tag error",
47
+ -8.to_s.to_sym => "vldtime tag error",
48
+ -9.to_s.to_sym => "dlvtime tag error",
49
+ -10.to_s.to_sym => "You have no point",
50
+ -11.to_s.to_sym => "Your account has been blocked",
51
+ -12.to_s.to_sym => "Type tag error",
52
+ -13.to_s.to_sym => "You can't send SMS message by dlvtime tag if you use wap push",
53
+ -14.to_s.to_sym => "Source IP has no permission",
54
+ -99.to_s.to_sym => "System error!! Please contact the administrator, thanks!!"
55
+ }
56
+
57
+ @@query_errors = {
58
+ 0.to_s.to_sym => "Message already been sent or reserving message has been deleted",
59
+ -1.to_s.to_sym => "Could not find the message id or ",
60
+ -2.to_s.to_sym => "Username or password is invalid",
61
+ -3.to_s.to_sym => "The reserving message does send yet",
62
+ -4.to_s.to_sym => "Type tag error",
63
+ -5.to_s.to_sym => "The target mobile did not callback",
64
+ -6.to_s.to_sym => "Failed on sent message to the operator",
65
+ -7.to_s.to_sym => "No short code",
66
+ -8.to_s.to_sym => "No return message",
67
+ -9.to_s.to_sym => "sdate or edate setting error",
68
+ -10.to_s.to_sym => "No record of ",
69
+ -11.to_s.to_sym => "Your account has been blocked",
70
+ -12.to_s.to_sym => "Your message maybe invalid",
71
+ }
72
+
73
+ @other_values = {}
74
+ end
75
+
76
+ def sendSMS(mobile, message, opt={})
77
+ args = []
78
+ @send_options[:mobile], @send_options[:message] = mobile, message
79
+ @send_options.merge!(opt).each{|k, v| args << k.to_s + "=" + CGI::escape(v.to_s)}
80
+ url = SEND_URL + "username=" + @uname + "&password=" + @upwd + "&" + args.join("&")
81
+ self.check_send_val
82
+ self.check_send_resp(Net::HTTP.get(URI.parse(url)))
83
+ end
84
+
85
+ def querySMS()
86
+ url ||= QUERY_URL + "username=" + @uname + "&password=" + @upwd
87
+ url += "&type=" + @query_options[:type].to_s
88
+ url += "&msgid=" + @query_options[:msgid].to_s
89
+ url += "&monumber=" + @query_options[:monumber].to_s
90
+ url += "&sdate=" + @query_options[:sdate].to_s
91
+ url += "&edate=" + @query_options[:edate].to_s
92
+ self.check_query_resp(Net::HTTP.get(URI.parse(url)))
93
+ end
94
+
95
+ def setMessageId(msgid)
96
+ @query_options[:msgid] = msgid unless msgid.nil?
97
+ (puts "You did not give me the message id!!!";exit) if msgid.nil?
98
+ end
99
+
100
+ def check_query_resp(resp)
101
+ resp = resp.split("=")[1].split(",")[0]
102
+ if resp.to_s == "0"
103
+ puts "==========", "Query succeed! The result: " + @@query_errors[resp.to_s.to_sym]
104
+ else
105
+ puts "==========", "Error!! Message: ", @@query_errors[resp.to_s.to_sym]
106
+ end
107
+ end
108
+
109
+ def check_send_resp(resp)
110
+ # Before rename, its name is chk_errors
111
+ resp = resp.split("=")[1].split(",")[0]
112
+ if @@send_errors.has_key?(resp.to_s.to_sym)
113
+ puts "==========", "Error!! Message: ", @@send_errors[resp.to_s.to_sym]
114
+ else
115
+ puts "==========", "Message has been send! Your message id is: " + resp.to_s
116
+ @query_options[:msgid] = resp.to_s
117
+ end
118
+ end
119
+
120
+ def check_send_val
121
+ @send_options[:dlvtime] = "" unless @send_options[:type] == "dlv"
122
+ @send_options[:wapurl] = "" if @send_options[:type] != ("push" && "upush")
123
+ @send_options[:mo] = @send_options[:mo].upcase
124
+ end
125
+
126
+ protected :check_send_val, :check_send_resp, :check_query_resp
127
+ end
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.2
3
+ specification_version: 1
4
+ name: TWSMS
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.2.0
7
+ date: 2007-06-18 00:00:00 +08:00
8
+ summary: "\xB4\xA3\xA8\xD1\xA4@\xAD\xD3\xA4\xE2\xBE\xF7\xC2\xB2\xB0T\xB5o\xB0e\xAA\xBA\xA8\xE7\xA6\xA1\xAEw(TWSMS\xAA\xA9\xA5\xBB)"
9
+ require_paths:
10
+ - lib
11
+ email: zusocfc@gmail.com
12
+ homepage: http://zusocfc.blogspot.com
13
+ rubyforge_project:
14
+ description:
15
+ autorequire:
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: false
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - CFC
31
+ files:
32
+ - lib/twsms.rb
33
+ - README
34
+ test_files: []
35
+
36
+ rdoc_options: []
37
+
38
+ extra_rdoc_files:
39
+ - README
40
+ executables: []
41
+
42
+ extensions: []
43
+
44
+ requirements: []
45
+
46
+ dependencies: []
47
+