| Home | Trees | Indices | Help |
|
|---|
|
|
1 print('****************************************************************************');
2 print('SkypeKit Python Wrapper Tutorial: Contacts and Online Status Events');
3 print('****************************************************************************');
4
5 # This example demonstrates, how to:
6 # 1. Retrieve and display contact list
7 # 2. Catch contact online appearance events.
8
9 # NB! You will need to launch the SkypeKit runtime before running this example.
10
11 #----------------------------------------------------------------------------------
12 # Importing necessary libraries. Note that you will need to set the keyFileName value
13 # in the keypair.py file.
14
15 import sys;
16 import keypair;
17 from time import sleep;
18
19 sys.path.append(keypair.distroRoot + '/ipc/python');
20 sys.path.append(keypair.distroRoot + '/interfaces/skype/python');
21
22 try:
23 import Skype;
24 except ImportError:
25 raise SystemExit('Program requires Skype and skypekit modules');
26
27 #----------------------------------------------------------------------------------
28 # Taking skypename and password arguments from command-line.
29
30 if len(sys.argv) != 3:
31 print('Usage: python contacts.py <skypename> <password>');
32 sys.exit();
33
34 accountName = sys.argv[1];
35 accountPsw = sys.argv[2];
36 loggedIn = False;
37
38 #----------------------------------------------------------------------------------
39 # Creating our main Skype object
40
41 try:
42 MySkype = Skype.GetSkype(keypair.keyFileName);
43 MySkype.Start();
44 except Exception:
45 raise SystemExit('Unable to create Skype instance');
46
47 #----------------------------------------------------------------------------------
48 # Defining our own Account property change callback and assigning it to the
49 # Skype.Account class.
50
52 global loggedIn;
53 if property_name == 'status':
54 if self.status == 'LOGGED_IN':
55 loggedIn = True;
56 print('Login complete.');
57
58 Skype.Account.OnPropertyChange = AccountOnChange;
59
60 #----------------------------------------------------------------------------------
61 # Defining our own Contact property change callback and assigning it to the
62 # SkyLib.Contact class.
63
65 if property_name == 'availability':
66 print('Online status event: ' + self.displayname + ' is now ' + self.availability);
67
68 Skype.Contact.OnPropertyChange = ContactOnPropertyChange;
69
70 #----------------------------------------------------------------------------------
71 # Retrieving account and logging in with it.
72
73 account = MySkype.GetAccount(accountName);
74
75 print('Logging in with ' + accountName);
76 account.LoginWithPassword(accountPsw, False, False);
77
78 while loggedIn == False:
79 sleep(1);
80
81 #----------------------------------------------------------------------------------
82 # Retrieving contact list in two steps:
83 # 1. we need to get a CountactGroup object with MySkype.GetHardwiredContactGroup
84 # 2. then we need to get a contact list with ContactGroup.GetContacts
85
86 skypeContactGroup = MySkype.GetHardwiredContactGroup('SKYPE_BUDDIES');
87 skypeContacts = skypeContactGroup.GetContacts();
88
89 # Note that we are using SKYPE_BUDDIES filter here - which only includes skypename
90 # contacts - phone number contacts (PSTN) will not be included. The full list of
91 # 'Hardwired' filters is:
92 # ALL_KNOWN_CONTACTS
93 # ALL_BUDDIES
94 # SKYPE_BUDDIES
95 # SKYPEOUT_BUDDIES
96 # ONLINE_BUDDIES
97 # UNKNOWN_OR_PENDINGAUTH_BUDDIES
98 # RECENTLY_CONTACTED_CONTACTS
99 # CONTACTS_WAITING_MY_AUTHORIZATION
100
101 print('List of Skype contacts for this account: ');
102 for C in skypeContacts:
103 print(C.displayname);
104
105 # Note that at this point - immediately after the login - there is not much point
106 # to display contact online status. Online statuses will update themselves over
107 # over next couple of seconds. These events we will catch in ContactOnPropertyChange
108
109 print('Press ENTER to exit');
110 raw_input('');
111 print('Exiting..');
112 MySkype.stop();
113
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Fri Jan 27 18:21:14 2012 | http://epydoc.sourceforge.net |