removed unused code
[meabook] / parsers / ldif_parser.py
1 import re
2 import sys
3 sys.path.insert(0, '../..')
4 #sys.path.insert(0, '../')
5 from meabook.parsers.ldif import LDIFParser
6 from meabook.database.SQLite import SQLite
7
8 regexp = re.compile(r'o=([^,]+)')
9
10 class MeabookLDIFParser(LDIFParser):
11     def __init__(self, fobj, database):
12         LDIFParser.__init__(self, fobj)
13         self.database = database
14
15     def handle(self, dn, entry):
16         """Process each entry from ldif file."""
17
18         # filter entries
19         if (not 'uid' in entry) or (not 'ou' in entry):
20             return
21         if ('deleted' in dn) or (not 'people' in dn):
22             return
23
24         # choose proper name
25         dn = regexp.findall(dn)
26         entry['o'] = [dn[0]]
27
28         # capitalize some fields
29         for field in ['cn']:
30             entry[field][0] = ' '.join([item.decode('utf-8').capitalize() for \
31                 item in entry[field][0].split(' ')])
32         self.database.add_entry(entry)
33
34     def parse(self):
35         """Start parsing."""
36
37         self.database.clear()
38         LDIFParser.parse(self)
39         self.database.save()
40
41
42 if __name__ == "__main__":
43     if len(sys.argv) != 2:
44         print "USAGE: %s fname" % sys.argv[0]
45         sys.exit(-1)
46
47     try:
48         database = SQLite('/tmp/')
49         parser = MyLDIFParser(open(sys.argv[1]), database)
50     except IOError:
51         print 'Wrong file name'
52     else:
53         parser.parse()
54