aboutsummaryrefslogtreecommitdiffstats
path: root/servo/tasks.py
diff options
context:
space:
mode:
Diffstat (limited to 'servo/tasks.py')
-rw-r--r--servo/tasks.py24
1 files changed, 11 insertions, 13 deletions
diff --git a/servo/tasks.py b/servo/tasks.py
index bc5bf77..1d55136 100644
--- a/servo/tasks.py
+++ b/servo/tasks.py
@@ -1,10 +1,7 @@
# -*- coding: utf-8 -*-
-
-from __future__ import absolute_import
-
-from email.parser import Parser
-
-from celery import shared_task
+import email
+import logging
+from email.parser import BytesParser
from django.conf import settings
from django.core.cache import cache
@@ -32,7 +29,6 @@ def get_rules():
return rules
-@shared_task
def apply_rules(event):
"""
Applies configured rules
@@ -100,7 +96,6 @@ def apply_rules(event):
return '%d/%d rules processed' % (counter, len(rules))
-@shared_task
def batch_process(user, data):
"""
/orders/batch
@@ -161,24 +156,26 @@ def batch_process(user, data):
return '%d/%d orders processed' % (processed, len(orders))
-@shared_task
def check_mail():
- """Checks IMAP box for incoming mail"""
+ """
+ Checks IMAP box for incoming mail
+ """
uid = Configuration.conf('imap_act')
if empty(uid):
- raise ConfigurationError('Incoming message user not configured')
+ err = 'User account for incoming messages not configured'
+ raise ConfigurationError(err)
counter = 0
user = User.objects.get(pk=uid)
server = Configuration.get_imap_server()
+
typ, data = server.search(None, "UnSeen")
for num in data[0].split():
- #logging.debug("** Processing message %s" % num)
typ, data = server.fetch(num, "(RFC822)")
# parsestr() seems to return an email.message?
- msg = Parser().parsestr(data[0][1])
+ msg = BytesParser().parsebytes(data[0][1])
Note.from_email(msg, user)
#server.copy(num, 'servo')
server.store(num, '+FLAGS', '\\Seen')
@@ -188,3 +185,4 @@ def check_mail():
server.logout()
return '%d messages processed' % counter
+