git.fiddlerwoaroof.com
scrape.py
46aa7e6c
 #!/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