From 95f172d6c69c298e9cdb1cd90402281923506a0c Mon Sep 17 00:00:00 2001
From: Olivier Matz <zer0@platinum>
Date: Wed, 25 Nov 2015 18:52:12 +0100
Subject: [PATCH] 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 <olivier.matz@6wind.com>
---
 imapami/actions.py | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

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