def set_daily_items(self, value, day): from better_represent.search import NewsAggregator a = NewsAggregator() curr_items = self.get_daily_items(day) try: curr_items.append(value) a.sort(curr_items) except AttributeError: curr_items = [value] items = [n for n in a.uniquify(curr_items, key=lambda x: x['title'])] tyrant_store.set(self.tyrant_daily_key(day), items) curr_dates = self.tyrant_dates try: curr_dates.append(self.tyrant_daily_key(day)) curr_dates.sort() except AttributeError: curr_dates = [self.tyrant_daily_key(day)] self.tyrant_dates = [n for n in a.uniquify(curr_dates)]
def update_stats(self, verbosity): representatives = GenericRep.objects.all().live() for rep in representatives: a = NewsAggregator() a.get_multiple([(" ".join([rep.first_name, rep.last_name]), [rep.get_type_display()], rep)]) if verbosity: from better_represent.utils.progressbar import ProgressBar prog = ProgressBar(minValue=0,maxValue=len(a.items)) rep.items = a.items for item in a.items: if verbosity: prog(prog.amount+1, "Importing %s: " % rep) try: obj = item['extra'].repstat_set.get(stat=item['datetime'], hash=RepStat()._encode_hash(item['title'])) except RepStat.DoesNotExist: try: obj = RepStat(stat=item['datetime'], rep=item['extra']) obj.set_hash(item['title']) obj.save() except Exception, e: if verbosity: print "error %s" % e.message rep.set_daily_items(item, day=item['datetime'].date())