Example #1
0
def messageLogPut(domain, message, log='messageLog', tag=None):
    """
    Поместить сообщение в лог сообщений.

    Дополнительно можно при помещении в лог указать дополнительный тэг, который будет сохранен в логе
    вместе с сообщением.

    @param domain: домен, относительно которого идёт анализ
    @type domain: L{IDomain}
    @param message: сообщение
    @type message: L{spamfighter.interfaces.IMessage}
    @param log: имя свойства домена, содержащего лог сообщений
    @type log: C{str}
    @param tag: дополнительный тэг, записываемый в лог
    @type tag: C{str}
    """
    try:
        messageLog = domain.get(log)
    except DomainKeyError:
        raise errors.AttributeKeyException, log

    if not IMessageLog.providedBy(messageLog):
        raise errors.NotAMessageLogError, log
    
    if tag is None:
        tags=[]
    else:
        tags=[tag]

    return messageLog.put(message=message, tags=tags).addCallback(lambda _: True)
Example #2
0
    def perform(self):
        try:
            log = self.domain.get(self.params.log)
        except DomainKeyError:
            raise errors.AttributeKeyException, self.params.log

        if not IMessageLog.providedBy(log):
            raise errors.NotAMessageLogError, self.params.log

        def gotEntries(entries):
            self.result.entries = entries

        return log.fetch(first=self.params.first, last=self.params.last, firstID=self.params.firstID).addCallback(
            gotEntries
        )