From 1074ae5256ee296ec2efe5407a330a933e2e3b78 Mon Sep 17 00:00:00 2001 From: Folker Bernitt Date: Thu, 30 Jul 2015 14:53:50 +0000 Subject: Fixed load-mails for empty case. - Issue #420 --- service/pixelated/maintenance.py | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) (limited to 'service/pixelated/maintenance.py') diff --git a/service/pixelated/maintenance.py b/service/pixelated/maintenance.py index 868c9e5b..bffc272f 100644 --- a/service/pixelated/maintenance.py +++ b/service/pixelated/maintenance.py @@ -22,12 +22,9 @@ from pixelated.config.leap import initialize_leap from pixelated.config import logger, arguments from leap.mail.constants import MessageFlags -import time -from twisted.mail import imap4 def initialize(): - import time args = arguments.parse_maintenance_args() logger.init(debug=args.debug) @@ -121,16 +118,9 @@ def is_keep_file(mail): @defer.inlineCallbacks -def add_mail_folder(account, maildir, folder_name, deferreds): - try: - mbx = yield account.getMailbox(folder_name) - except imap4.MailboxException: - account.addMailbox(folder_name) - mbx = yield account.getMailbox(folder_name) - # if folder_name not in account.mailboxes: - # account.addMailbox(folder_name) - - mbx = yield account.getMailbox(folder_name) +def add_mail_folder(store, maildir, folder_name, deferreds): + store.add_mailbox(folder_name) + for mail in maildir: if is_keep_file(mail): continue @@ -141,22 +131,23 @@ def add_mail_folder(account, maildir, folder_name, deferreds): if 'R' in mail.get_flags(): flags = (MessageFlags.ANSWERED_FLAG,) + flags - deferreds.append(mbx.addMessage(mail.as_string(), flags=flags, notify_just_mdoc=False)) + deferreds.append(store.add_mail(folder_name, mail.as_string())) + # FIXME support flags @defer.inlineCallbacks def load_mails(args, mail_paths): leap_session, soledad = args - account = leap_session.account + store = leap_session.mail_store deferreds = [] for path in mail_paths: maildir = Maildir(path, factory=None) - add_mail_folder(account, maildir, 'INBOX', deferreds) + add_mail_folder(store, maildir, 'INBOX', deferreds) for mail_folder_name in maildir.list_folders(): mail_folder = maildir.get_folder(mail_folder_name) - add_mail_folder(account, mail_folder, mail_folder_name, deferreds) + add_mail_folder(store, mail_folder, mail_folder_name, deferreds) yield defer.DeferredList(deferreds) defer.returnValue(args) -- cgit v1.2.3