esendex4soap 0.6.1 → 0.7.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.
- data/VERSION +1 -1
- data/esendex4soap.gemspec +1 -1
- data/lib/esendex4soap.rb +49 -10
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.7.0
|
data/esendex4soap.gemspec
CHANGED
data/lib/esendex4soap.rb
CHANGED
@@ -1,9 +1,45 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
require 'savon'
|
3
3
|
require 'log4r'
|
4
|
-
require 'wtf_lang'
|
4
|
+
#require 'wtf_lang'
|
5
|
+
require 'api_smith'
|
6
|
+
|
7
|
+
module LanguageTools
|
8
|
+
class DetectLanguageDotCom
|
9
|
+
include APISmith::Client
|
10
|
+
base_uri "http://ws.detectlanguage.com"
|
11
|
+
endpoint "0.2"
|
12
|
+
|
13
|
+
def initialize(api_key)
|
14
|
+
@api_key = api_key
|
15
|
+
add_query_options! :key => @api_key
|
16
|
+
end
|
17
|
+
|
18
|
+
def detect(text)
|
19
|
+
(post "detect", :extra_query => {:q => text})["data"]["detections"].first["language"]
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
class AlchemyLanguage
|
25
|
+
include APISmith::Client
|
26
|
+
base_uri "http://access.alchemyapi.com/"
|
27
|
+
endpoint "calls/text"
|
28
|
+
|
29
|
+
def initialize(api_key)
|
30
|
+
@api_key = api_key
|
31
|
+
add_query_options! :outputMode => 'json', :apikey => @api_key
|
32
|
+
end
|
33
|
+
|
34
|
+
def detect(text)
|
35
|
+
(post "TextGetLanguage", :extra_query => {:text => text})["language"]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
5
40
|
|
6
41
|
module Esendex
|
42
|
+
|
7
43
|
class Client
|
8
44
|
include Log4r
|
9
45
|
INBOX_SERVICE_WSDL = 'https://www.esendex.com/secure/messenger/soap/InboxService.asmx?wsdl'
|
@@ -17,8 +53,11 @@ module Esendex
|
|
17
53
|
@username = args.shift
|
18
54
|
@password = args.shift
|
19
55
|
@account_reference = args.shift
|
56
|
+
# @detectlanguage_api_key, @alchemyapi_api_key = args.shift, args.shift
|
20
57
|
@sent_message_ids, @sent_message_statuses = [], {}
|
21
58
|
|
59
|
+
@language = LanguageTools::DetectLanguageDotCom.new(args.shift)
|
60
|
+
|
22
61
|
Savon.configure do |config|
|
23
62
|
config.raise_errors = true
|
24
63
|
config.log = false
|
@@ -28,24 +67,24 @@ module Esendex
|
|
28
67
|
|
29
68
|
@log = Logger.new "#{self.class.name}"
|
30
69
|
@log.outputters = Outputter.stdout
|
31
|
-
@log.level = ERROR
|
70
|
+
@log.level = DEBUG #ERROR
|
32
71
|
|
33
72
|
@message_kind = String.new
|
34
73
|
|
35
74
|
end
|
36
75
|
|
37
76
|
def send_message(recipient, text, originator, validityperiod)
|
38
|
-
@log.debug "TO:#{recipient} text size:#{text.size} in #{text
|
77
|
+
@log.debug "TO:#{recipient} text size:#{text.size} in #{@language.detect(text)} language"
|
39
78
|
#TODO: handle other languages as well
|
40
|
-
unless text
|
41
|
-
sms_parts = text.scan(/.{
|
42
|
-
|
79
|
+
unless @language.detect(text) == 'ru'
|
80
|
+
sms_parts = text.scan(/.{1,160}/mu)
|
81
|
+
@log.debug "#{text[sms_parts.to_s.size..text.size]}"
|
43
82
|
@message_kind = 'Text'
|
44
83
|
@log.debug "#{@message_kind}:#{text.scan(/./mu)} = #{text.size}. #{sms_parts.size} part/s."
|
45
84
|
sms(recipient, sms_parts, originator, validityperiod)
|
46
85
|
else
|
47
|
-
sms_parts = text.scan(/.{70}/mu)
|
48
|
-
|
86
|
+
sms_parts = text.scan(/.{1,70}/mu)
|
87
|
+
@log.debug "#{text[sms_parts.to_s.size..text.size]}"
|
49
88
|
@message_kind = 'Unicode'
|
50
89
|
@log.debug "#{@message_kind}:#{text.scan(/./mu)} != #{text.size}. #{sms_parts.size} part/s."
|
51
90
|
sms(recipient, sms_parts, originator, validityperiod)
|
@@ -120,5 +159,5 @@ module Esendex
|
|
120
159
|
|
121
160
|
end #module Esendex
|
122
161
|
|
123
|
-
#sms = Esendex::Client.new 'username', 'password', 'account_reference', '
|
124
|
-
#sms.send_message 'PHONENUMBER', 'message in any language'
|
162
|
+
#sms = Esendex::Client.new 'username', 'password', 'account_reference', 'api_key for detectlanguage'
|
163
|
+
#sms.send_message 'PHONENUMBER', 'message in any language', 'FROM', 'expire int hours'
|