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