kotsms 0.1.1

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. 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: