Initial Project Commit
[retroconv] / contactsServ.py
1 import evolution
2 from pygobject import *
3 from ctypes import *
4 #from wrapper import *
5
6
7 ebook = CDLL('libebook-1.2.so.9')
8 E_CONTACT_HOMEPAGE_URL = 42
9 E_CONTACT_PHOTO = 94
10 E_CONTACT_EMAIL = 97
11 E_CONTACT_BIRTHDAY_DATE = 107
12
13 class address_book:
14                 
15         def getContactNameFromPhone(self, phoneNum):
16                 
17
18                 addresses = evolution.ebook.open_addressbook('default')
19                 contacts = addresses.get_all_contacts()
20
21
22                  #ai = GList.new(ebook.e_contact_get_attributes(hash(self._contact), E_CONTACT_EMAIL))
23
24                 for econtact in contacts:
25                         
26                         try: 
27                                 #print econtact.get_name()
28                                 phones = econtact.get_property('phone') 
29                                 
30                                 phones_p=int(str(phones)[13:-1],16)
31                                 phoneList = GList.new(phones_p)
32                                 
33                                 while phoneList.has_next():
34                                         currPhone = string_at(phoneList.next())
35                                         
36                                         if currPhone == phoneNum:
37                                                 return econtact.get_name()
38                         except:
39                                 continue
40                                 
41                                 
42                                 
43         
44         def populateNames(self, recvLst, sentLst):
45                 
46                 addresses = evolution.ebook.open_addressbook('default')
47                 contacts = addresses.get_all_contacts()
48                 
49                 listX=[]
50                 
51                 
52                 """"for msg in recvLst:
53                         for contact in contacts:
54                                 try:
55                                         phones = contact.get_property('phone')  
56                                         phones_p=int(str(phones)[13:-1],16)
57                                 except:
58                                         continue
59                                         
60                                 phoneList = GList.new(phones_p)
61                                 
62                                 while phoneList.has_next():
63                                         currPhone = string_at(phoneList.next())
64                                         if currPhone[-7:] == msg.fromNum[-7:]:
65                                                 msg.setSenderName(contact.get_name())
66                                                 break
67                 """
68                 
69                 for contact in contacts:
70                 
71                         try:
72                                 phones = contact.get_property('phone')  
73                                 phones_p=int(str(phones)[13:-1],16)
74                                 phoneList = GList.new(phones_p)
75                                 
76                                 
77                                 
78                                         
79                                 
80                                 
81                                 
82                                 
83                                 
84                                 while phoneList.has_next():
85                                         currPhone = string_at(phoneList.next())
86                                         for msg in recvLst:
87                                                 if currPhone[-7:] == msg.fromNum[-7:]:
88                                                         msg.setSenderName(contact.get_name())
89                                                         photo = contact.get_property('photo')
90                                                         pi = cast(c_void_p(hash(photo)), POINTER(EContactPhoto))
91                                                         
92                                                         if pi.contents.data.uri.startswith("image/"):
93                                                                 #data = string_at(pi.contents.data.inlined.data)
94                                                                 data = string_at(pi.contents.data.inlined.data, pi.contents.data.inlined.length)
95                                                                 length = pi.contents.data.inlined.length
96                                                                 msg.setImageData(data, length)
97                                                 
98                                         for msg in sentLst:
99                                                 if currPhone[-7:] == msg.toNum[-7:]:
100                                                         msg.setRecName(contact.get_name())
101                                                         photo = contact.get_property('photo')
102                                                         pi = cast(c_void_p(hash(photo)), POINTER(EContactPhoto))
103                                                         
104                                                         if pi.contents.data.uri.startswith("image/"):
105                                                                 #data = string_at(pi.contents.data.inlined.data)
106                                                                 data = string_at(pi.contents.data.inlined.data, pi.contents.data.inlined.length)
107                                                                 length = pi.contents.data.inlined.length
108                                                                 msg.setImageData(data, length)
109                                                                 
110                                                         
111                         except:
112                                 continue