use pillow instead of PIL
[mygpo.git] / mygpo / maintenance / management / commands / sync-sanitizing-rules.py
blobce0c64c13714d86cc17461fa19a18af0e914daee
1 import sys
2 import ConfigParser
4 from django.core.management.base import BaseCommand
6 from mygpo.decorators import repeat_on_conflict
7 from mygpo.core.models import SanitizingRule
8 from mygpo.utils import progress
9 from mygpo.db.couchdb.common import sanitizingrule_for_slug
13 class Command(BaseCommand):
14 """
15 """
17 def handle(self, *args, **options):
19 if not args:
20 print >> sys.stderr, "Usage: ./manage.py sync-sanitizing-rules <filename> [<filename2> ...]"
21 return
24 for filename in args:
25 config = ConfigParser.ConfigParser()
26 config.read(filename)
27 sections = config.sections()
29 for n, slug in enumerate(sections):
30 rule = sanitizingrule_for_slug(slug) or SanitizingRule()
32 self.update_rule(rule=rule, config=config, slug=slug)
34 progress(n+1, len(sections), filename)
37 @repeat_on_conflict(['rule'])
38 def update_rule(self, rule, config, slug):
39 rule.slug = slug
40 rule.applies_to = []
41 if config.getboolean(slug, 'podcast'):
42 rule.applies_to.append('podcast')
44 if config.getboolean(slug, 'episode'):
45 rule.applies_to.append('episode')
47 rule.search = config.get(slug, 'search')
48 rule.replace = config.get(slug, 'replace')
49 rule.priority = config.getint(slug, 'priority')
50 rule.description = config.get(slug, 'description')
51 rule.save()