June 26, 2014

How not to Miss a Link from Me

I share quite a few items daily with friends. If you happen to miss a link, the following script reports on every one within the last day, without duplicates, in 36 lines of python:

#!~hdiwan/.virtualenvs/daily_report/bin/python
#
import cStringIO as StringIO
import codecs
import csv
import datetime
import logging
import argparse
import csv

import requests

if __name__ == '__main__':
    argparser = argparse.ArgumentParser(description="Get today's links")
    argparser.add_argument('-v','--verbose', help='be verbose', action='store_false')
    parsed = argparser.parse_args()

    if not parsed.verbose:
        logging.basicConfig(level=logging.DEBUG)
    else:
        logging.basicConfig(level=logging.FATAL)

    yesterday = datetime.date.today() - datetime.timedelta(days = 1)
    yesterday = datetime.datetime.fromtimestamp(int(yesterday.strftime('%s')))

    resp = requests.get('http://hasan.d8u.us/sent_links.csv')
    resp_ = StringIO.StringIO(resp.content)

    shared_links = list(csv.reader(resp_))[1:]

    shared_links_today = set()
    for s in shared_links:
        if datetime.datetime.fromtimestamp(float(s[0])) > yesterday or datetime.datetime.fromtimestamp(float(s[0])) == yesterday:
            shared_links_today.add(s[2])
    for row in shared_links_today:
        print "{}".format(row)

Running the code above just now results in:

% ~/bin/day.py
http://www.reddit.com/r/vancouver/
http://www.reddit.com/r/investing/
http://www.reddit.com/r/boardgames/
http://fortune.com/2014/06/19/career-wise-is-it-better-to-be-smart-or-hardworking/
http://clock.darkhorseanalytics.com/
http://www.newstatesman.com/future-proof/2014/06/you-are-more-likely-be-bitten-luiz-suarez-1-2000-shark-1-3700000
http://elitedaily.com/envision/treat-yourself-50-dream-hotels-that-will-inspire-you-to-work-harder-photos/643632/
http://blog.gulflive.com/mississippi-press-news/2014/06/thad_cochran_vs_chris_mcdaniel.html
http://www.reddit.com/r/PoliticalHumor/
http://www.reddit.com/r/slowcooking/
http://www.reddit.com/r/bodybuilding/
http://www.reddit.com/r/seduction/
http://www.reddit.com/r/london/comments/292yy4/in_london_for_4_days_where_should_i_eat/
http://bigstory.ap.org/article/judge-no-fly-list-violated-constitutional-rights
http://www.coindesk.com/julian-assange-told-googles-eric-schmidt-embrace-bitcoin/
http://www.reddit.com/r/Gunners/
http://www.livescience.com/46466-higgs-decays-to-fermions.html
http://www.reddit.com/r/math/
http://www.reddit.com/r/LiverpoolFC/
http://www.reddit.com/r/toronto/
http://www.boston.com/news/local/massachusetts/2014/06/25/mass-casualty-event-reported-boston-garden/XpT3rcPy9YrmgzsYTD1XcJ/story.html
http://www.reddit.com/r/NetflixBestOf/
http://www.reddit.com/r/LosAngeles/
http://www.reddit.com/r/Cooking/
http://www.cio.com/article/754661/How_to_Raise_a_Tech_Entrepreneur_Lessons_for_the_Rest_of_Us_
http://www.reddit.com/r/Baking/
http://www.reddit.com/r/Austin/
http://www.reddit.com/r/tennis/
http://web.mit.edu

No comments:

Post a Comment