kotsms 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/kotsms.rb +83 -0
  3. metadata +59 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 20ab1aa57f09abbb4ee7d84f73648feba01ea077
4
+ data.tar.gz: 1e0b78b12435721f05e2331be8949f09ccf8ace8
5
+ SHA512:
6
+ metadata.gz: b1f8daab910a58e2b1d7dad2dfca290ecc1ed0abc36b16e5ef8577b3054fb44baaabbf3838ff2fa56c431edb507c6d090ee93c0cd128a72611101e50112969ce
7
+ data.tar.gz: 9f4bcf3a3893ad37c834403545a791e132b676b84e0e8795da421f05430bc72b61f540887ff5e116a5e51225ae5260b4447fc80b5d2542da9443dd3b0e8fdc45
data/lib/kotsms.rb ADDED
@@ -0,0 +1,83 @@
1
+ require "net/http"
2
+ require "uri"
3
+ require "iconv"
4
+
5
+ class Kotsms
6
+ SMS_ENDPOINT = "http://202.39.48.216/kotsmsapi-1.php"
7
+ BULK_SMS_ENDPOINT = "http://202.39.48.216/kotsmsapi-2.php"
8
+ BALANCE_ENDPOOINT = "http://mail2sms.com.tw/memberpoint.php"
9
+ STATUS_ENDPOOINT = "http://mail2sms.com.tw/msgstatus.php"
10
+
11
+ def initialize(username, password)
12
+ login(username, password)
13
+ end
14
+
15
+ def login(username, password)
16
+ @username = username
17
+ @password = password
18
+ true
19
+ end
20
+
21
+ def deliver(dst, content, options={})
22
+ endpoint = case (options[:mode].to_sym rescue nil)
23
+ when nil, :bit
24
+ SMS_ENDPOINT
25
+ when :bulk
26
+ BULK_SMS_ENDPOINT
27
+ else
28
+ raise StandardError.new "Bad delivering mode!"
29
+ end
30
+ uri = URI.parse(endpoint)
31
+
32
+
33
+ uri.query = URI.encode_www_form({
34
+ username: @username,
35
+ password: @password,
36
+ dstaddr: dst,
37
+ smbody: Iconv.new("big5", "utf-8").iconv(content),
38
+ dlvtime: (options[:dlvtime] rescue 0),
39
+ vldtime: (options[:vldtime] rescue nil),
40
+ response: (options[:response] rescue nil)
41
+ })
42
+
43
+ response = Net::HTTP.get_response(uri)
44
+
45
+ parse_response(response.body)["kmsgid"].to_i
46
+ end
47
+
48
+ def deliver_bulk(dst, content, options={})
49
+ deliver(dst, content, options.merge(mode: :bulk))
50
+ end
51
+
52
+ def balance
53
+ uri = URI.parse(BALANCE_ENDPOOINT)
54
+ uri.query = URI.encode_www_form({
55
+ username: @username,
56
+ password: @password
57
+ })
58
+
59
+ response = Net::HTTP.get_response(uri)
60
+
61
+ response.body.to_i
62
+ end
63
+
64
+ def status(kmsgid)
65
+ uri = URI.parse(STATUS_ENDPOOINT)
66
+ uri.query = URI.encode_www_form({
67
+ username: @username,
68
+ password: @password,
69
+ kmsgid: kmsgid
70
+ })
71
+
72
+ response = Net::HTTP.get_response(uri)
73
+
74
+ parse_response(response.body)["statusstr"]
75
+ end
76
+
77
+ private
78
+
79
+ def parse_response(response_body)
80
+ array = URI::decode_www_form(response_body)
81
+ Hash[array]
82
+ end
83
+ end
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kotsms
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - CrBoy
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: iconv
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ description: This gem wraps the web API of SMS King (www.kotsms.com.tw) for Rubyists.
28
+ email: crboy@crboy.net
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/kotsms.rb
34
+ homepage: https://github.com/CrBoy/kotsms-gem
35
+ licenses:
36
+ - MIT
37
+ metadata: {}
38
+ post_install_message:
39
+ rdoc_options: []
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ required_rubygems_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ requirements: []
53
+ rubyforge_project:
54
+ rubygems_version: 2.2.2
55
+ signing_key:
56
+ specification_version: 4
57
+ summary: API wrapper for SMS King (www.kotsms.com.tw)
58
+ test_files: []
59
+ has_rdoc: