diff --git a/server/djrandom/fingerprint/dedup.py b/server/djrandom/fingerprint/dedup.py index 02830519e6ae78d8c8d2d7614ccf0fef0d7947fd..ab7c3eea7296880b827625b4cd653f35f5cf502f 100644 --- a/server/djrandom/fingerprint/dedup.py +++ b/server/djrandom/fingerprint/dedup.py @@ -51,10 +51,11 @@ class DeDuper(object): if title: data["track"] = title return data - def dedupe(self): + def dedupe(self, dry_run=True): self._ingest() self._scan_for_dupes() - self._cleanup() + if not dry_run: + self._cleanup() def _ingest(self): self.codes = {} @@ -220,15 +221,16 @@ class DeDuper(object): Session.commit() -def run_deduper(db_url): +def run_deduper(db_url, dry_run): init_db(db_url) dup = DeDuper() - dup.dedupe() + dup.dedupe(dry_run) def main(): parser = optparse.OptionParser() parser.add_option('--db_url') + parser.add_option('--apply', action='store_true') daemonize.add_standard_options(parser) utils.read_config_defaults( parser, os.getenv('DJRANDOM_CONF', '/etc/djrandom.conf')) @@ -239,7 +241,7 @@ def main(): parser.error('Too many arguments') daemonize.daemonize(opts, run_deduper, - (opts.db_url,)) + (opts.db_url, not opts.apply)) if __name__ == '__main__':