def process(link): assert link.thing_type == 'link' author_id = link.author_id timestamp = link.timestamp fname = make_fullname(Link, link.thing_id) yield 'user-submitted-%d' % author_id, timestamp, fname if not link.spam: sr_id = link.sr_id ups, downs = link.ups, link.downs yield ('sr-hot-all-%d' % sr_id, _hot(ups, downs, timestamp), timestamp, fname) yield 'sr-new-all-%d' % sr_id, timestamp, fname yield 'sr-top-all-%d' % sr_id, score(ups, downs), timestamp, fname yield ('sr-%s-all-%d' % (g.voting_upvote_path, sr_id), upvotes(ups), timestamp, fname) yield ('sr-%s-all-%d' % (g.voting_controversial_path, sr_id), controversy(ups, downs), timestamp, fname) for time in '1 year', '1 month', '1 week', '1 day', '1 hour': if timestamp > epoch_seconds(timeago(time)): tkey = time.split(' ')[1] yield ('sr-top-%s-%d' % (tkey, sr_id), score(ups, downs), timestamp, fname) yield ('sr-%s-%s-%d' % (g.voting_upvote_path, tkey, sr_id), upvotes(ups), timestamp, fname) yield ('sr-%s-%s-%d' % (g.voting_controversial_path, tkey, sr_id), controversy(ups, downs), timestamp, fname)
def process(link): assert link.thing_type == 'link' timestamp = link.timestamp fname = make_fullname(Link, link.thing_id) if not link.spam and not link.deleted: if link.url: domains = UrlParser(link.url).domain_permutations() else: domains = [] ups, downs = link.ups, link.downs for tkey, oldest in oldests.iteritems(): if timestamp > oldest: sc = score(ups, downs) contr = controversy(ups, downs) h = _hot(ups, downs, timestamp) upvotes = upvotes(ups) for domain in domains: yield ('domain/top/%s/%s' % (tkey, domain), sc, timestamp, fname) yield ('domain/%s/%s/%s' % (g.voting_upvote_path, tkey, domain), upvotes, timestamp, fname) yield ('domain/%s/%s/%s' % (g.voting_controversial_path, tkey, domain), contr, timestamp, fname) if tkey == "all": yield ('domain/hot/%s/%s' % (tkey, domain), h, timestamp, fname) yield ('domain/new/%s/%s' % (tkey, domain), timestamp, timestamp, fname)
def process(thing): if thing.deleted: return thing_cls = thingcls_by_name[thing.thing_type] fname = make_fullname(thing_cls, thing.thing_id) thing_score = score(thing.ups, thing.downs) thing_upvotes = upvotes(thing.ups) thing_controversy = controversy(thing.ups, thing.downs) for interval, cutoff in cutoff_by_interval.iteritems(): if thing.timestamp < cutoff: continue yield ("user/%s/top/%s/%d" % (thing.thing_type, interval, thing.author_id), thing_score, thing.timestamp, fname) yield ("user/%s/%s/%s/%d" % (thing.thing_type, g.voting_upvote_path, interval, thing.author_id), thing_upvotes, thing.timestamp, fname) yield ("user/%s/%s/%s/%d" % (thing.thing_type, g.voting_controversial_path, interval, thing.author_id), thing_controversy, thing.timestamp, fname) if thing.spam: continue if thing.thing_type == "link": yield ("sr/link/top/%s/%d" % (interval, thing.sr_id), thing_score, thing.timestamp, fname) yield ("sr/link/%s/%s/%d" % (g.voting_upvote_path, interval, thing.sr_id), thing_upvotes, thing.timestamp, fname) yield ("sr/link/%s/%s/%d" % (g.voting_controversial_path, interval, thing.sr_id), thing_controversy, thing.timestamp, fname) if thing.url: try: parsed = UrlParser(thing.url) except ValueError: continue for domain in parsed.domain_permutations(): yield ("domain/link/top/%s/%s" % (interval, domain), thing_score, thing.timestamp, fname) yield ("domain/link/%s/%s/%s" % (g.voting_upvote_path, interval, domain), thing_upvotes, thing.timestamp, fname) yield ("domain/link/%s/%s/%s" % (g.voting_controversial_path, interval, domain), thing_controversy, thing.timestamp, fname)