/[cvs]/joko/ToolBox/Windows/MapiContactsDumper/src/MapiContactsDumper.py
ViewVC logotype

Annotation of /joko/ToolBox/Windows/MapiContactsDumper/src/MapiContactsDumper.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Tue Oct 16 15:32:52 2007 UTC (16 years, 8 months ago) by joko
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/x-python
initial commit

1 joko 1.1 #!/usr/bin/env python
2     # -*- coding: utf-8 -*-
3    
4     # $Id: setup.py,v 1.1 2007/10/14 07:04:37 joko Exp $
5    
6     # (c) 2007 Andreas Motl <andreas.motl@ilo.de>
7    
8    
9     SHARED_FOLDER = '/Öffentliche Ordner/Alle Öffentlichen Ordner/EDV/plugin_test'
10    
11    
12     # essential base packages
13     import os, sys
14    
15     import getopt
16     import win32com.client
17    
18     # for reading .ini files
19     import ConfigParser
20     import string
21    
22    
23    
24     # ----------------------------------------------------------------------------
25     # bootstrapping
26     # ----------------------------------------------------------------------------
27    
28     # find path to ourself
29     script_path = os.path.dirname(sys.argv[0])
30    
31     # read config from ini-style file
32     config = ConfigParser.ConfigParser()
33     ini_filename = 'MapiContactsDumper.ini'
34     config.read(os.path.join(script_path, ini_filename))
35    
36    
37     # ----------------------------------------------------------------------------
38     # main
39     # ----------------------------------------------------------------------------
40    
41     def searchFolder(folders, foldername):
42     for i in range(1, len(folders)):
43     if str(folders[i].Name) == foldername:
44     return folders[i]
45    
46     def getFolderByPath(rootfolders, folderpath):
47     folder_parts = folderpath.split('/')
48     folder_parts = folder_parts[1:]
49     for part in folder_parts:
50     childfolder = searchFolder(rootfolders, part)
51     try:
52     rootfolders = childfolder.Folders
53     except:
54     pass
55     return childfolder
56    
57     def readMapiContactsFolder_faxAddresses(folder):
58     items = folder.Items
59     entries = []
60     for i in range(1, len(items)):
61     contact = items[i]
62     entry = {
63     'label': contact.LastName + ' ' + contact.FirstName,
64     'faxnumber': contact.BusinessFaxNumber,
65     }
66     entries.append(entry)
67     return entries
68    
69    
70     def export_addressbook(entries):
71    
72     if config.get('export', 'type') == 'twofiles':
73     path = config.get('export', 'path')
74    
75     if not os.path.exists(path):
76     raise 'ERROR: Export path "%s" does not exist!' % path
77    
78     names = open(os.path.join(path, 'names.txt'), 'w')
79     numbers = open(os.path.join(path, 'numbers.txt'), 'w')
80    
81     for entry in entries:
82     print entry['label'] + ": " + entry['faxnumber']
83     names.write(entry['label'] + "\n")
84     numbers.write(entry['faxnumber'] + "\n")
85    
86     names.close()
87     numbers.close()
88    
89    
90     def main():
91     opts_definition = ["folder=", "verbose"]
92     opts, args = getopt.gnu_getopt(sys.argv[1:], '', opts_definition)
93     #print opts
94     #print args
95    
96     # put option list into dict
97     global options
98     options = {}
99     for option, value in opts:
100     option = option.replace('--', '')
101     #value = value.decode('cp1250')
102     #value = unicode(value, 'cp850')
103     #print option
104     options[option] = value
105    
106     #print options
107    
108     # http://www.boddie.org.uk/python/COM.html
109     mailer = win32com.client.Dispatch("Outlook.Application")
110     mapiroot = mailer.GetNamespace("MAPI")
111     #print mapi.Name
112    
113     #sharedroot = mapiroot.Folders('Öffentliche Ordner')
114     #print sharedroot.Name
115    
116     # hardcode folder
117     #options['folder'] = SHARED_FOLDER
118    
119     # read folder from command line options
120     #contactsFolder = getFolderByPath(mapiroot.Folders, options['folder'])
121    
122     # read folder from ini file
123     contactsFolder = getFolderByPath(mapiroot.Folders, config.get('mapi-contact-folders', 'folder1'))
124    
125     #print contactsFolder.Name
126    
127     entries = readMapiContactsFolder_faxAddresses(contactsFolder)
128     #print entries
129     export_addressbook(entries)
130    
131    
132     if __name__ == '__main__':
133     main()

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed