From 819aae6a097571e108bb1cd6a2ef1f41ea61077d Mon Sep 17 00:00:00 2001 From: Jace Manshadi Date: Fri, 13 Jan 2023 19:52:05 -0800 Subject: [PATCH] moving logic for processing all the new emails from all mailboxes to a method under Mailbox so it can be called from other modules --- django_mailbox/management/commands/getmail.py | 19 +---------------- django_mailbox/models.py | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/django_mailbox/management/commands/getmail.py b/django_mailbox/management/commands/getmail.py index 31b2dbd..2abfe5f 100644 --- a/django_mailbox/management/commands/getmail.py +++ b/django_mailbox/management/commands/getmail.py @@ -4,27 +4,10 @@ from django.core.management.base import BaseCommand from django_mailbox.models import Mailbox - logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) class Command(BaseCommand): def handle(self, *args, **options): - mailboxes = Mailbox.active_mailboxes.all() - if args: - mailboxes = mailboxes.filter( - name=' '.join(args) - ) - for mailbox in mailboxes: - logger.info( - 'Gathering messages for %s', - mailbox.name - ) - messages = mailbox.get_new_mail() - for message in messages: - logger.info( - 'Received %s (from %s)', - message.subject, - message.from_address - ) + Mailbox.get_new_mail_all_mailboxes(args) diff --git a/django_mailbox/models.py b/django_mailbox/models.py index 0f0ac9d..6544ef2 100644 --- a/django_mailbox/models.py +++ b/django_mailbox/models.py @@ -430,6 +430,27 @@ class Mailbox(models.Model): else: self.save() + @staticmethod + def get_new_mail_all_mailboxes(args=None): + mailboxes = Mailbox.active_mailboxes.all() + if args: + mailboxes = mailboxes.filter( + name=' '.join(args) + ) + for mailbox in mailboxes: + logger.info( + 'Gathering messages for %s', + mailbox.name + ) + messages = mailbox.get_new_mail() + for message in messages: + logger.info( + 'Received %s (from %s)', + message.subject, + message.from_address + ) + + def __str__(self): return self.name