import argparse
from backports.lzma import LZMAFile
import csv
import datetime
import time
import tweepy
parser = argparse.ArgumentParser(description=\'Links report on twitter -- some basic metrics as to how many links I shared today\')
parser.add_argument(\'API_KEY\', action=\'store\', metavar=\'API_KEY\', help=\'Twitter API key\')
parser.add_argument(\'API_SECRET\', action=\'store\', metavar=\'API_SECRET\', help=\'Twitter API secret\')
parser.add_argument(\'ACCESS_TOKEN\', action=\'store\', metavar=\'ACCESS_TOKEN\', help=\'Twitter access token\')
parser.add_argument(\'ACCESS_SECRET\', action=\'store\', metavar=\'ACCESS_SECRET\', help=\'Twitter access secret\')
parsed = parser.parse_args()
auth = tweepy.OAuthHandler(parsed.API_KEY, parsed.API_SECRET)
auth.set_access_token(parsed.ACCESS_TOKEN, parsed.ACCESS_SECRET)
api = tweepy.API(auth)
tweets = []
today = datetime.datetime.today() - datetime.timedelta(hours=24)
today.replace(hour=0, minute=0, second=0, microsecond=0)
today = today.timetuple()
def links_today(link):
date_of_link = time.localtime(long(link[0]))
return today < date_of_link
with LZMAFile(\'/home/ec2-user/public_html/links.csv.xz\') as fin:
reader = csv.reader(fin.readlines()[1:])
tweets = filter(links_today, reader)
status = \'In the last 24 hours, @hdiwan sent {0} links to {1} unique recipients.\'.format(len(tweets[1]), len(set(tweets[2])))
if len(tweets) != 0:
api.update_status(status=status)