Ruby4Skype 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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