def main(): try: test = False compress = True recipientsDirectory = 'C:' + os.sep + 'PythonScripts' + os.sep + 'SelinaReports' + os.sep if not test: recipientsFile = open(recipientsDirectory + 'recipients.txt', 'r') else: recipientsFile = open(recipientsDirectory + 'recipients_old.txt', 'r') recips = readRecipientsIntoMemory(recipientsFile) if not test: dateFolder = str(datetime.date.today()) else: dateFolder = str(datetime.date.today()+ datetime.timedelta(days = -1)) dateFolder = dateFolder[:4] + dateFolder[5:7] + dateFolder[8:10] named_date = datetime.date.today().strftime("%b %d.%y") subject = 'First Coverage Daily Update-'+ named_date #create the name of the output directory EOD_ReportsFolder = 'C:\\EOD-Reports\\' todaysFolder = '%s%s' %(EOD_ReportsFolder, dateFolder) #find all the reports generated on a given day Reports = os.listdir(todaysFolder) #add the path to the beginning of every report name todaysReports = [] for report in Reports: todaysReports.append(todaysFolder + os.sep + report) #give a name to the zip file where the reports will be archived #and zip all the files. if compress: if not os.path.isdir(todaysFolder + '_sent'): os.mkdir(todaysFolder + '_sent') if not os.path.isdir(todaysFolder + os.sep + 'zips'): os.mkdir(todaysFolder + os.sep + 'zips') if not os.path.isdir(todaysFolder + '_sent' + os.sep + 'zips'): os.mkdir(todaysFolder + '_sent' + os.sep + 'zips') zipFolder = todaysFolder + os.sep + 'zips' print '!!COMPRESS LOOP!!' for report in todaysReports: print 'report', report #f.write('report' + report) f = report[:-4] + '.zip' if not os.path.isdir(report): print 'report is: ' + report + ' file is: ' + f Zipper.main([report],f, True) #[:-4] + "_" + str(x) + ".zip") #todaysZipFolder = zipFolder print 'move %s to %s' %(f, zipFolder) shutil.move(f, zipFolder) msg = '''Please find a copy of today's First Coverage report attached. It includes all open and closed ideas entered into First Coverage for you since inception along with total return, vs sector, stop, target and comments. Regards, First Coverage www.firstcoverage.com 888-473-7836''' sterlingFiles = [] sendDirectory = todaysFolder + os.sep + 'zips' #if test: # zipFolder = todaysFolder + os.sep + 'zips' #if compress or test: # sendDirectory = zipFolder print 'looping over', os.listdir(sendDirectory) for report in os.listdir(sendDirectory): #print 'Todays Folder: ', sendDirectory + os.sep + report #Find the client name in the published reports. If a report isn't published for the client, #the client will not receive anything. for name in clientList: if 'SterlingJohnston' in report: sterlingFiles.append(todaysFolder + os.sep + report) elif name in report: sendReportToRecipient(name,[sendDirectory + os.sep + report], subject, msg, test, recips) #if test: print 'current report is: ', report print 'moving : ' + sendDirectory + os.sep + report + ' to : ' + todaysFolder + '_sent' + os.sep + 'zips' shutil.move(sendDirectory + os.sep + report,\ todaysFolder + '_sent' + os.sep + 'zips') #if test : print 'moving : ' + todaysFolder + os.sep + report[:-4] + '.xls' + ' to : ' + todaysFolder + '_sent' shutil.move(todaysFolder + os.sep + report[:-4] + '.xls', todaysFolder + '_sent') if len(sterlingFiles) == 2: #!!untested - sending the sterling formatted reports is discouraged going forward. sendReportToRecipient('Sterling Johnston',sterlingFiles, subject, msg, test, recips) for f in sterlingFiles: shutil.move(sendDirectory + os.sep + f, todaysFolder + '_sent' + os.sep + 'zips') shutil.move(todaysFolder + os.sep + f[:-4] + '.xls', todaysFolder + '_sent') everythingLeft = os.listdir(todaysFolder) leftovers = [] for thing in everythingLeft: if not os.path.isdir(todaysFolder + os.sep + thing): leftovers.append(thing) if leftovers !=[]: Email.notify(['email'],\ 'Problem with Selina/EOD/Daily Update XLS report',\ 'The following reports could not be sent for some reason. Most likely, the name of the file\nand the name in recipients.txt do not match up.'\ + '\n\n' + '\n'.join(leftovers) ) else: shutil.rmtree(todaysFolder) except: traceback.print_exc(file=open(r'c:\temp\EOD-XL_log.txt', 'a')) raise exit(1)
def main(): try: test = False compress = True recipientsDirectory = 'C:' + os.sep + 'PythonScripts' + os.sep + 'SelinaReports' + os.sep if not test: recipientsFile = open(recipientsDirectory + 'recipients.txt', 'r') else: recipientsFile = open(recipientsDirectory + 'recipients_old.txt', 'r') recips = readRecipientsIntoMemory(recipientsFile) if not test: dateFolder = str(datetime.date.today()) else: dateFolder = str(datetime.date.today())#+ datetime.timedelta(days = -1)) dateFolder = dateFolder[:4] + dateFolder[5:7] + dateFolder[8:10] named_date = datetime.date.today().strftime("%b %d.%y") subject = 'First Coverage Daily Update-'+ named_date #create the name of the output directory EOD_ReportsFolder = 'C:\\EOD-Reports\\' todaysFolder = '%s%s' %(EOD_ReportsFolder, dateFolder) #find all the reports generated on a given day Reports = os.listdir(todaysFolder) #add the path to the beginning of every report name todaysReports = [] for report in Reports: todaysReports.append(todaysFolder + os.sep + report) #give a name to the zip file where the reports will be archived #and zip all the files. if compress: zipFolder = todaysFolder + os.sep + 'zips' os.mkdir(todaysFolder + os.sep + 'zips') print todaysReports for report in todaysReports: print 'report', report #f.write('report' + report) f = report[:-4] + '.zip' Zipper.main([report],f, True) #[:-4] + "_" + str(x) + ".zip") #todaysZipFolder = zipFolder print 'move %s to %s' %(f, zipFolder) shutil.move(f, zipFolder) #email the reports to everyone in the list sendTo if not test: sendTo = ['email'] else: sendTo = ['email'] msg = '''Please find a copy of today's First Coverage report attached. It includes all open and closed ideas entered into First Coverage for you since inception along with total return, vs sector, stop, target and comments. Regards, First Coverage www.firstcoverage.com 888-473-7836''' sterlingFiles = [] sendDirectory = todaysFolder if test: zipFolder = todaysFolder + os.sep + 'zips' if compress or test: sendDirectory = zipFolder for report in os.listdir(sendDirectory): print 'Todays Folder: ', sendDirectory + os.sep + report #Find the client name in the published reports. If a report isn't published for the client, #the client will not receive anything. ##redacted time.sleep(5) if len(sterlingFiles) == 2: sendReportToRecipient('Sterling Johnston',sterlingFiles, subject, msg, test, recips) except: traceback.print_exc(file=open(r'c:\temp\EOD-XL_log.txt', 'a')) raise exit(1)