def handle(self, *args, **options): silent = options.get('silent') # couchdbkit doesn't preserve microseconds started = datetime.utcnow().replace(microsecond=0) podcasts = Podcast.all_podcasts() total = Podcast.view('podcasts/by_oldid', limit=0).total_rows for n, podcast in enumerate(podcasts): subscriber_count = self.get_subscriber_count(podcast) self.update(podcast=podcast, started=started, subscriber_count=subscriber_count) if not silent: progress(n, total)
def handle(self, *args, **options): total = Podcast.count() podcasts = Podcast.all_podcasts() actions = Counter() for n, podcast in enumerate(podcasts): psubscriber = PodcastSubscriberData.for_podcast(podcast.get_id()) res = self.update_subscriber_data(podcast, data=psubscriber) self.update_podcast(podcast=podcast) action = 'updated' if res else 'skipped' actions[action] += 1 status_str = ', '.join('%s: %d' % x for x in actions.items()) progress(n+1, total, status_str)
def handle(self, *args, **options): get_podcast = itemgetter(0) max_related = options.get('max') podcasts = Podcast.all_podcasts() total = Podcast.view('podcasts/by_id', limit=0).total_rows for (n, podcast) in enumerate(podcasts): l = calc_similar_podcasts(podcast)[:max_related] related = map(get_podcast, l) @repeat_on_conflict(['podcast']) def _update(podcast, related): podcast.related_podcasts = related podcast.save() _update(podcast=podcast, related=related) progress(n+1, total)