Exemple #1
0
 def processUnixMailbox(self, input, start=None, end=None):
     mbox = ArchiverMailbox(input, self.maillist)
     if start is None:
         start = 0
     counter = 0
     if start:
         mbox.skipping(True)
     while counter < start:
         try:
             m = mbox.next()
         except Errors.DiscardMessage:
             continue
         if m is None:
             return
         counter += 1
     if start:
         mbox.skipping(False)
     while 1:
         try:
             pos = input.tell()
             m = mbox.next()
         except Errors.DiscardMessage:
             continue
         except Exception:
             syslog('error', 'uncaught archiver exception at filepos: %s',
                    pos)
             raise
         if m is None:
             break
         if m == '':
             # It was an unparseable message
             continue
         msgid = m.get('message-id', 'n/a')
         self.message(_('#%(counter)05d %(msgid)s'))
         a = self._makeArticle(m, self.sequence)
         self.sequence += 1
         self.add_article(a)
         if end is not None and counter >= end:
             break
         counter += 1