Skip to content

Instantly share code, notes, and snippets.

@hughker
Created February 3, 2016 17:53
Show Gist options
  • Save hughker/2f9e819895df50e79eae to your computer and use it in GitHub Desktop.
Save hughker/2f9e819895df50e79eae to your computer and use it in GitHub Desktop.
Tweet Speed Test Results to Comcast / TWC / Anyone
#!/usr/bin/python
import os
import sys
import csv
import datetime
import time
import twitter
def test():
# run speedtest-cli
print 'running test'
a = os.popen("python /home/pi/speedtest/speedtest-cli --simple").read()
print 'ran'
# split the 3 line result (ping,down,up)
lines = a.split('\n')
print a
ts = time.time()
date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
# if speedtest could not connect set the speeds to 0
if "Cannot" in a:
p = 100
d = 0
u = 0
# extract the values for ping down and up values
else:
p = lines[0][6:11]
d = lines[1][10:14]
u = lines[2][8:12]
print date, p, d, u
# save the data to file for local network plotting
out_file = open('/var/www/assets/data.csv', 'a')
writer = csv.writer(out_file)
writer.writerow((ts * 1000, p, d, u))
out_file.close()
# connect to twitter
TOKEN = ""
TOKEN_KEY = ""
CON_SEC = ""
CON_SEC_KEY = ""
my_auth = twitter.OAuth(TOKEN, TOKEN_KEY, CON_SEC, CON_SEC_KEY)
twit = twitter.Twitter(auth=my_auth)
# try to tweet if speedtest couldnt even connet. Probably wont work if the
# internet is down
if "Cannot" in a:
try:
tweet = "Hey @Comcast @ComcastCares why is my internet down? I pay for 150down\\10up in Washington DC? #comcastoutage #comcast"
twit.statuses.update(status=tweet)
except:
pass
# tweet if down speed is less than whatever I set
elif eval(d) < 50:
print "trying to tweet"
try:
# i know there must be a better way than to do (str(int(eval())))
tweet = "Hey @Comcast why is my internet speed " + str(int(eval(d))) + "down\\" + str(int(eval(
u))) + "up when I pay for 150down\\10up in Washington DC? @ComcastCares @xfinity #comcast #speedtest"
twit.statuses.update(status=tweet)
except Exception, e:
print str(e)
pass
return
if __name__ == '__main__':
test()
print 'completed'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment