Advertisement
moisesmcardona

Liberty Speedtest Report Tool

Jan 31st, 2016
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.60 KB | None | 0 0
  1. #!/usr/bin/python
  2. #adaptado por Moisés Cardona http://moisescardona.net
  3. #trabajo original: http://thenextweb.com/shareables/2016/01/31/frustrated-comcast-customer-sets-up-bot-to-tweet-complaints-every-time-internet-speed-drops/
  4. #codigo del trabajo original: http://pastebin.com/WMEh802V
  5. import os
  6. import sys
  7. import csv
  8. import datetime
  9. import time
  10. import requests
  11.  
  12. def test():
  13.  
  14.         #run speedtest-cli
  15.         print 'running test'
  16.         a = os.popen("python /home/pi/Documents/speedtest-cli --simple").read()
  17.         print 'ran'
  18.         #split the 3 line result (ping,down,up)
  19.         lines = a.split('\n')
  20.         print a
  21.         ts = time.time()
  22.         date =datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
  23.         #if speedtest could not connect set the speeds to 0
  24.         if "Cannot" in a:
  25.                 p = 100
  26.                 d = 0
  27.                 u = 0
  28.         #extract the values for ping down and up values
  29.         else:
  30.                 p = lines[0][6:11]
  31.                 d = lines[1][10:14]
  32.                 u = lines[2][8:12]
  33.         print date,p, d, u
  34.         #save the data to file for local network plotting
  35.         out_file = open('/home/pi/Documents/data.csv', 'a')
  36.         writer = csv.writer(out_file)
  37.         writer.writerow((ts*1000,p,d,u))
  38.         out_file.close()
  39.  
  40.         #connect to facebook
  41.         face_token = 'YOUR_ID' #Sustituye YOUR_ID por el ID del app que debes crear en https://developers.facebook.com/
  42.     libertypageid = '155802867766659' #este es el ID de la pagina de liberty, pero puedes cambiarlo al ID de Claro o cualquier otro proveedor. Puedes conseguir el ID de la pagina en http://findmyfbid.com/
  43.  
  44.         #try to post to Liberty Page if speedtest couldnt even connet. Probably wont work if the internet is down
  45.         if "Cannot" in a:
  46.                 try:
  47.             post = 'Hola Liberty, por que no tengo internet? Pago por 40down\\4up en Carolina... Por favor resuelvanme!!'
  48.             post.replace(' ', '+')
  49.             requests.post("https://graph.facebook.com/" + libertypageid + "/feed/?message=" + post + "&access_token=" + face_token)
  50.                 except:
  51.                         pass
  52.  
  53.         # post to Liberty Page if down speed is less than whatever I set
  54.         elif eval(d)<30:
  55.                 print "trying to Post to Facebook Page"
  56.                 try:
  57.                         # i know there must be a better way than to do (str(int(eval())))
  58.             post = 'Hola Liberty, por que mi velocidad de internet es " + str(int(eval(d))) + "down\\" + str(int(eval(u))) + "up cuando pago por 40down\\4up en Carolina... Por favor resuelvanme!!'
  59.             post.replace(' ', '+')
  60.             requests.post("https://graph.facebook.com/" + libertypageid + "/feed/?message=" + post + "&access_token=" + face_token)
  61.                 except Exception,e:
  62.                         print str(e)
  63.                         pass
  64.     elif eval(d)>=30:
  65.         print "trying to Post to Facebook Page"
  66.                 try:
  67.                         # i know there must be a better way than to do (str(int(eval())))
  68.             post = 'Hola Liberty, Gracias por ofrecerme un servicio de excelencia. Pago por 40down\\4up en Carolina y estoy recibiendo la velocidad completa.'
  69.             post.replace(' ', '+')
  70.             requests.post("https://graph.facebook.com/" + libertypageid + "/feed/?message=" + post + "&access_token=" + face_token)
  71.                 except Exception,e:
  72.                         print str(e)
  73.                         pass
  74.         return
  75.        
  76. if __name__ == '__main__':
  77.         test()
  78.         print 'completed'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement