public domain counter:
[wolnelektury.git] / scripts / remove_duplicates.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
4 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
5 #
6 import sys
7
8 from django.core.management import setup_environ
9 from wolnelektury import settings
10 try:
11     set
12 except AttributeError:
13     from set import Set as set
14
15 setup_environ(settings)
16
17 from catalogue import models
18
19 fragment_identifiers = set()
20
21 print
22 print 'Before: %d fragments' % models.Fragment.objects.count()
23 print
24
25 for fragment in models.Fragment.objects.all():
26     if (fragment.book_id, fragment.anchor) in fragment_identifiers:
27         fragment.delete()
28         sys.stderr.write('X')
29     else:
30         fragment_identifiers.add((fragment.book_id, fragment.anchor))
31         sys.stderr.write('.')
32
33 print
34 print 'After: %d fragments' % models.Fragment.objects.count()
35 print