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
):
17 def handle(self
, *args
, **options
):
20 print >> sys
.stderr
, "Usage: ./manage.py sync-sanitizing-rules <filename> [<filename2> ...]"
25 config
= ConfigParser
.ConfigParser()
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
):
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')