def __init__(self, config, base="./", lang=None): """ Constructor method @param config: configuration @param lang: language """ self.config = config self.base = base self.lang = lang self.subscribers = Subscribers(config) self.index = Index(self.config) self.uri = self.config.get('base') + 'forum'
class MailingList: """ Mailing List abstraction """ def __init__(self, config, base="./", lang=None): """ Constructor method @param config: configuration @param lang: language """ self.config = config self.base = base self.lang = lang self.subscribers = Subscribers(config) self.index = Index(self.config) self.uri = self.config.get('base') + 'forum' def __createDir(self): """ Create the necessary directory """ if not (os.path.exists(self.config.get('dir'))): os.mkdir(self.config.get('dir')) def __parse(self): """ Parse mailingg list and load all indexes into memory """ previous = None mbox = Mbox(self.config.get('mbox')) messages = 0 message = mbox.nextMessage() while(message != None): try: #fisrt load message msg = Message(message, self.config) #index it self.index.add(msg) self.subscribers.add(msg) subscriber = self.subscribers.get(msg.getFromMail()) msg.setSender(subscriber) #parent message (refactor) inReplyTo = msg.getInReplyTo() if (inReplyTo != None): parent = self.index.get(inReplyTo) if (parent != None): msg.setParent(parent) #link child with parent parent.addChild(msg) #and parent with child #and previous and next by date if (previous != None): previous.setNextByDate(msg) msg.setPreviousByDate(previous) previous = msg except KeyError, details: print 'Error parsing a mail form mailbox: ' + str(details) messages += 1 #and continue with next message message = mbox.nextMessage() self.messages = messages