77 lines
2.2 KiB
Python
77 lines
2.2 KiB
Python
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 <krivonos@cosmos.ru>'
|
|
|
|
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()
|