def handle(self, *args, **options): try: period = args[0] except IndexError: period = TvDB.WEEK if period not in self.periods: raise CommandError('Invalid period %r, should be one of %s' % (period, self.args)) updated, unknown = CatalogueUpdater(stdout=self.stdout).update( period=period) if unknown: stats = ' and '.join('%s %s' % (v, k) for (k, v) in unknown.items()) self.stderr.write('There were %s that do not exist locally.' % stats) if updated: msg = 'Successfully updated %s' % ' and '.join( '%s %s' % (len(v), k) for k, v in updated.items()) else: msg = 'Nothing to update.' self.stdout.write(msg)
def update_catalogue(request): if request.method == 'POST': form = UpdateCatalogueForm(request.POST) if form.is_valid(): period = form.cleaned_data['period'] output = StringIO() updated, unknown = CatalogueUpdater(stdout=output).update( period=period) period = 'last %s' % period if period != 'all' else 'everything' if updated: msg = 'Successfully updated %s (checked %s).' % ( ' and '.join( '%s %s' % (len(v), k) for k, v in updated.items()), period) messages.success(request, msg) detail = 'Updated items:\n' + output.getvalue() messages.info(request, linebreaksbr(detail)) else: msg = 'Nothing to update (checked %s).' % period messages.success(request, msg) return HttpResponseRedirect(reverse('home')) else: form = UpdateCatalogueForm() return TemplateResponse(request, 'qsaui/update.html', dict(form=form))