From: Olivier Matz Date: Wed, 25 Nov 2015 17:52:12 +0000 (+0100) Subject: actions: fix move X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=95f172d6c69c298e9cdb1cd90402281923506a0c;p=imapami.git actions: fix move It is not possible to use ImapamiActionCopy.process() or ImapamiActionDelete.process() methods on the ImapamiActionMove object. So just duplicate the code for now. Signed-off-by: Olivier Matz --- diff --git a/imapami/actions.py b/imapami/actions.py index 7525133..63f4f52 100644 --- a/imapami/actions.py +++ b/imapami/actions.py @@ -273,13 +273,19 @@ class ImapamiActionMove(ImapamiAction): ImapamiAction.__init__(self, terminal=True) self.dest = dest def process(self, ami, mail): - ret = ImapamiActionCopy.process( - self, ami, mail) - if ret == False: + imap = ami.imap + dest = self.evaluate(self.dest, ami, mail.msg) + imap.create(dest) + ret, msg = imap.copy(mail.item, dest) + if ret != "OK": + ami.logger.warning( + "imap copy returned %s: %s" % (ret, str(msg))) return False - ret = ImapamiActionDelete.process( - self, ami, mail) - if ret == False: + ret, msg = imap.store(mail.item, '+FLAGS', '\\Deleted') + if ret != "OK": + ami.logger.warning( + "imap store '%s %s' returned %s: %s" % ( + cmd, flag, ret, str(msg))) return False return True register(ImapamiActionMove)