From e6b867e954de2844c7afb023cf02d532855d986a Mon Sep 17 00:00:00 2001 From: Damian Moore Date: Sun, 2 Nov 2014 16:09:32 +0000 Subject: [PATCH] Management command to be run from cron and send email alerts about expiring domains --- domaintools/management/__init__.py | 0 domaintools/management/commands/__init__.py | 0 .../management/commands/notify_expiry.py | 23 +++++++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 domaintools/management/__init__.py create mode 100644 domaintools/management/commands/__init__.py create mode 100644 domaintools/management/commands/notify_expiry.py diff --git a/domaintools/management/__init__.py b/domaintools/management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/domaintools/management/commands/__init__.py b/domaintools/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/domaintools/management/commands/notify_expiry.py b/domaintools/management/commands/notify_expiry.py new file mode 100644 index 0000000..ac748ae --- /dev/null +++ b/domaintools/management/commands/notify_expiry.py @@ -0,0 +1,23 @@ +from django.conf import settings +from django.core.mail import send_mail +from django.core.management.base import BaseCommand, CommandError + +from domaintools.models import Domain + + +ALERT_SEND_DAYS = [14, 3, 1] + + +class Command(BaseCommand): + help = 'Sends notifications by email when domains are going to expire.' + + def handle(self, *args, **options): + for domain in Domain.objects.all(): + days_remaining = domain.days_remaining() + if days_remaining < max(ALERT_SEND_DAYS): + print 'Domain {} expires in {} days'.format(domain.id, domain.days_remaining()) + if days_remaining in ALERT_SEND_DAYS: + send_mail('Domain Expiring: {}'.format(domain.id), + 'The domain {} is going to expire on {} ({} days)'.format(domain.id, domain.expiry_date, days_remaining), + 'webmaster@epixstudios.co.uk', + [admin[1] for admin in settings.ADMINS])