Advertisement
Guest User

Untitled

a guest
Nov 25th, 2014
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 9.42 KB | None | 0 0
  1.  
  2. from Tkinter import *
  3. import tkMessageBox
  4. import smtplib
  5. import time
  6. import Tkinter
  7.  
  8.  
  9.  
  10. class Scattergories(Tkinter.Frame):
  11.    
  12.     def __init__(self, master=None):
  13.        
  14.         Tkinter.Frame.__init__(self, master)
  15.         self.create_entryboxes()
  16.         root.title("Scattergories")
  17.         root.geometry("250x600")
  18.         self.mode = "stopped"
  19.         self.start_time = 0
  20.         self.elapsed_time = 0
  21.         self.create_buttons()
  22.         self.update_timeText()
  23.        
  24.  
  25.  
  26.     def create_buttons(self):
  27.         self.timeText = Tkinter.Label(root, text="02:05", font=("Arial", 20))
  28.         self.timeText.pack()
  29.  
  30.         self.start_pause_unpause_Button = Tkinter.Button(root, text='Start', command=self.start_pause_unpause)
  31.         self.start_pause_unpause_Button.pack()
  32.        
  33.         reset_button = Tkinter.Button(root, text='Reset', command=self.reset)
  34.         reset_button.pack()
  35.  
  36.  
  37.     def set_time(self, minutes, seconds):
  38.         pattern = '{0:02d}:{1:02d}'
  39.         timeString = pattern.format(minutes, seconds)
  40.         if timeString == '00:00':
  41.             self.submit()
  42.             self.time_elapsed = 0
  43.             self.showsubmissions()
  44.         self.timeText.configure(text=timeString)
  45.  
  46.        
  47.     def update_timeText(self):
  48.         if self.mode == "running":
  49.             self.time_elapsed = time.time() - self.start_time + self.elapsed_time
  50.             blabla = 125 - self.time_elapsed
  51.             seconds = int(blabla % 60)
  52.             minutes = int((blabla/60) % 60)
  53.             self.set_time(minutes, seconds)
  54.            
  55.         elif self.mode == "running":
  56.             self.elapsed_time = self.elapsed_time + time.time() - self.start_time
  57.             self.mode = "stopped"
  58.             self.start_pause_unpause_Button.config(text="Resume")
  59.         self.after(1000, self.update_timeText)
  60.        
  61.     def reset(self):
  62.         self.mode = "stopped"
  63.         self.elapsed_time = 0
  64.         self.set_time(2,10)
  65.         self.timeText.configure(text="02:05")
  66.         self.start_pause_unpause_Button.config(text="Start")
  67.         self.clear()
  68.         self.disable_entry()
  69.  
  70.  
  71.     def start_pause_unpause(self):
  72.         if self.mode == "stopped":
  73.             self.start_time = time.time()
  74.             self.mode = "running"
  75.             self.start_pause_unpause_Button.config(text='',relief=FLAT)
  76.  
  77.         self.enable_entry()
  78.  
  79.     def clear(self):
  80.         self.answer1.set('')
  81.         self.answer2.set('')
  82.         self.answer3.set('')
  83.         self.answer4.set('')
  84.         self.answer5.set('')
  85.         self.answer6.set('')
  86.         self.answer7.set('')
  87.         self.answer8.set('')
  88.         self.answer9.set('')
  89.         self.answer10.set('')
  90.         self.answer11.set('')
  91.         self.answer12.set('')
  92.  
  93.  
  94.     def create_entryboxes(self):
  95.         #Entry box, variable is a string variable
  96.         self.answer1 = StringVar()
  97.         self.answer2 = StringVar()
  98.         self.answer3 = StringVar()
  99.         self.answer4 = StringVar()
  100.         self.answer5 = StringVar()
  101.         self.answer6 = StringVar()
  102.         self.answer7 = StringVar()
  103.         self.answer8 = StringVar()
  104.         self.answer9 = StringVar()
  105.         self.answer10 = StringVar()
  106.         self.answer11 = StringVar()
  107.         self.answer12 = StringVar()
  108.        
  109.  
  110.         label1 = Tkinter.Label(root, text="1:")
  111.         label1.pack()
  112.         self.text1 = Tkinter.Entry(root, textvariable=self.answer1)
  113.         self.text1.pack(padx=5)
  114.         self.text1.configure(state='disabled')
  115.        
  116.         label2 = Tkinter.Label(root, text="2:")
  117.         label2.pack()
  118.         self.text2 = Tkinter.Entry(root, textvariable=self.answer2)
  119.         self.text2.pack(padx=5)
  120.         self.text2.configure(state='disabled')
  121.        
  122.         label3 = Tkinter.Label(root, text="3:")
  123.         label3.pack()
  124.         self.text3 = Tkinter.Entry(root, textvariable=self.answer3)
  125.         self.text3.pack(padx=5)
  126.         self.text3.configure(state='disabled')
  127.        
  128.         label4 = Tkinter.Label(root, text="4:")
  129.         label4.pack()
  130.         self.text4 = Tkinter.Entry(root, textvariable=self.answer4)
  131.         self.text4.pack(padx=5)
  132.         self.text4.configure(state='disabled')
  133.        
  134.         label5 = Tkinter.Label(root, text="5:")
  135.         label5.pack()
  136.         self.text5 = Tkinter.Entry(root, textvariable=self.answer5)
  137.         self.text5.pack(padx=5)
  138.         self.text5.configure(state='disabled')
  139.        
  140.         label6 = Tkinter.Label(root, text="6:")
  141.         label6.pack()
  142.         self.text6 = Tkinter.Entry(root, textvariable=self.answer6)
  143.         self.text6.pack(padx=5)
  144.         self.text6.configure(state='disabled')
  145.        
  146.         label7 = Tkinter.Label(root, text="7:")
  147.         label7.pack()
  148.         self.text7 = Tkinter.Entry(root, textvariable=self.answer7)
  149.         self.text7.pack(padx=5)
  150.         self.text7.configure(state='disabled')
  151.        
  152.         label8 = Tkinter.Label(root, text="8:")
  153.         label8.pack()
  154.         self.text8 = Tkinter.Entry(root, textvariable=self.answer8)
  155.         self.text8.pack(padx=5)
  156.         self.text8.configure(state='disabled')
  157.        
  158.         label9 = Tkinter.Label(root, text="9:")
  159.         label9.pack()
  160.         self.text9 = Tkinter.Entry(root, textvariable=self.answer9)
  161.         self.text9.pack(padx=5)
  162.         self.text9.configure(state='disabled')
  163.        
  164.         label10 = Tkinter.Label(root, text="10:")
  165.         label10.pack()
  166.         self.text10 = Tkinter.Entry(root, textvariable=self.answer10)
  167.         self.text10.pack(padx=5)
  168.         self.text10.configure(state='disabled')
  169.        
  170.         label11 = Tkinter.Label(root, text="11:")
  171.         label11.pack()
  172.         self.text11 = Tkinter.Entry(root, textvariable=self.answer11)
  173.         self.text11.pack(padx=5)
  174.         self.text11.configure(state='disabled')
  175.        
  176.         label12 = Tkinter.Label(root, text="12:")
  177.         label12.pack()
  178.         self.text12 = Tkinter.Entry(root, textvariable=self.answer12)
  179.         self.text12.pack(padx=5)
  180.         self.text12.configure(state='disabled')
  181.  
  182.     def enable_entry(self):
  183.         self.text1.configure(state='normal')
  184.         self.text2.configure(state='normal')
  185.         self.text3.configure(state='normal')
  186.         self.text4.configure(state='normal')
  187.         self.text5.configure(state='normal')
  188.         self.text6.configure(state='normal')
  189.         self.text7.configure(state='normal')
  190.         self.text8.configure(state='normal')
  191.         self.text9.configure(state='normal')
  192.         self.text10.configure(state='normal')
  193.         self.text11.configure(state='normal')
  194.         self.text12.configure(state='normal')
  195.        
  196.     def disable_entry(self):
  197.         self.text1.configure(state='disabled')
  198.         self.text2.configure(state='disabled')
  199.         self.text3.configure(state='disabled')
  200.         self.text4.configure(state='disabled')
  201.         self.text5.configure(state='disabled')
  202.         self.text6.configure(state='disabled')
  203.         self.text7.configure(state='disabled')
  204.         self.text8.configure(state='disabled')
  205.         self.text9.configure(state='disabled')
  206.         self.text10.configure(state='disabled')
  207.         self.text11.configure(state='disabled')
  208.         self.text12.configure(state='disabled')
  209.        
  210.     def submit(self):
  211.         fname = 'scattegoriesanswers.txt'
  212.         with open(fname, 'w') as fout:
  213.             fout.write("1:")
  214.             fout.write(self.answer1.get())
  215.             fout.write("\n2:")
  216.             fout.write(self.answer2.get())
  217.             fout.write("\n3:")
  218.             fout.write(self.answer3.get())
  219.             fout.write("\n4:")
  220.             fout.write(self.answer4.get())
  221.             fout.write("\n5:")
  222.             fout.write(self.answer5.get())
  223.             fout.write("\n6:")
  224.             fout.write(self.answer6.get())
  225.             fout.write("\n7:")
  226.             fout.write(self.answer7.get())
  227.             fout.write("\n8:")
  228.             fout.write(self.answer8.get())
  229.             fout.write("\n9:")
  230.             fout.write(self.answer9.get())
  231.             fout.write("\n10:")
  232.             fout.write(self.answer10.get())
  233.             fout.write("\n11:")
  234.             fout.write(self.answer11.get())
  235.             fout.write("\n12:")
  236.             fout.write(self.answer12.get())
  237.          
  238.         self.send_email()
  239.        
  240.     def send_email(self):
  241.        
  242.             with open ("scattegoriesanswers.txt", "r") as myfile:
  243.                 data=myfile.read()
  244.                
  245.             gmail_user = "youremail"
  246.             gmail_pwd = "pass"
  247.             FROM = 'youremail'
  248.             TO = ['williammeehan.11@gmail.com', 'dtmaguire@gmail.com'] #must be a list
  249.             SUBJECT = "Scattergories"
  250.             TEXT = data
  251.  
  252.             # Prepare actual message
  253.             message = """\From: %s\nTo: %s\nSubject: %s\n\n%s
  254.            """ % (FROM, ", ".join(TO), SUBJECT, TEXT)
  255.             try:
  256.                 #server = smtplib.SMTP(SERVER)
  257.                 server = smtplib.SMTP("smtp.gmail.com", 587) #or port 465 doesn't seem to work!
  258.                 server.ehlo()
  259.                 server.starttls()
  260.                 server.login(gmail_user, gmail_pwd)
  261.                 server.sendmail(FROM, TO, message)
  262.                 #server.quit()
  263.                 server.close()
  264.                 print 'successfully sent the mail'
  265.             except:
  266.                 print "failed to send mail"
  267.                    
  268.        
  269.  
  270.  
  271.        
  272. root = Tkinter.Tk()
  273. app = Scattergories(master=root)
  274. app.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement