Ejemplo n.º 1
0
    def publish(self):
        """Publish a mbox"""
        
        mbox = Mbox(self.config.get('mbox'))
        messages = 0

        if not (os.path.exists(self.config.get('dir'))):
            os.mkdir(self.config.get('dir'))

        message = mbox.nextMessage()
        
        while(message != None):
            msg = Message(message, self.config)
            messages += 1
            self.index.add(msg)
            self.subscribers.add(msg)
            msg.toRDF()
            #msg.toHTML()
            message = mbox.nextMessage()
            
        self.index.toRDF()

        self.subscribers.toRDF()

        return messages
Ejemplo n.º 2
0
    def publish(self):
        """
        Publish the messages
        """

        self.__createDir()

        #fisrt lap
        self.__parse()

        #and second lap
        mbox = Mbox(self.config.get('mbox'))
        messages = 0

        message = mbox.nextMessage()

        try:

            while (message != None):
                messages += 1
                id = message['Message-Id']
                msg = self.index.getMessage(messages)

                if (msg != None and msg.getMessageId() == id):
                    msg.setBody(message.fp.read())
                    msg.toRDF()
                    #msg.toHTML()
                    #self.index.delete(id)
                else:
                    print 'Someone was wrong with message ' + str(
                        messages) + ' with ID ' + id + ' (' + msg.getMessageId(
                        ) + ')'

                message = mbox.nextMessage()

            self.__toRDF()

            if (self.config.get('foaf')):
                self.subscribers.process()

            self.subscribers.export()

        except Exception, detail:
            print str(detail)
Ejemplo n.º 3
0
    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):
            #fisrt load message
            messages += 1
            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
            
            #and continue with next message
            message = mbox.nextMessage()

        self.messages = messages
Ejemplo n.º 4
0
    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):
            #fisrt load message
            messages += 1
            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

            #and continue with next message
            message = mbox.nextMessage()

        self.messages = messages
Ejemplo n.º 5
0
    def publish(self):
        """
        Publish the messages
        """

        self.__createDir()

        # fisrt lap
        self.__parse()

        # and second lap
        mbox = Mbox(self.config.get("mbox"))
        messages = 0

        message = mbox.nextMessage()

        try:

            while message != None:
                messages += 1
                id = message["Message-Id"]
                msg = self.index.getMessage(messages)

                if msg != None and msg.getMessageId() == id:
                    msg.setBody("FIXME")
                    msg.toRDF()
                    # msg.toHTML()
                    # self.index.delete(id)
                else:
                    print "Someone was wrong with message " + str(
                        messages
                    ) + " with ID " + id + " (" + msg.getMessageId() + ")"

                message = mbox.nextMessage()

            self.__toRDF()

            self.subscribers.process()
            self.subscribers.export()

        except Exception, detail:
            print str(detail)
Ejemplo n.º 6
0
    def publish(self):
        """
        Publish the messages
        """
        
        self.__createDir()
        
        #fisrt lap
        self.__parse()
        
        #and second lap
        mbox = Mbox(self.config.get('mbox'))
        messages = 0

        message = mbox.nextMessage()
        
        try: 
            
            while(message != None):
                messages += 1
                id = message['Message-Id']
                msg = self.index.getMessage(messages)
                
                if (msg != None and msg.getMessageId() == id):
                    msg.setBody(message.fp.read())
                    msg.toRDF()
                    #msg.toHTML()
                    #self.index.delete(id)
                else:
                    print 'Someone was wrong with message ' + str(messages) + ' with ID ' + id + ' ('+msg.getMessageId()+')'

                message = mbox.nextMessage()
                
            self.__toRDF()
    
            if (self.config.get('foaf')):
                self.subscribers.process()
            
            self.subscribers.export()
            
        except Exception, detail:
            print str(detail)
Ejemplo n.º 7
0
    def publish(self):
        """
        Publish the messages
        """
        
        self.__createDir()
        
        #fisrt lap
        self.__parse()
        
        #and second lap
        mbox = Mbox(self.config.get('mbox'))
        messages = 0

        message = mbox.nextMessage()
        
        try: 
            
            while(message != None):
                messages += 1
                id = message['Message-Id']
                msg = self.index.get(id)
                
                if (msg != None):
                    msg.setBody('FIXME')
                    msg.toRDF()
                    #msg.toHTML()
                    #self.index.delete(id)
                else:
                    print id

                message = mbox.nextMessage()
                
            self.__toRDF()
    
            self.subscribers.process()
            self.subscribers.export()
            
        except Exception, detail:
            print str(detail)
Ejemplo n.º 8
0
    def publish(self):
        """
        Publish the messages
        """

        self.__createDir()

        #fisrt lap
        self.__parse()

        #and second lap
        mbox = Mbox(self.config.get('mbox'))
        messages = 0

        message = mbox.nextMessage()

        try:

            while (message != None):
                messages += 1
                id = message['Message-Id']
                msg = self.index.get(id)

                if (msg != None):
                    msg.setBody('FIXME')
                    msg.toRDF()
                    #msg.toHTML()
                    #self.index.delete(id)
                else:
                    print id

                message = mbox.nextMessage()

            self.__toRDF()

            self.subscribers.process()
            self.subscribers.export()

        except Exception, detail:
            print str(detail)