Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.68 KB | None | 0 0
  1. import csv
  2. import urllib.request, json
  3. import pymysql.cursors
  4. from getpass import getuser
  5.  
  6. import smtplib
  7. from email.mime.multipart import MIMEMultipart
  8. from email.mime.text import MIMEText
  9.  
  10. from datetime import date
  11.  
  12. import codecs
  13.  
  14. import schedule
  15. import time
  16.  
  17. cnx = pymysql.connect(user="bookzi_dk",
  18. password="xxxxxxxxxxxx",
  19. host='xxxxxxxxxxxx',
  20. database='xxxxxxxxxx')
  21.  
  22. cursor = cnx.cursor()
  23.  
  24.  
  25. def Aopgang_updatedata():
  26. try:
  27. #Removes all data from table Dopgang
  28. truncateAopgang = ('Truncate Table Aopgang;')
  29. cursor.execute(truncateAopgang)
  30.  
  31. #Adds new information
  32. with open("A-opgang.csv") as csvfile:
  33. reader = csv.DictReader(csvfile, delimiter = ';')
  34. for row in reader:
  35. week = row['week']
  36. common = row['common']
  37. kitchen = row['kitchen']
  38.  
  39. query = ('INSERT INTO Aopgang (week, common, kitchen) VALUES (%s, %s, %s);')
  40. cursor.execute(query, (week, common, kitchen))
  41.  
  42. cnx.commit()
  43. cnx.close()
  44.  
  45. print("A opgang data opdateret!")
  46.  
  47. except:
  48. print('Error running Aopgang_updatedata')
  49. def Dopgang_updatedata():
  50.  
  51. try:
  52. #Removes all data from table Dopgang
  53. truncateDopgang = ('Truncate Table Dopgang;')
  54. cursor.execute(truncateDopgang)
  55.  
  56.  
  57.  
  58. #Adds new information
  59. with open("D-opgang.csv") as csvfile:
  60. reader = csv.DictReader(csvfile, delimiter = ';')
  61. for row in reader:
  62. week = row['week']
  63. common = row['common']
  64. kitchen = row['kitchen']
  65.  
  66. query = ('INSERT INTO Dopgang (week, common, kitchen) VALUES (%s, %s, %s);')
  67. cursor.execute(query, (week, common, kitchen))
  68.  
  69. cnx.commit()
  70. cnx.close()
  71.  
  72. print("D opgang data opdateret!")
  73.  
  74.  
  75. except:
  76. print('Error running Dopgang_updatedata')
  77.  
  78.  
  79. def Bopgang_updatedata():
  80.  
  81. try:
  82. #Removes all data from table Dopgang
  83. truncateBopgang = ('Truncate Table Bopgang;')
  84. cursor.execute(truncateBopgang)
  85.  
  86.  
  87.  
  88. #Adds new information
  89. with open("B-opgang.csv") as csvfile:
  90. reader = csv.DictReader(csvfile, delimiter = ';')
  91. for row in reader:
  92. week = row['week']
  93. common = row['common']
  94.  
  95.  
  96. query = ('INSERT INTO Bopgang (week, common) VALUES (%s, %s);')
  97. cursor.execute(query, (week, common))
  98.  
  99. cnx.commit()
  100. cnx.close()
  101.  
  102. print("B opgang data opdateret!")
  103.  
  104. except:
  105. print('Error running Dopgang_updatedata')
  106.  
  107.  
  108.  
  109. def sendmail(textmsg,subject,emails):
  110.  
  111.  
  112. try:
  113.  
  114. msg = MIMEMultipart()
  115. msg['from']= "noreply@xxxxxxx"
  116. msg['To']= emails
  117. msg['Subject']= subject
  118.  
  119. body= textmsg
  120. msg.attach(MIMEText(body, 'html'))
  121. print(msg)
  122.  
  123. server = smtplib.SMTP('asmtp.unoeuro.com', 587)
  124.  
  125. server.starttls()
  126. server.login(msg['From'], "xxxxxxxxxxxxx")
  127.  
  128. server.sendmail(msg['From'], msg['To'], msg.as_string())
  129. server.quit()
  130.  
  131. print('Mail was send sucessfully')
  132.  
  133. except:
  134. print('Error running sendmail')
  135. def getcurrentweeknumber():
  136.  
  137. return date.today().isocalendar()[1]
  138. def weekcleaning_Aopgang(weeknumber):
  139. try:
  140. query = ('SELECT * FROM Aopgang where week=%s;')
  141. cursor.execute(query,(int(weeknumber)))
  142. result = cursor.fetchall()
  143. final = []
  144.  
  145. for i in result:
  146. common=i[1]
  147. kitchen=i[2]
  148.  
  149. final.append(common)
  150. final.append(kitchen)
  151.  
  152. return final
  153.  
  154. except:
  155. print('Erro getting info from function weekcleaning_Aopgang with weeknumber'+str(weeknumber))
  156. def weekcleaning_Dopgang(weeknumber):
  157. try:
  158. query = ('SELECT * FROM Dopgang where week=%s;')
  159. cursor.execute(query,(int(weeknumber)))
  160. result = cursor.fetchall()
  161. final = []
  162.  
  163. for i in result:
  164. common=i[1]
  165. kitchen=i[2]
  166.  
  167. final.append(common)
  168. final.append(kitchen)
  169.  
  170. return final
  171.  
  172. except:
  173. print('Erro getting info from function weekcleaning_Dopgang with weeknumber'+str(weeknumber))
  174. def getuserinfo(dormtype,roomnumber):
  175.  
  176.  
  177. try:
  178. query = ('SELECT * fROM userinfo WHERE dormtype=%s AND roomnumber=%s;')
  179.  
  180. cursor.execute(query,(dormtype,roomnumber))
  181. result = cursor.fetchall()
  182.  
  183. userinfo=[]
  184.  
  185. for i in result:
  186. info=[]
  187. firstname=i[1]
  188. email=i[2]
  189. dormtype=i[3]
  190. roomnumber=i[4]
  191. language=i[5]
  192. deletekey=i[7]
  193. info.append(firstname)
  194. info.append(email)
  195. info.append(dormtype)
  196. info.append(roomnumber)
  197. info.append(language)
  198. info.append(deletekey)
  199.  
  200. userinfo.append(info)
  201.  
  202. if userinfo==[]:
  203. return ""
  204.  
  205. else:
  206. return userinfo
  207.  
  208. except:
  209. print("Error getting info from function getuserinfo with dormtype: "+str(dormtype)+"roomnumber: "+str(roomnumber))
  210. def ENemailtemplate():
  211. try:
  212. f=codecs.open("emailen.html", 'r',encoding="utf-8")
  213.  
  214. emailstring=f.read()
  215. return emailstring
  216.  
  217. except:
  218. print("Error finding emailtemplate EN (ENemailtemplate")
  219.  
  220. def DAemailtemplate():
  221.  
  222. try:
  223. f=codecs.open("emailda.html", 'r' ,encoding="utf-8")
  224. emailstring=f.read()
  225. return emailstring
  226. except:
  227. print("Error finding emailtempalte DA (DAemailtamplate")
  228.  
  229.  
  230. aOpgang_common=(getuserinfo("a",weekcleaning_Aopgang(getcurrentweeknumber())[0]))
  231. aOpgang_kitchen=(getuserinfo("a",weekcleaning_Aopgang(getcurrentweeknumber())[1]))
  232.  
  233. #Get cleaning userinfo for Dopgang
  234. dOpgang_common=(getuserinfo("d",weekcleaning_Dopgang(getcurrentweeknumber())[0]))
  235. dOpgang_kitchen=(getuserinfo("d",weekcleaning_Dopgang(getcurrentweeknumber())[1]))
  236.  
  237.  
  238.  
  239.  
  240. def sendreminder(userinfocleaningduty,area):
  241.  
  242.  
  243. if len(userinfocleaningduty)>0:
  244.  
  245. for i in userinfocleaningduty:
  246.  
  247. #If language is danish
  248. if i[4]=="da":
  249. areas=["Fællesområde","Køkkenet"]
  250.  
  251. print(i)
  252.  
  253. emailtemp=DAemailtemplate()
  254. emailtemp=emailtemp.replace("(name)",i[0])
  255. emailtemp=emailtemp.replace("(dormtype)",i[2]+"-opgang")
  256. emailtemp=emailtemp.replace("(roomnumber)",str(i[3]))
  257. emailtemp=emailtemp.replace("(weeknumber)",str(getcurrentweeknumber()))
  258. emailtemp=emailtemp.replace("(area)", areas[area])
  259.  
  260. emailtemp=emailtemp.replace("(code)",i[5])
  261. emailtemp=emailtemp.replace("(email)",i[1])
  262. sendmail(emailtemp, "Rengøringsreminder", i[1])
  263.  
  264. #if language is english
  265. if i[4]=="en":
  266.  
  267. areas=["Commonarea","Kitchen"]
  268. emailtemp=ENemailtemplate()
  269. emailtemp=emailtemp.replace("(name)",i[0])
  270. emailtemp=emailtemp.replace("(dormtype)",i[2])
  271. emailtemp=emailtemp.replace("(roomnumber)",str(i[3]))
  272. emailtemp=emailtemp.replace("(weeknumber)",str(getcurrentweeknumber()))
  273. emailtemp=emailtemp.replace("(area)",areas[area])
  274.  
  275. emailtemp=emailtemp.replace("(code)",i[5])
  276. emailtemp=emailtemp.replace("(email)",i[1])
  277.  
  278. sendmail(emailtemp, "Cleaningreminder", i[1])
  279.  
  280.  
  281.  
  282. def start():
  283. #Common A-opgang
  284. sendreminder(aOpgang_common,0)
  285. #Kitchen A-opgang
  286. sendreminder(aOpgang_kitchen,1)
  287. #Kitchen D-opgang
  288. sendreminder(dOpgang_common,0)
  289.  
  290. sendreminder(dOpgang_kitchen,1)
  291.  
  292.  
  293. # schedule.every().monday.at("10:00").do(start)
  294. #
  295. #
  296. # while True:
  297. # schedule.run_pending()
  298. # time.sleep(1)
  299.  
  300. print(getuserinfo("a", "6"))
  301.  
  302. start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement