2020-11-15 23:56:08 +01:00
|
|
|
import logging
|
|
|
|
|
|
2022-03-11 10:55:51 -08:00
|
|
|
from paperless_mail.mail import MailAccountHandler
|
|
|
|
|
from paperless_mail.mail import MailError
|
2020-11-15 23:56:08 +01:00
|
|
|
from paperless_mail.models import MailAccount
|
|
|
|
|
|
|
|
|
|
|
2021-02-05 01:10:29 +01:00
|
|
|
logger = logging.getLogger("paperless.mail.tasks")
|
|
|
|
|
|
|
|
|
|
|
2020-11-15 23:56:08 +01:00
|
|
|
def process_mail_accounts():
|
2020-11-17 15:23:17 +01:00
|
|
|
total_new_documents = 0
|
2020-11-15 23:56:08 +01:00
|
|
|
for account in MailAccount.objects.all():
|
2020-12-04 15:42:05 +01:00
|
|
|
try:
|
2022-02-27 15:26:41 +01:00
|
|
|
total_new_documents += MailAccountHandler().handle_mail_account(account)
|
2021-02-11 22:16:41 +01:00
|
|
|
except MailError:
|
|
|
|
|
logger.exception(f"Error while processing mail account {account}")
|
2020-11-17 15:23:17 +01:00
|
|
|
|
|
|
|
|
if total_new_documents > 0:
|
|
|
|
|
return f"Added {total_new_documents} document(s)."
|
|
|
|
|
else:
|
|
|
|
|
return "No new documents were added."
|
2020-11-15 23:56:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def process_mail_account(name):
|
2020-12-01 14:31:36 +01:00
|
|
|
try:
|
|
|
|
|
account = MailAccount.objects.get(name=name)
|
2020-11-18 13:23:30 +01:00
|
|
|
MailAccountHandler().handle_mail_account(account)
|
2020-12-01 14:31:36 +01:00
|
|
|
except MailAccount.DoesNotExist:
|
2021-02-05 01:10:29 +01:00
|
|
|
logger.error(f"Unknown mail acccount: {name}")
|