Ruby4Skype 0.2.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/lib/skypeapi/application.rb +415 -0
- data/lib/skypeapi/call.rb +220 -0
- data/lib/skypeapi/chat.rb +186 -0
- data/lib/skypeapi/chatmember.rb +33 -0
- data/lib/skypeapi/chatmessage.rb +64 -0
- data/lib/skypeapi/event.rb +46 -0
- data/lib/skypeapi/filetransfer.rb +31 -0
- data/lib/skypeapi/group.rb +81 -0
- data/lib/skypeapi/menuitem.rb +64 -0
- data/lib/skypeapi/message.rb +46 -0
- data/lib/skypeapi/object.rb +122 -0
- data/lib/skypeapi/os.rb +423 -0
- data/lib/skypeapi/profile.rb +124 -0
- data/lib/skypeapi/sharefunctions.rb +123 -0
- data/lib/skypeapi/sms.rb +84 -0
- data/lib/skypeapi/user.rb +110 -0
- data/lib/skypeapi/voicemail.rb +60 -0
- data/lib/skypeapi.rb +569 -0
- metadata +64 -0
data/lib/skypeapi/sms.rb
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
module SkypeAPI
|
2
|
+
module Object
|
3
|
+
class SMS< AbstractObject
|
4
|
+
OBJECT_NAME = "SMS"
|
5
|
+
|
6
|
+
def self.create target, type="OUTGOING"
|
7
|
+
res = @@skypeApi.sendCMD "CREATE SMS #{type} #{target}"
|
8
|
+
res =~ /^SMS (\d+) STATUS (.+)$/
|
9
|
+
id, status = $1, $2
|
10
|
+
return id, status
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.createConfirmationCodeRequest target
|
14
|
+
create target, 'CONFIRMATION_CODE_REQUEST'
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.createConfirmationCodeSubmit target
|
18
|
+
create target, 'CONFIRMATION_CODE_SUBMIT'
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.delete id
|
22
|
+
@@skypeApi.sendEcho "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
|
+
str.to_i
|
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
|
51
|
+
end
|
52
|
+
|
53
|
+
def getChunk noOfChunks
|
54
|
+
res = send"CHUNK #{noOfChunks}"
|
55
|
+
return noOfChunks, res
|
56
|
+
end
|
57
|
+
|
58
|
+
def setBody text
|
59
|
+
sendSet "BODY", text
|
60
|
+
end
|
61
|
+
|
62
|
+
def send
|
63
|
+
sendAlter "SEND"
|
64
|
+
end
|
65
|
+
|
66
|
+
def delete
|
67
|
+
sendEcho "DLETE SMS #{@id}"
|
68
|
+
end
|
69
|
+
|
70
|
+
def setTargetNumber *nums
|
71
|
+
nums = nums[0] if nums[0].class == Array
|
72
|
+
sendSet "TARGET_NUMBERS", nums.join(', ')
|
73
|
+
end
|
74
|
+
|
75
|
+
def setSeen
|
76
|
+
sendSet "SEEN"
|
77
|
+
end
|
78
|
+
|
79
|
+
def setReplyToNumber pstn
|
80
|
+
sendSet "REPLY_TO_NUMBER", pstn
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
module SkypeAPI
|
2
|
+
module Object
|
3
|
+
class User < AbstractObject
|
4
|
+
OBJECT_NAME = "USER"
|
5
|
+
|
6
|
+
getter :Handle, 'HANDLE'
|
7
|
+
getter :Fullname, 'FULLNAME'
|
8
|
+
getter :Birthday,'BIRTHDAY' do |yyyymmdd|
|
9
|
+
(yyyymmdd =~ /(\d\d\d\d)(\d\d)(\d\d)/) ? Date.new($1.to_i,$2.to_i,$3.to_i) : nil
|
10
|
+
end
|
11
|
+
getter :Sex, 'SEX'
|
12
|
+
getter :Language, 'LANGUAGE' do |str|
|
13
|
+
str.empty? ? ['',''] : str.split(' ',2)
|
14
|
+
end
|
15
|
+
getter :Country, 'COUNTRY' do |str|
|
16
|
+
str.empty? ? ['',''] : str.split(' ',2)
|
17
|
+
end
|
18
|
+
getter :Province, 'PROVINCE'
|
19
|
+
getter :City, 'CITY'
|
20
|
+
getter :PhoneHome, 'PHONE_HOME'
|
21
|
+
getter :PhoneOffice, 'PHONE_OFFICE'
|
22
|
+
getter :PhoneMobile, 'PHONE_MOBILE'
|
23
|
+
getter :Homepage, 'HOMEPAGE'
|
24
|
+
getter :About, 'ABOUT'
|
25
|
+
getter :HasCallEquipment, 'HASCALLEQUIPMENT' do |str|
|
26
|
+
str._flag
|
27
|
+
end
|
28
|
+
getter :IsVideoCapable, 'IS_VIDEO_CAPABLE' do |str|
|
29
|
+
str._flag
|
30
|
+
end
|
31
|
+
getter :IsVoicemailCapable, 'IS_VOICEMAIL_CAPABLE' do |str|
|
32
|
+
str._flag
|
33
|
+
end
|
34
|
+
getter :BuddyStatus, 'BUDDYSTATUS' do |str|
|
35
|
+
str._int
|
36
|
+
end
|
37
|
+
getter :IsAuthorized, 'ISAUTHORIZED' do |str|
|
38
|
+
str._flag
|
39
|
+
end
|
40
|
+
getter :IsBlocked, 'ISBLOCKED' do |str|
|
41
|
+
str._flag
|
42
|
+
end
|
43
|
+
getter :OnlineStatus, 'ONLINESTATUS'
|
44
|
+
#getter :skypeOut, 'SkypeOut'
|
45
|
+
#getter :skypeMe, 'SKYPEME'
|
46
|
+
getter :LastOnlineTimestamp, 'LASTONLINETIMESTAMP' do |str|
|
47
|
+
str._int
|
48
|
+
end
|
49
|
+
getter :CanLeaveVM, 'CAN_LEAVE_VM' do |str|
|
50
|
+
str._flag
|
51
|
+
end
|
52
|
+
getter :SpeedDial, 'SPEEDDIAL' do |str|
|
53
|
+
str._int
|
54
|
+
end
|
55
|
+
getter :ReceivedAuthRequest, 'RECEIVEDAUTHREQUEST'
|
56
|
+
getter :MoodText, 'MOOD_TEXT'
|
57
|
+
getter :RichMoodText, 'RICH_MOOD_TEXT'
|
58
|
+
getter :Aliases, 'ALIASES'
|
59
|
+
getter :Timezone, 'TIMEZONE' do |str|
|
60
|
+
str._int
|
61
|
+
end
|
62
|
+
getter :IsCFActive, 'IS_CF_ACTIVE' do |str|
|
63
|
+
str._flag
|
64
|
+
end
|
65
|
+
getter :NrofAuthedBuddies, 'NROF_AUTHED_BUDDIES' do |str|
|
66
|
+
str._int
|
67
|
+
end
|
68
|
+
getter :DisplayName, 'DISPLAYNAME'
|
69
|
+
|
70
|
+
def getAvatar(path)
|
71
|
+
sendCMD("GET USER #{@id} AVATAR 1 #{path}") =~ /^USER #{@id} AVATAR \d+ (.+)$/
|
72
|
+
if $1
|
73
|
+
return $1
|
74
|
+
else
|
75
|
+
return nil
|
76
|
+
end
|
77
|
+
end
|
78
|
+
notice :Avatar, 'AVATAR 1'
|
79
|
+
|
80
|
+
def setBuddyStatus(num, msg="")
|
81
|
+
raise ArgumentErorr unless num.to_i == 1 or num.to_i == 2
|
82
|
+
sendSet('BUDDYSTATUS',"#{num} #{msg}")
|
83
|
+
end
|
84
|
+
|
85
|
+
def setIsBlocked (val) sendSet('ISBLOCKED',val._str); end
|
86
|
+
|
87
|
+
def setIsAuthorized (val) sendSet('ISAUTHORIZED',val._str); end
|
88
|
+
|
89
|
+
def setSpeedDial (val) sendSet('SPEEDDIAL',val); end
|
90
|
+
|
91
|
+
def setDisplayName (val) sendSet('DISPLAYNAME',val);end
|
92
|
+
|
93
|
+
=begin
|
94
|
+
def addContactList msg=""
|
95
|
+
val = sendSet("BUDDYSTATUS","2 #{msg}")
|
96
|
+
val == 2 or val == 3
|
97
|
+
end
|
98
|
+
|
99
|
+
def addedContactList?
|
100
|
+
val = getBuddyStatus
|
101
|
+
val == 3 or val == 2
|
102
|
+
end
|
103
|
+
|
104
|
+
def delContactList
|
105
|
+
sendSet("BUDDYSTATUS","1") == 1
|
106
|
+
end
|
107
|
+
=end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
module SkypeAPI
|
2
|
+
module Object
|
3
|
+
class VoiceMail < AbstractObject
|
4
|
+
OBJECT_NAME = "VOICEMAIL"
|
5
|
+
|
6
|
+
def self.create target
|
7
|
+
@@skypeApi.sendCMD "CALLVOICEMAIL #{target}"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.open id
|
11
|
+
@@skypeApi.sendCMD "OPEN VOICEMAIL #{id}"
|
12
|
+
end
|
13
|
+
|
14
|
+
getter :Type, 'TYPE'
|
15
|
+
getter :Partner, 'PARTNER_HANDLE' do |str|
|
16
|
+
@@skypeApi.user str
|
17
|
+
end
|
18
|
+
getter :PartnerDispname, 'PARTNER_DISPNAME'
|
19
|
+
getter :Status, 'STATUS'
|
20
|
+
getter :FailureReason, 'FAILUREREASON'
|
21
|
+
#getter :Subject, 'SUBJECT'
|
22
|
+
getter :Timestamp, 'TIMESTAMP' do |str|
|
23
|
+
str.to_i
|
24
|
+
end
|
25
|
+
getter :Duration, 'DURATION' do |str|
|
26
|
+
str.to_i
|
27
|
+
end
|
28
|
+
getter :AllowedDuration, 'ALLOWED_DURATION' do |str|
|
29
|
+
str.to_i
|
30
|
+
end
|
31
|
+
|
32
|
+
#def alter action
|
33
|
+
# @@skypeApi.sendCMD "ALTER VOICEMAIL #{id} #{action}"
|
34
|
+
#end
|
35
|
+
|
36
|
+
def startPlayback
|
37
|
+
sendAlter "STARTPLAYBACK"
|
38
|
+
end
|
39
|
+
def stopPlayback
|
40
|
+
sendAlter "STOPPLAYBACK"
|
41
|
+
end
|
42
|
+
def upload
|
43
|
+
sendAlter "UPLOAD"
|
44
|
+
end
|
45
|
+
def download
|
46
|
+
sendAlter "DOWNLOAD"
|
47
|
+
end
|
48
|
+
def startRecording
|
49
|
+
sendAlter "STARTRECORDING"
|
50
|
+
end
|
51
|
+
def stopRecording
|
52
|
+
sendAlter "STOPRECORDING"
|
53
|
+
end
|
54
|
+
def delete
|
55
|
+
sendAlter "DELETE"
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|