1
0
Fork 1
mirror of https://github.com/coddingtonbear/django-mailbox.git synced 2026-07-09 22:38:19 +02:00

Merge pull request #4 from iotalabscompany/add-email-message-timestamps

Collect a timestamp from emails + migration
This commit is contained in:
Mike Varga 2022-10-17 13:12:48 -04:00 committed by GitHub
commit 323f74728f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 32 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,13 @@ 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"])
else:
msg.timestamp = now()
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 +533,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',
] ]
) )