import os import sys from email.mime.text import MIMEText from datetime import date import boto.ses import yaml ''' ABVID REPORTING - email / etc. ''' from frontend_env import * ''' v1 = Video.objects.filter(edx_id = upload_info['edx_id']) if v1.abvid_serial != None: sys.path.append(up_twodirectory + '/VEDA_OS/VEDA_FE/') import abvid_reporting abvid_reporting.report_status( status="Youtube Duplicate", abvid_serial = v1.abvid_serial, youtube_id = '' ) ''' """ get auth keys from instance yaml """ auth_yaml = os.path.join( os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'instance_config.yaml' ) with open(auth_yaml, 'r') as stream: try: auth_dict = yaml.load(stream) except yaml.YAMLError as exc: print 'AUTH ERROR' def report_status(status, abvid_serial, youtube_id): try: v1 = VedaUpload.objects.filter(video_serial=abvid_serial).latest() except ObjectDoesNotExist: return if len(youtube_id) > 0: excuse = '' if 'Duplicate' in status or 'Corrupt' in status: if v1.final_report is True: send_email = False # pass else: excuse = 'There has been a failure for the following reason : ' + status final_success = 'FAILED' youtube_id = '' VedaUpload.objects.filter( pk=v1.pk ).update( file_complete=False, final_report=True, file_valid=False ) send_email = True elif 'Complete' in status: excuse = 'This file is complete.' final_success = 'SUCCESS' VedaUpload.objects.filter( pk=v1.pk ).update( file_complete=True, final_report=True, file_valid=True, youtube_id=youtube_id ) send_email = True if send_email is True: email_subject = 'VEDA / edX About Video Status Update : ' + final_success email_body = 'This is an auto generated message:\n\n' email_body += 'An edX partner uploaded a new about video:\n\n' email_body += 'STATUS : ' + excuse + '\n\n' if len(youtube_id) > 0: email_body += 'Youtube URL : https://www.youtube.com/watch?v=' + youtube_id + '\n\n' if v1.upload_filename is not None: email_body += 'Filename : ' + v1.upload_filename + '\n' email_body += 'Upload Date : ' + str(v1.upload_date) + '(UTC)\n' email_body += 'Course Title (optional) : ' + v1.client_information + '\n' email_body += 'edX Studio Course URL : ' + v1.edx_studio_url + '\n\n' email_body += 'Please do not reply to this email.\n\n <<EOM' conn = boto.ses.connect_to_region('us-east-1') conn.send_email( auth_dict['veda_noreply_email'], email_subject, email_body, [v1.status_email, auth_dict['admin_email']] ) if __name__ == '__main__': report_status(status='Complete', abvid_serial="5c34a85e5f", youtube_id='TEST')