def handle_item(self, user, item, raw_item):
     key = 'history:%s' % user.username
     
     if key not in cache:
         result = yield dbpool.runQuery("SELECT item, watch_date FROM history WHERE user = ?", (user.username, ))
         cache[key] = dict((r['item'], r['watch_date']) for r in result)
     
     history = cache[key]
     item['watched'] = item['name'] in history
     defer.returnValue(item)
 def listing_result_item(self, section, user, path, item):
     key = 'history:%s' % user.username
     
     if item['rel'] == 'file':
         if key not in cache:
             result = yield dbpool.runQuery("SELECT item, watch_date FROM history WHERE user = ?", (user.username, ))
             cache[key] = dict((r['item'], r['watch_date']) for r in result)
         
         history = cache[key]
         item['watched'] = item['name'] in history
     defer.returnValue(item)