git.fiddlerwoaroof.com
Raw Blame History
#!/usr/bin/env python
import sys
import re
targ = re.compile(r'\xc2\xb7 Like')
import dateutil.parser
import dateutil

# copied at Mon Aug 25 14:46
start_date = dateutil.parser.parse('Mon Aug 28 02:00')
time_parser = re.compile(r'(\d+) (hr|min|sec|hour)')
for line in sys.stdin:
    match = targ.search(line)
    if match is not None:
        date = line.partition('\xc2\xb7')[0].strip()
        try:
            print dateutil.parser.parse(date)
        except (TypeError,ValueError):
            if date.startswith('Yesterday'):
                date = date.partition(' ')[2]
                date = 'August 24 %s' % date
                print dateutil.parser.parse(date)
            elif date.startswith('Just now'):
                print start_date
            else:
                match = time_parser.match(date)
                if match:
                    num,unit = match.groups()
                    if unit == 'hr' or unit == 'hour':
                        print start_date + dateutil.relativedelta.relativedelta(hours=-int(num))
                    elif unit == 'min':
                        print start_date + dateutil.relativedelta.relativedelta(minutes=-int(num))
                    elif unit == 'sec':
                        print start_date + dateutil.relativedelta.relativedelta(seconds=-int(num))
                    else:
                        print date
                        raise
                else:
                    print date
                    raise