#!/usr/bin/python import sys import os slog = open("safari_log", "r") pages = {} times = {} for line in slog: if line.startswith("*"): # nuke everything oldpages = pages oldtimes = times pages = {} times = {} else: try: tag, time, url = line.split(" ",2) except: print "line:",line raise if tag == "+": pages[url] = 1 times[url] = time elif tag == "-": if url in pages: del pages[url] del times[url] def emit_pages(pages,times): pagelist = [] for p in pages: pagelist.append((times[p], p)) pagelist.sort() for t,p in pagelist: u = p.strip() print u # or just "if not pages"? or maybe if len(pages)<3? if len(sys.argv) == 2 and sys.argv[1] == "old": emit_pages(oldpages, oldtimes) else: if len(pages)<3: print >> sys.stderr, "Only got", pages, "leftover, assume you want old ones" emit_pages(oldpages, oldtimes) else: emit_pages(pages, times)