When you have oncall often sometimes is easy to forget hows oncall and when you are not. So for the last time wonder how is oncall and ask some python for some help,
The script
#!/usr/bin/env python # # Mattias Hemmingsson # matte@elino.se # # Script for reminder friend when to bet # Uses and csv file and send email to remind when its time to bet. # # import csv import smtplib from datetime import datetime, timedelta, date
#Get users and send email to users sender = 'noreply@elino.se' emails =[] better = "" week = 2
def save_to_file(name): ''' Saves the oncall to file ''' f = open("oncall.txt", "w") f.write(name) f.close()
def read_file(): ''' read the oncall to file ''' f = open("oncall.txt", "r") return int(f.readline()) + 1 f.close()
def send_oncall(): ''' Send an reminder ho is oncall '''
#Get cont on oncall staff and next oncall numeroncall = str(int(len(open("people.csv").readlines())) +1) nextoncall = str(read_file()) #Loop to begning of file if nextoncall == numeroncall: nextoncall = '1' #Send email to oncall staff emails=[]
#Get how is oncall with open('people.csv', 'rb') as f: reader = csv.reader(f) for row in reader: emails.append(row[2]) if row[0] == nextoncall: oncall = row[1] #Save oncall to file save_to_file(row[0])
message = """From: SYCO <noreply@elino.se> To: SYSOP Subject: {0} IS NOW ONCALL This is an reminder that {0} is now oncall. """.format(oncall)
send_email(emails,message)
#Sending the email def send_email(emails,message): sender = "sycoreply@elino.se" ''' Send the email ''' try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, emails, message) print "Successfully sent email" except SMTPException: print "Error: unable to send email" print emails print sender + message
send_oncall()
And then a file with the oncall staff
1,Mattias Hemmingsson,matte@elino.se 2,oncall one,oncall@elino.se 3,oncall two,oncall2@elino.se 4,oncall tre,oncall3@elino.se
More update in my github