Guest User

Untitled

a guest
Aug 28th, 2017
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.89 KB | None | 0 0
  1. import csv
  2. import time
  3. import glob
  4. import os.path
  5. import re
  6. import smtplib
  7. from datetime import datetime
  8. from datetime import timedelta
  9. from conn import Con
  10. import sys
  11. import MySQLdb
  12. hostname = "10.93.173.205"
  13. counter=0
  14. gmail_user = 'iitteamits@gmail.com'
  15. gmail_pwd = 'teamits@2013'
  16. emailids = ['bharathiraja.muthurajan@gmail.com']
  17. #emailids = ['sriprixi@gmail.com','bharathiraja.muthurajan@gmail.com','rdeepan1992@gmail.com','lalithank@gmail.com']
  18.  
  19. class alerts:
  20. def __init__(self, runDate=None):
  21. print ("success")
  22. self.conn = MySQLdb.connect("localhost","root","root","traveltime")
  23. #self.con = Con()
  24. self.cur = self.conn.cursor()
  25. #self.con = Con()
  26. #self.cur = self.con.cur
  27. self.process()
  28. #self.process()
  29.  
  30. def gettotaldevices(self):
  31. with open('device.csv', 'r') as f:
  32. reader = csv.reader(f)
  33. master_List = list(reader)
  34. #print master_List
  35. master_list=[]
  36. for item1 in master_List:
  37.  
  38. #print trip
  39. d = "-()"
  40. master_li = re.split(''.join(d), str(item1))[-1]
  41. master_li = int(re.findall('\d+', master_li)[0])
  42.  
  43. #print(tripno)
  44. master_list.append(str(master_li))
  45. #print master_list
  46.  
  47. total = len(master_list)
  48. return total,master_list
  49.  
  50.  
  51. def getnotworkingdevices(self,devicelist):
  52. curDate=time.strftime("%Y-%m-%d")
  53. path = 'F://GPSDATA/'
  54. faultylist=[]
  55. for item in devicelist:
  56. file_path1=os.path.join(*[path,str(curDate)+"/"+str(item)+".csv"])
  57. file_path=os.path.join(*[path,str(item)+".csv"])
  58. if not os.path.isfile(file_path):
  59. if not os.path.isfile(file_path1):
  60. faultylist.append(item)
  61. return faultylist
  62. def sendMail(self,content):
  63. try:
  64. smtpserver = smtplib.SMTP("smtp.gmail.com",587)
  65. smtpserver.ehlo()
  66. smtpserver.starttls()
  67. smtpserver.ehlo
  68. smtpserver.login(gmail_user, gmail_pwd)
  69. #emailids = ['mineethac@hotmail.com','mailtomineetha@gmail.com']
  70. to = tuple(x[1] for x in enumerate(emailids))
  71. #print to, "HA"
  72. header = 'To:' + str(to) + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:kanpur Device Update \n'
  73. #print header
  74. msg = header + '\n'+content+' \n\n'
  75. smtpserver.sendmail(gmail_user, to, msg)
  76. #print to
  77. print ('Successfully sent Daily Status of GPS Devices as email !!!')
  78. smtpserver.close()
  79. counter = 1
  80. except smtplib.socket.gaierror:
  81. pass
  82.  
  83. def getdevroute(self,faultylist):
  84. try:
  85. query = "select route from dev_route where dev_id='%s' limit 1" %(str(faultylist))
  86. print(query)
  87. self.cur.execute(query)
  88. result = str(self.cur.fetchone())
  89. print (result[2:6])
  90. return result[2:6]
  91. except MySQLdb.Error as e:
  92. print (e)
  93. def getfleet(self,fleet):
  94. try:
  95. query="select fleet_id from dev_route where dev_id='%s' limit 1" %(str(fleet))
  96. print(query)
  97. self.cur.execute(query)
  98. result = str(self.cur.fetchone())
  99. print (result[2:10])
  100. return result[2:10]
  101. except:
  102. print ("error in fleet")
  103. def process(self):
  104. curDate=time.strftime( "%Y-%m-%d")
  105. Device_list=[]
  106. TotalDevices,Device_list=self.gettotaldevices()
  107. faultylist = self.getnotworkingdevices(Device_list)
  108. totalfaulty=len(faultylist)
  109. content="The status of "+str(TotalDevices)+" Kanpur GPS devices as on "+curDate+" are listed below: \n"
  110. content=content+"There are "+str(totalfaulty)+ " not working devices \n\n"+"\n--------------------------------------------------------------------------------------\n\n" +" Device id\t\t Route \t\t Fleetid \t\tAlert Type"+"\n--------------------------------------------------------------------------------\n"
  111. #content=content+ str(faultylist)
  112. for i in range(len(faultylist)):
  113. content = content+ str(faultylist[i])+"\t\t"+str(self.getdevroute(str(faultylist[i])))+"\t \t"+str(self.getfleet(str(faultylist[i])))+"\t\tNot Working"+"\n"
  114. print(content)
  115. self.sendMail(content)
  116. #Notworking=getnotworkingdevices(Device_list)
  117.  
  118. if __name__ == '__main__':
  119. a=alerts()
Add Comment
Please, Sign In to add comment