1
0
Fork 1
mirror of https://github.com/coddingtonbear/django-mailbox.git synced 2026-07-10 06:48:19 +02:00

Collect a timestamp from emails + migration

This commit is contained in:
Mike Varga 2022-10-17 13:09:24 -04:00
parent 47da2de396
commit 6673c58ca4
4 changed files with 30 additions and 0 deletions

View file

@ -79,6 +79,7 @@ class MessageAdmin(admin.ModelAdmin):
] ]
list_display = ( list_display = (
'subject', 'subject',
'timestamp',
'processed', 'processed',
'read', 'read',
'mailbox', 'mailbox',

View file

@ -0,0 +1,20 @@
# Generated by Django 3.1.4 on 2022-10-17 11:13
from django.db import migrations, models
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
('django_mailbox', '0008_auto_20190219_1553'),
]
operations = [
migrations.AddField(
model_name='message',
name='timestamp',
field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='Timestamp'),
preserve_default=False,
),
]

View file

@ -18,6 +18,7 @@ import os.path
import sys import sys
import uuid import uuid
from datetime import timedelta from datetime import timedelta
from dateutil import parser
from tempfile import NamedTemporaryFile from tempfile import NamedTemporaryFile
import django import django
@ -379,6 +380,11 @@ class Mailbox(models.Model):
msg.to_header = utils.convert_header_to_unicode( msg.to_header = utils.convert_header_to_unicode(
message['Delivered-To'] message['Delivered-To']
) )
if "date" in message:
msg.timestamp = parser.parse(message["date"])
elif "Date" in message:
msg.timestamp = parser.parse(message["Date"])
if Message.objects.filter(message_id=msg.message_id).count() != 0: if Message.objects.filter(message_id=msg.message_id).count() != 0:
logger.info("Skipping existing message: %s", msg.message_id,) logger.info("Skipping existing message: %s", msg.message_id,)
@ -525,6 +531,8 @@ class Message(models.Model):
help_text=_('True if the e-mail body is Base64 encoded'), help_text=_('True if the e-mail body is Base64 encoded'),
) )
timestamp = models.DateTimeField(_('Timestamp'))
processed = models.DateTimeField( processed = models.DateTimeField(
_('Processed'), _('Processed'),
auto_now_add=True auto_now_add=True

View file

@ -56,5 +56,6 @@ setup(
include_package_data=True, include_package_data=True,
install_requires=[ install_requires=[
'six>=1.6.1', 'six>=1.6.1',
'python-dateutil==2.8.2',
] ]
) )