Ruby4Skype 0.2.3 → 0.3.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.
- data/LICENSE +3 -0
- data/README +14 -0
- data/Rakefile +67 -0
- data/lib/skypeapi.rb +570 -509
- data/lib/skypeapi/application.rb +79 -77
- data/lib/skypeapi/call.rb +243 -230
- data/lib/skypeapi/chat.rb +162 -172
- data/lib/skypeapi/chatmember.rb +26 -28
- data/lib/skypeapi/chatmessage.rb +81 -65
- data/lib/skypeapi/error.rb +8 -0
- data/lib/skypeapi/event.rb +25 -26
- data/lib/skypeapi/filetransfer.rb +47 -28
- data/lib/skypeapi/group.rb +72 -73
- data/lib/skypeapi/menuitem.rb +44 -44
- data/lib/skypeapi/message.rb +39 -41
- data/lib/skypeapi/object.rb +246 -82
- data/lib/skypeapi/os/etc.rb +48 -98
- data/lib/skypeapi/os/mac.rb +92 -4
- data/lib/skypeapi/os/notifier.rb +31 -0
- data/lib/skypeapi/os/window_event_queue.rb +198 -0
- data/lib/skypeapi/os/window_messagehandler.rb +120 -0
- data/lib/skypeapi/os/windows.rb +170 -306
- data/lib/skypeapi/profile.rb +190 -120
- data/lib/skypeapi/sharefunctions.rb +31 -23
- data/lib/skypeapi/sms.rb +87 -67
- data/lib/skypeapi/user.rb +159 -99
- data/lib/skypeapi/version.rb +3 -3
- data/lib/skypeapi/voicemail.rb +59 -52
- data/spec/matcher_be_boolean.rb +10 -0
- data/spec/skypeapi/application_spec.rb +76 -0
- data/spec/skypeapi/chat_spec.rb +356 -0
- data/spec/skypeapi/chatmember_spec.rb +42 -0
- data/spec/skypeapi/chatmessage_spec.rb +89 -0
- data/spec/skypeapi/event_spec.rb +31 -0
- data/spec/skypeapi/filetransfer_spec.rb +67 -0
- data/spec/skypeapi/group_spec.rb +16 -0
- data/spec/skypeapi/menuitem_spec.rb +37 -0
- data/spec/skypeapi/os/windows_spec.rb +305 -0
- data/spec/skypeapi/profile_spec.rb +22 -0
- data/spec/skypeapi/user_spec.rb +25 -0
- data/spec/skypeapi_spec.rb +528 -0
- metadata +32 -12
- data/lib/skypeapi/os/timer.rb +0 -108
data/lib/skypeapi/profile.rb
CHANGED
@@ -1,127 +1,197 @@
|
|
1
1
|
module SkypeAPI
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
#end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
getter :PSTNBalance, 'PSTN_BALANCE' do |str|
|
34
|
-
str._int
|
35
|
-
end
|
36
|
-
getter :PSTNBalanceCurrency, 'PSTN_BALANCE_CURRENCY'
|
37
|
-
getter :Fullname, 'FULLNAME'
|
38
|
-
getter :Birthday, 'BIRTHDAY' do |yyyymmdd|
|
39
|
-
(yyyymmdd =~ /(\d\d\d\d)(\d\d)(\d\d)/) ? Date.new($1.to_i,$2.to_i,$3.to_i) : nil
|
40
|
-
end
|
41
|
-
getter :Sex, 'SEX'
|
42
|
-
getter :Languages, 'LANGUAGES' do |str|
|
43
|
-
str.split(' ')
|
44
|
-
end
|
45
|
-
getter :Country, 'COUNTRY' do |str|
|
46
|
-
str.empty? ? str : str.split(' ', 2)[0]
|
47
|
-
end
|
48
|
-
getter :IPCountry, 'IPCOUNTRY'
|
49
|
-
getter :Province, 'PROVINCE'
|
50
|
-
getter :City, 'CITY'
|
51
|
-
getter :PhoneHome, 'PHONE_HOME'
|
52
|
-
getter :PhoneOffice, 'PHONE_OFFICE'
|
53
|
-
getter :PhoneMobile, 'PHONE_MOBILE'
|
54
|
-
getter :Homepage, 'HOMEPAGE'
|
55
|
-
getter :About, 'ABOUT'
|
56
|
-
getter :MoodText, 'MOOD_TEXT'
|
57
|
-
getter :RichMoodText, 'RICH_MOOD_TEXT'
|
58
|
-
getter :Timezone, 'TIMEZONE' do |str|
|
59
|
-
str._int
|
60
|
-
end
|
61
|
-
getter :CallApplyCF, 'CALL_APPLY_CF' do |str|
|
62
|
-
str._flag
|
63
|
-
end
|
64
|
-
getter :CallNoanswerTimeout, 'CALL_NOANSWER_TIMEOUT' do |str|
|
65
|
-
str._int
|
66
|
-
end
|
67
|
-
getter :CallForwardRules, 'CALL_FORWARD_RULES' do |str|
|
68
|
-
cfs = str.split ' '
|
69
|
-
cfs = cfs.map do |cf|
|
70
|
-
cf = cf.split ','
|
71
|
-
cf[2] = @@skypeApi.user(cf[2]) unless cf[2] =~ /^\+/
|
72
|
-
[cf[0].to_i, cf[1].to_i, (cf[2] =~ /^\+/ ? cf[2] : @@skypeApi.user(cf[2]))]
|
73
|
-
end
|
74
|
-
end
|
75
|
-
getter :CallSendToVM, 'CALL_SEND_TO_VM' do |str|
|
76
|
-
str._flag
|
77
|
-
end
|
78
|
-
getter :SMSValidatedNumbers, 'SMS_VALIDATED_NUMBERS' do |str|
|
79
|
-
str.split(', ')
|
80
|
-
end
|
81
|
-
|
82
|
-
def setFullname(name) invoke_set('FULLNAME', name); end
|
83
|
-
def setBirthday(dateOrYear=nil, month=nil, day=nil)
|
84
|
-
if dateOrYear.nil?
|
85
|
-
val = ''
|
86
|
-
else
|
87
|
-
val = dateOrYear.class == Date ? dateOrYear.strftime('%Y%m%d') : sprintf("%04d%02d%02d",dateOrYear,month,day)
|
88
|
-
end
|
89
|
-
invoke_set('BIRTHDAY', val)
|
90
|
-
end
|
91
|
-
def setSex(sex) invoke_set('SEX', sex); end
|
92
|
-
def setLanguages(*langs)
|
93
|
-
invoke_set('LANGUAGES', langs.join(' '))
|
94
|
-
end
|
95
|
-
def setCountry(iso) invoke_set('COUNTRY', iso); end
|
96
|
-
#def setIpcountry(val) invoke_set('IPCOUNTRY', val); end
|
97
|
-
def setProvince(province) invoke_set('PROVINCE', province); end
|
98
|
-
def setCity(city) invoke_set('CITY', city); end
|
99
|
-
def setPhoneHome(numbers) invoke_set('PHONE_HOME', numbers); end
|
100
|
-
def setPhoneOffice(numbers) invoke_set('PHONE_OFFICE', numbers); end
|
101
|
-
def setPhoneMobile(numbers) invoke_set('PHONE_MOBILE', numbers); end
|
102
|
-
def setHomepage(url) invoke_set('HOMEPAGE', url); end
|
103
|
-
def setAbout(text) invoke_set('ABOUT', text); end
|
104
|
-
def setMoodText(text) invoke_set('MOOD_TEXT', text); end
|
105
|
-
def setRichMoodText(text) invoke_set('RICH_MOOD_TEXT', text); end
|
106
|
-
def setTimezone(timezone) invoke_set('TIMEZONE', timezone); end
|
107
|
-
def setCallApplyCF(flag)
|
108
|
-
invoke_set('CALL_APPLY_CF', flag._str)
|
2
|
+
class Profile < AbstractObject
|
3
|
+
OBJECT_NAME = "PROFILE"
|
4
|
+
|
5
|
+
def initialize(id=nil)
|
6
|
+
super nil
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.new
|
10
|
+
super nil
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.notified msg
|
14
|
+
if msg =~ /^([^ ]+) (.*)$/m
|
15
|
+
property = P2M[$1]
|
16
|
+
value = V2O[property] ? V2O[property].call($2) : $2
|
17
|
+
instance = new
|
18
|
+
instance.notified instance, property,value #if @@instance[self][id]
|
19
|
+
|
20
|
+
#p [property,value,instance,@notify]
|
21
|
+
#if @notify[nil]
|
22
|
+
# @notify[nil][nil].call instance, property, value if @notify[nil][nil]
|
23
|
+
# @notify[nil][value].call instance, property if @notify[nil][value]
|
24
|
+
#end
|
25
|
+
#if @notify[property]
|
26
|
+
# @notify[property][nil].call instance, value if @notify[property][nil]
|
27
|
+
# @notify[property][value].call instance if @notify[property][value]
|
28
|
+
#end
|
109
29
|
end
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
30
|
+
end
|
31
|
+
|
32
|
+
def get_pstn_balance() parse :pstn_balance, invoke_get("PSTN_BALANCE") end
|
33
|
+
def_parser(:pstn_balance){|str| str._int}
|
34
|
+
alias getPSTNBalance get_pstn_balance
|
35
|
+
|
36
|
+
def get_pstn_balance_currency() invoke_get("PSTN_BALANCE_CURRENCY") end
|
37
|
+
def_parser(:pstn_balance_currency)
|
38
|
+
alias getPSTNBalanceCurrency get_pstn_balance_currency
|
39
|
+
|
40
|
+
def get_fullname() invoke_get("FULLNAME") end
|
41
|
+
def_parser(:fullname)
|
42
|
+
alias getFullname get_fullname
|
43
|
+
|
44
|
+
def get_birthday() parse :birthday, invoke_get("BIRTHDAY") end
|
45
|
+
def_parser(:birthday){|yyyymmdd| (yyyymmdd =~ /(\d\d\d\d)(\d\d)(\d\d)/) ? Date.new($1.to_i,$2.to_i,$3.to_i) : nil}
|
46
|
+
alias getBirthday get_birthday
|
47
|
+
|
48
|
+
def get_sex() invoke_get("SEX") end
|
49
|
+
def_parser(:sex)
|
50
|
+
alias getSex get_sex
|
51
|
+
|
52
|
+
def get_languages() parse :languages, invoke_get("LANGUAGES") end
|
53
|
+
def_parser(:languages){|str| str.split(' ')}
|
54
|
+
alias getLanguages get_languages
|
55
|
+
|
56
|
+
def get_country() parse :country, invoke_get("COUNTRY") end
|
57
|
+
def_parser(:country){|str| str.empty? ? str : str.split(' ', 2)[0]}
|
58
|
+
alias getCountry get_country
|
59
|
+
|
60
|
+
def get_ip_country() invoke_get("IPCOUNTRY") end
|
61
|
+
def_parser(:ip_country,"IPCOUNTRY")
|
62
|
+
alias getIPCountry get_ip_country
|
63
|
+
|
64
|
+
def get_province() invoke_get("PROVINCE") end
|
65
|
+
def_parser(:province)
|
66
|
+
alias getProvince get_province
|
67
|
+
|
68
|
+
def get_city() invoke_get("CITY") end
|
69
|
+
def_parser(:city)
|
70
|
+
alias getCity get_city
|
71
|
+
|
72
|
+
def get_phone_home() invoke_get("PHONE_HOME") end
|
73
|
+
def_parser(:phone_home)
|
74
|
+
alias getPhoneHome get_phone_home
|
75
|
+
|
76
|
+
def get_phone_office() invoke_get("PHONE_OFFICE") end
|
77
|
+
def_parser(:phone_office)
|
78
|
+
alias getPhoneOffice get_phone_office
|
79
|
+
|
80
|
+
def get_phone_mobile() invoke_get("PHONE_MOBILE") end
|
81
|
+
def_parser(:phone_mobile)
|
82
|
+
alias getPhoneMobile get_phone_mobile
|
83
|
+
|
84
|
+
def get_homepage() invoke_get("HOMEPAGE") end
|
85
|
+
def_parser(:homepage)
|
86
|
+
alias getHomepage get_homepage
|
87
|
+
|
88
|
+
def get_about() invoke_get("ABOUT") end
|
89
|
+
def_parser(:about)
|
90
|
+
alias getAbout get_about
|
91
|
+
|
92
|
+
def get_mood_text() invoke_get("MOOD_TEXT") end
|
93
|
+
def_parser(:mood_text)
|
94
|
+
alias getMoodText get_mood_text
|
95
|
+
|
96
|
+
def get_rich_mood_text() invoke_get("RICH_MOOD_TEXT") end
|
97
|
+
def_parser(:rich_mood_text)
|
98
|
+
alias getRichMoodText get_rich_mood_text
|
99
|
+
|
100
|
+
def get_timezone() parse :timezone, invoke_get("TIMEZONE") end
|
101
|
+
def_parser(:timezone){|str| str._int}
|
102
|
+
alias getTimezone get_timezone
|
103
|
+
|
104
|
+
def get_call_apply_cf() parse :call_apply_cf, invoke_get("CALL_APPLY_CF") end
|
105
|
+
def_parser(:call_apply_c_f){|str| str._flag}
|
106
|
+
alias getCallApplyCF get_call_apply_cf
|
107
|
+
|
108
|
+
def get_call_noanswer_timeout() parse :call_noanswer_timeout, invoke_get("CALL_NOANSWER_TIMEOUT") end
|
109
|
+
def_parser(:call_noanswer_timeout){|str| str._int}
|
110
|
+
alias getCallNoanswerTimeout get_call_noanswer_timeout
|
111
|
+
|
112
|
+
def get_call_forward_rules() parse :call_forward_rules, invoke_get("CALL_FORWARD_RULES") end
|
113
|
+
def_parser(:call_forward_rules){|str|
|
114
|
+
cfs = str.split ' '
|
115
|
+
cfs = cfs.map{ |cf|
|
116
|
+
cf = cf.split ','
|
117
|
+
cf[2] = SkypeAPI::User.new(cf[2]) unless cf[2] =~ /^\+/
|
118
|
+
[cf[0].to_i, cf[1].to_i, (cf[2] =~ /^\+/ ? cf[2] : SkypeAPI::User.new(cf[2]))]
|
119
|
+
}
|
120
|
+
}
|
121
|
+
alias getCallForwardRules get_call_forward_rules
|
122
|
+
|
123
|
+
def get_call_send_to_vm() parse :call_send_to_vm, invoke_get("CALL_SEND_TO_VM") end
|
124
|
+
def_parser(:call_send_to_vm,"CALL_SEND_TO_VM"){|str| str._flag}
|
125
|
+
alias getCallSendToVM get_call_send_to_vm
|
126
|
+
|
127
|
+
def get_sms_validated_numbers() parse :sms_validated_numbers, invoke_get("SMS_VALIDATED_NUMBERS") end
|
128
|
+
def_parser(:sms_validated_numbers){|str| str.split(', ')}
|
129
|
+
alias getSMSValidatedNumbers get_sms_validated_numbers
|
130
|
+
|
131
|
+
def setFullname(name) invoke_set('FULLNAME', name); end
|
132
|
+
def setBirthday(dateOrYear=nil, month=nil, day=nil)
|
133
|
+
if dateOrYear.nil?
|
134
|
+
val = ''
|
135
|
+
else
|
136
|
+
val = dateOrYear.class == Date ? dateOrYear.strftime('%Y%m%d') : sprintf("%04d%02d%02d",dateOrYear,month,day)
|
137
|
+
end
|
138
|
+
invoke_set('BIRTHDAY', val)
|
139
|
+
end
|
140
|
+
def setSex(sex) invoke_set('SEX', sex); end
|
141
|
+
def setLanguages(*langs)
|
142
|
+
invoke_set('LANGUAGES', langs.join(' '))
|
143
|
+
end
|
144
|
+
def setCountry(iso) invoke_set('COUNTRY', iso); end
|
145
|
+
#def setIpcountry(val) invoke_set('IPCOUNTRY', val); end
|
146
|
+
def setProvince(province) invoke_set('PROVINCE', province); end
|
147
|
+
def setCity(city) invoke_set('CITY', city); end
|
148
|
+
def setPhoneHome(numbers) invoke_set('PHONE_HOME', numbers); end
|
149
|
+
def setPhoneOffice(numbers) invoke_set('PHONE_OFFICE', numbers); end
|
150
|
+
def setPhoneMobile(numbers) invoke_set('PHONE_MOBILE', numbers); end
|
151
|
+
def setHomepage(url) invoke_set('HOMEPAGE', url); end
|
152
|
+
def setAbout(text) invoke_set('ABOUT', text); end
|
153
|
+
def setMoodText(text) invoke_set('MOOD_TEXT', text); end
|
154
|
+
def setRichMoodText(text) invoke_set('RICH_MOOD_TEXT', text); end
|
155
|
+
def setTimezone(timezone) invoke_set('TIMEZONE', timezone); end
|
156
|
+
def setCallApplyCF(flag)
|
157
|
+
invoke_set('CALL_APPLY_CF', flag._str)
|
158
|
+
end
|
159
|
+
def setCallNoanswerTimeout(sec) invoke_set('CALL_NOANSWER_TIMEOUT', sec); end
|
160
|
+
def setCallForwardRules(*rules)
|
161
|
+
if rules[0] == nil
|
162
|
+
invoke_set('CALL_FORWARD_RULES', '')
|
163
|
+
else
|
164
|
+
rules.map! do |rule|
|
165
|
+
rule.join ','
|
120
166
|
end
|
167
|
+
rules = rules.join ' '
|
168
|
+
invoke_set('CALL_FORWARD_RULES', rules)
|
121
169
|
end
|
122
|
-
def setCallSendToVM(flag)
|
123
|
-
invoke_set('CALL_SEND_TO_VM', flag._str)
|
124
|
-
end
|
125
170
|
end
|
171
|
+
def setCallSendToVM(flag)
|
172
|
+
invoke_set('CALL_SEND_TO_VM', flag._str)
|
173
|
+
end
|
174
|
+
|
175
|
+
alias set_fullname setFullname
|
176
|
+
alias set_birthday setBirthday
|
177
|
+
alias set_sex setSex
|
178
|
+
alias set_languages setLanguages
|
179
|
+
alias set_country setCountry
|
180
|
+
#alias set_ipcountry setIpcountry
|
181
|
+
alias set_province setProvince
|
182
|
+
alias set_city setCity
|
183
|
+
alias set_phone_home setPhoneHome
|
184
|
+
alias set_phone_office setPhoneOffice
|
185
|
+
alias set_phone_mobile setPhoneMobile
|
186
|
+
alias set_homepage setHomepage
|
187
|
+
alias set_about setAbout
|
188
|
+
alias set_mood_text setMoodText
|
189
|
+
alias set_rich_mood_text setRichMoodText
|
190
|
+
alias set_timezone setTimezone
|
191
|
+
alias set_call_apply_cf setCallApplyCF
|
192
|
+
alias set_call_noanswer_timeout setCallNoanswerTimeout
|
193
|
+
alias set_call_forward_rules setCallForwardRules
|
194
|
+
alias set_call_send_to_vm setCallSendToVM
|
195
|
+
|
126
196
|
end
|
127
197
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class NilClass
|
1
|
+
class NilClass #:nodoc: all
|
2
2
|
def _flag
|
3
3
|
nil
|
4
4
|
end
|
@@ -16,7 +16,7 @@ class NilClass
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
class String
|
19
|
+
class String #:nodoc: all
|
20
20
|
def _flag
|
21
21
|
case self
|
22
22
|
when /^(TRUE)|(ON)$/i
|
@@ -37,7 +37,7 @@ class String
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
class TrueClass
|
40
|
+
class TrueClass #:nodoc: all
|
41
41
|
def _swi
|
42
42
|
"ON"
|
43
43
|
end
|
@@ -47,7 +47,7 @@ class TrueClass
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
class FalseClass
|
50
|
+
class FalseClass #:nodoc: all-
|
51
51
|
def _swi
|
52
52
|
"OFF"
|
53
53
|
end
|
@@ -59,21 +59,22 @@ end
|
|
59
59
|
|
60
60
|
module SkypeAPI
|
61
61
|
|
62
|
-
module ShareFunctions
|
62
|
+
module ShareFunctions #:nodoc: all
|
63
63
|
#private
|
64
64
|
|
65
|
-
#ex
|
66
65
|
#invoke_echo "CREATE APPLICATION #{@appName}"
|
67
66
|
#CREATE APPLICATION #{@appName} -> CREATE APPLICATION #{@appName}
|
68
67
|
def invoke_echo cmd
|
69
68
|
begin
|
70
69
|
invoke(cmd) == cmd
|
71
|
-
|
72
|
-
|
73
|
-
|
70
|
+
rescue SkypeAPI::APIError => e
|
71
|
+
e.backtrace.shift
|
72
|
+
e.backtrace.shift
|
73
|
+
raise e
|
74
74
|
end
|
75
|
-
|
76
|
-
|
75
|
+
end
|
76
|
+
|
77
|
+
#invoke_one "GET CHATMESSAGE #{@id} BODY", "CHATMESSAGE #{@id} BODY"
|
77
78
|
#GET CHATMESSAGE #{@id} BODY -> CHATMESSAGE #{@id} BODY (.+)
|
78
79
|
def invoke_one cmd, regExp=cmd
|
79
80
|
regExp.gsub!(/[\^$.\\\[\]*+{}?|()]/) do |char|
|
@@ -81,13 +82,14 @@ module SkypeAPI
|
|
81
82
|
end
|
82
83
|
begin
|
83
84
|
invoke(cmd) =~ /^#{regExp} (.*)$/m
|
84
|
-
|
85
|
-
|
86
|
-
|
85
|
+
rescue SkypeAPI::APIError => e
|
86
|
+
e.backtrace.shift
|
87
|
+
e.backtrace.shift
|
88
|
+
raise e
|
87
89
|
end
|
90
|
+
return $1
|
88
91
|
end
|
89
92
|
|
90
|
-
#ex
|
91
93
|
#invoke_get("GET USER #{@handle} SkypeOut")
|
92
94
|
#GET USER #{@handle} SkypeOut -> USER #{@handle} SkypeOut (.+)
|
93
95
|
def invoke_get prop, value=nil
|
@@ -97,10 +99,12 @@ module SkypeAPI
|
|
97
99
|
end
|
98
100
|
begin
|
99
101
|
invoke(cmd) =~ /^#{reg} (.*)$/m
|
100
|
-
|
101
|
-
|
102
|
-
|
102
|
+
rescue SkypeAPI::APIError => e
|
103
|
+
e.backtrace.shift
|
104
|
+
e.backtrace.shift
|
105
|
+
raise e
|
103
106
|
end
|
107
|
+
return $1
|
104
108
|
end
|
105
109
|
|
106
110
|
def invoke_set prop,value=nil
|
@@ -108,8 +112,10 @@ module SkypeAPI
|
|
108
112
|
reg = "#{defined?(self.class::OBJECT_NAME) ? self.class::OBJECT_NAME + ' ' : ''}#{@id ? @id.to_s + ' ' : ''}#{prop}"
|
109
113
|
begin
|
110
114
|
str = invoke_one cmd, reg
|
111
|
-
rescue
|
112
|
-
|
115
|
+
rescue SkypeAPI::APIError => e
|
116
|
+
e.backtrace.shift
|
117
|
+
e.backtrace.shift
|
118
|
+
raise e
|
113
119
|
end
|
114
120
|
if self.class == Module
|
115
121
|
self::V2O[prop] ? self::V2O[prop].call(str) : str
|
@@ -118,7 +124,7 @@ module SkypeAPI
|
|
118
124
|
end
|
119
125
|
end
|
120
126
|
|
121
|
-
#true�����Ԃ��Ȃ��B������ςȂ��B����ȊO�̕Ԃ茌������悤�Ȃ̂͂�invoke�Ŏ�������B
|
127
|
+
#true�����Ԃ��Ȃ��B������ςȂ��B����ȊO�̕Ԃ茌������悤�Ȃ̂͂�invoke�Ŏ�������B
|
122
128
|
def invoke_alter prop, value=nil
|
123
129
|
cmd = "ALTER #{defined?(self.class::OBJECT_NAME) ? self.class::OBJECT_NAME + ' ' : ''}#{@id ? @id.to_s + ' ' : ''}#{prop}#{value ? ' '+value.to_s : '' }"
|
124
130
|
#res = "ALTER #{defined?(self.class::OBJECT_NAME) ? self.class::OBJECT_NAME + ' ' : ''}#{@id ? @id.to_s + ' ' : ''}#{prop}"
|
@@ -128,8 +134,10 @@ module SkypeAPI
|
|
128
134
|
#res = "ALTER #{defined?(self.class::OBJECT_NAME) ? self.class::OBJECT_NAME + ' ' : ''}#{prop}"
|
129
135
|
begin
|
130
136
|
invoke(cmd)# == res
|
131
|
-
rescue
|
132
|
-
|
137
|
+
rescue SkypeAPI::APIError => e
|
138
|
+
e.backtrace.shift
|
139
|
+
e.backtrace.shift
|
140
|
+
raise e
|
133
141
|
end
|
134
142
|
true
|
135
143
|
end
|
data/lib/skypeapi/sms.rb
CHANGED
@@ -1,84 +1,104 @@
|
|
1
1
|
module SkypeAPI
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
res = @@skypeApi.invoke "CREATE SMS #{type} #{target}"
|
2
|
+
class SMS< AbstractObject
|
3
|
+
OBJECT_NAME = "SMS"
|
4
|
+
class << self
|
5
|
+
def create target, type="OUTGOING"
|
6
|
+
res = SkypeAPI.invoke "CREATE SMS #{type} #{target}"
|
8
7
|
res =~ /^SMS (\d+) STATUS (.+)$/
|
9
8
|
id, status = $1, $2
|
10
9
|
return id, status
|
11
10
|
end
|
12
|
-
|
13
|
-
def
|
11
|
+
|
12
|
+
def createConfirmationCodeRequest target
|
14
13
|
create target, 'CONFIRMATION_CODE_REQUEST'
|
15
14
|
end
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
def self.delete id
|
22
|
-
@@skypeApi.invoke_echo "DELETE SMS #{id}"
|
23
|
-
end
|
24
|
-
|
25
|
-
getter :Body, 'BODY'
|
26
|
-
getter :Type, 'TYPE'
|
27
|
-
getter :Status, 'STATUS'
|
28
|
-
getter :FailureReason, 'FAILUREREASON'
|
29
|
-
getter :FailedUnseen?, 'IS_FAILED_UNSEEN'
|
30
|
-
getter :Timestamp, 'TIMESTAMP' do |str|
|
31
|
-
if str.empty? then nil else Time.at(str.to_i) end
|
32
|
-
end
|
33
|
-
getter :Price, 'PRICE' do |str|
|
34
|
-
str.to_i
|
35
|
-
end
|
36
|
-
getter :PricePrecision, 'PRICE_PRECISION' do |str|
|
37
|
-
str.to_i
|
38
|
-
end
|
39
|
-
getter :PriceCurrency, 'PRICE_CURRENCY'
|
40
|
-
getter :ReplyToNumber, 'REPLY_TO_NUMBER'
|
41
|
-
getter :TargetNumbers, 'TARGET_NUMBERS' do |str|
|
42
|
-
str.split(', ')
|
43
|
-
end
|
44
|
-
getter :TargetStatuses, 'TARGET_STATUSES' do |str|
|
45
|
-
hash = Hash.new
|
46
|
-
str.split(', ').each do |lump|
|
47
|
-
pstn, status = lump.split('=')
|
48
|
-
hash[pstn] = status
|
49
|
-
end
|
50
|
-
hash
|
15
|
+
alias create_confirmation_code_request createConfirmationCodeRequest
|
16
|
+
|
17
|
+
def delete id
|
18
|
+
SkypeAPI.invoke_echo "DELETE SMS #{id}"
|
51
19
|
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def get_body() invoke_get("BODY") end
|
23
|
+
def_parser(:body)
|
24
|
+
alias getBody get_body
|
25
|
+
|
26
|
+
def get_type() invoke_get("TYPE") end
|
27
|
+
def_parser(:type)
|
28
|
+
alias getType get_type
|
29
|
+
|
30
|
+
def get_status() invoke_get("STATUS") end
|
31
|
+
def_parser(:status)
|
32
|
+
alias getStatus get_status
|
33
|
+
|
34
|
+
def get_failure_reason() invoke_get("FAILUREREASON") end
|
35
|
+
def_parser(:failure_reason,"FAILUREREASON")
|
36
|
+
alias getFailureReason get_failure_reason
|
37
|
+
|
38
|
+
def get_is_failed_unseen?() invoke_get("IS_FAILED_UNSEEN") end
|
39
|
+
def_parser(:is_failed_unseen)
|
40
|
+
alias getIsFailedUnseen? get_is_failed_unseen?
|
41
|
+
|
42
|
+
def get_timestamp() parse :timestamp, invoke_get("TIMESTAMP") end
|
43
|
+
def_parser(:timestamp){|str| str.empty? ? nil : Time.at(str.to_i)}
|
44
|
+
alias getTimestamp get_timestamp
|
45
|
+
|
46
|
+
def get_price() parse :price, invoke_get("PRICE") end
|
47
|
+
def_parser(:price){|str| str.to_i}
|
48
|
+
alias getPrice get_price
|
49
|
+
|
50
|
+
def get_price_precision() parse :price_precision, invoke_get("PRICE_PRECISION") end
|
51
|
+
def_parser(:price_precision){|str| str.to_i}
|
52
|
+
alias getPricePrecision get_price_precision
|
53
|
+
|
54
|
+
def get_price_currency() invoke_get("PRICE_CURRENCY") end
|
55
|
+
def_parser(:price_currency)
|
56
|
+
alias getPriceCurrency get_price_currency
|
57
|
+
|
58
|
+
def get_reply_to_number() invoke_get("REPLY_TO_NUMBER") end
|
59
|
+
def_parser(:reply_to_number)
|
60
|
+
alias getReplyToNumber get_reply_to_number
|
61
|
+
|
62
|
+
def get_target_numbers() parse :target_numbers, invoke_get("TARGET_NUMBERS") end
|
63
|
+
def_parser(:target_numbers){|str| str.split(', ')}
|
64
|
+
alias getTargetNumbers get_target_numbers
|
65
|
+
|
66
|
+
def get_target_statuses() parse :target_statuses, invoke_get("TARGET_STATUSES") end
|
67
|
+
def_parser(:target_statuses){|str|
|
68
|
+
hash = Hash.new
|
69
|
+
str.split(', ').each{ |lump|
|
70
|
+
pstn, status = lump.split('=')
|
71
|
+
hash[pstn] = status
|
72
|
+
}
|
73
|
+
hash
|
74
|
+
}
|
75
|
+
alias getTargetStatuses get_target_statuses
|
76
|
+
|
77
|
+
#send?
|
78
|
+
def get_chunk noOfChunks
|
79
|
+
res = invoke "CHUNK #{noOfChunks}"
|
80
|
+
return noOfChunks, res
|
81
|
+
end
|
82
|
+
alias getChunk get_chunk
|
52
83
|
|
53
|
-
|
54
|
-
|
55
|
-
return noOfChunks, res
|
56
|
-
end
|
84
|
+
def set_body(text) invoke_set "BODY", text end
|
85
|
+
alias setBody set_body
|
57
86
|
|
58
|
-
|
59
|
-
invoke_set "BODY", text
|
60
|
-
end
|
87
|
+
def send() invoke_alter "SEND" end
|
61
88
|
|
62
|
-
|
63
|
-
invoke_alter "SEND"
|
64
|
-
end
|
89
|
+
def delete() invoke_echo "DLETE SMS #{@id}" end
|
65
90
|
|
66
|
-
|
67
|
-
|
68
|
-
|
91
|
+
def set_target_number *nums
|
92
|
+
nums = nums[0] if nums[0].class == Array
|
93
|
+
invoke_set "TARGET_NUMBERS", nums.join(', ')
|
94
|
+
end
|
95
|
+
alias setTargetNumber set_target_number
|
69
96
|
|
70
|
-
|
71
|
-
|
72
|
-
invoke_set "TARGET_NUMBERS", nums.join(', ')
|
73
|
-
end
|
97
|
+
def set_seen() invoke_set "SEEN" end
|
98
|
+
alias setSeen set_seen
|
74
99
|
|
75
|
-
|
76
|
-
|
77
|
-
end
|
100
|
+
def set_reply_to_number(pstn) invoke_set "REPLY_TO_NUMBER", pstn end
|
101
|
+
alias setReplyToNumber set_reply_to_number
|
78
102
|
|
79
|
-
def setReplyToNumber pstn
|
80
|
-
invoke_set "REPLY_TO_NUMBER", pstn
|
81
|
-
end
|
82
|
-
end
|
83
103
|
end
|
84
104
|
end
|