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)
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 )