from django.core.management.base import BaseCommand, CommandError from django.contrib.auth.models import User from django.core import mail from django.template.loader import render_to_string from django.utils.html import strip_tags from django.core.mail import send_mail import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler from watchdog.events import PatternMatchingEventHandler class MyHandler(PatternMatchingEventHandler): patterns = ["*gyro.fits",] def process(self, event): """ event.event_type 'modified' | 'created' | 'moved' | 'deleted' event.is_directory True | False event.src_path path/to/observed/file """ # the file will be processed there if not event.event_type == 'created': return print("Reading {} ty[e: {}".format(event.src_path, event.event_type)) #if not 'L1b' in event.src_path: # return users = User.objects.filter(groups__name='srg-artxc-survey') to_emails=[] for user in users: to_emails.append(user.email) print (event.src_path, event.event_type) # print now only for degug count=1 subject = "New SRG data" html_message = render_to_string('monthplan/data_loaded_email.html', {'event':event, 'count':count}) plain_message = strip_tags(html_message) from_email = 'Roman Krivonos ' mail.send_mail(subject, plain_message, from_email, ['krivonos@cosmos.ru','kate@cosmos.ru',], html_message=html_message) def on_modified(self, event): self.process(event) def on_created(self, event): self.process(event) class EventHandler(FileSystemEventHandler): def on_created(self, event): print (event) class Command(BaseCommand): help = 'Initiates data base' def handle(self, *args, **options): path = "/srg/work/oper/data/2020/" observer = Observer() observer.schedule(MyHandler(), path, recursive=True) observer.start() try: while True: time.sleep(10) except KeyboardInterrupt: observer.stop() observer.join()