fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add findable flag.
[wolnelektury.git]
/
src
/
catalogue
/
management
/
commands
/
checkcovers.py
diff --git
a/src/catalogue/management/commands/checkcovers.py
b/src/catalogue/management/commands/checkcovers.py
index
7535dd4
..
db9fc4c
100644
(file)
--- a/
src/catalogue/management/commands/checkcovers.py
+++ b/
src/catalogue/management/commands/checkcovers.py
@@
-1,23
+1,23
@@
-# -*- coding: utf-8 -*-
# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
#
# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
#
-from optparse import make_option
from django.contrib.sites.models import Site
from django.core.management.base import BaseCommand
from django.contrib.sites.models import Site
from django.core.management.base import BaseCommand
-from catalogue import app_settings
from django.utils.functional import lazy
from django.utils.functional import lazy
+from catalogue import app_settings
def ancestor_has_cover(book):
while book.parent:
book = book.parent
def ancestor_has_cover(book):
while book.parent:
book = book.parent
- if book.
extra_info
.get('cover_url'):
+ if book.
get_extra_info_json()
.get('cover_url'):
return True
return False
current_domain = lazy(lambda: Site.objects.get_current().domain, str)()
return True
return False
current_domain = lazy(lambda: Site.objects.get_current().domain, str)()
+
+
def full_url(obj):
return 'http://%s%s' % (
current_domain,
def full_url(obj):
return 'http://%s%s' % (
current_domain,
@@
-25,12
+25,13
@@
def full_url(obj):
class Command(BaseCommand):
class Command(BaseCommand):
- option_list = BaseCommand.option_list + (
- make_option('-q', '--quiet', action='store_false', dest='verbose', default=True,
- help='Suppress output'),
- )
help = 'Checks cover sources and licenses.'
help = 'Checks cover sources and licenses.'
+ def add_arguments(self, parser):
+ parser.add_argument(
+ '-q', '--quiet', action='store_false', dest='verbose',
+ default=True, help='Suppress output')
+
def handle(self, **options):
from collections import defaultdict
import re
def handle(self, **options):
from collections import defaultdict
import re
@@
-45,23
+46,22
@@
class Command(BaseCommand):
bad_license = defaultdict(list)
no_license = []
bad_license = defaultdict(list)
no_license = []
- re_license = re.compile(
u
r'.*,\s*(CC.*)')
+ re_license = re.compile(r'.*,\s*(CC.*)')
redakcja_url = app_settings.REDAKCJA_URL
good_license = re.compile("(%s)" % ")|(".join(
app_settings.GOOD_LICENSES))
redakcja_url = app_settings.REDAKCJA_URL
good_license = re.compile("(%s)" % ")|(".join(
app_settings.GOOD_LICENSES))
- with transaction.
commit_on_success
():
+ with transaction.
atomic
():
for book in Book.objects.all().order_by('slug').iterator():
for book in Book.objects.all().order_by('slug').iterator():
- extra_info = book.
extra_info
+ extra_info = book.
get_extra_info_json()
if not extra_info.get('cover_url'):
if ancestor_has_cover(book):
with_ancestral_cover.append(book)
else:
without_cover.append(book)
else:
if not extra_info.get('cover_url'):
if ancestor_has_cover(book):
with_ancestral_cover.append(book)
else:
without_cover.append(book)
else:
- if not extra_info.get('cover_source', ''
- ).startswith(redakcja_url):
+ if not extra_info.get('cover_source', '').startswith(redakcja_url):
not_redakcja.append(book)
match = re_license.match(extra_info.get('cover_by', ''))
if match:
not_redakcja.append(book)
match = re_license.match(extra_info.get('cover_by', ''))
if match:
@@
-70,7
+70,7
@@
class Command(BaseCommand):
else:
no_license.append(book)
else:
no_license.append(book)
- print
"""%d books with no covers, %d with inherited covers.
+ print
(
"""%d books with no covers, %d with inherited covers.
Bad licenses used: %s (%d covers without license).
%d covers not from %s.
""" % (
Bad licenses used: %s (%d covers without license).
%d covers not from %s.
""" % (
@@
-80,51
+80,53
@@
Bad licenses used: %s (%d covers without license).
len(no_license),
len(not_redakcja),
redakcja_url,
len(no_license),
len(not_redakcja),
redakcja_url,
- )
+ )
)
if verbose:
if bad_license:
if verbose:
if bad_license:
- print
- print
"Bad license:"
- print
"============"
+ print
()
+ print
("Bad license:")
+ print
("============")
for lic, books in bad_license.items():
for lic, books in bad_license.items():
- print
- print
lic
+ print
()
+ print
(lic)
for book in books:
for book in books:
- print
full_url(book
)
+ print
(full_url(book)
)
if no_license:
if no_license:
- print
- print
"No license:"
- print
"==========="
+ print
()
+ print
("No license:")
+ print
("===========")
for book in no_license:
for book in no_license:
- print
- print full_url(book)
- print book.extra_info.get('cover_by')
- print book.extra_info.get('cover_source')
- print book.extra_info.get('cover_url')
+ print()
+ print(full_url(book))
+ extra_info = book.get_extra_info_json()
+ print(extra_info.get('cover_by'))
+ print(extra_info.get('cover_source'))
+ print(extra_info.get('cover_url'))
if not_redakcja:
if not_redakcja:
- print
- print
"Not from Redakcja or source missing:"
- print
"===================================="
+ print
()
+ print
("Not from Redakcja or source missing:")
+ print
("====================================")
for book in not_redakcja:
for book in not_redakcja:
- print
- print full_url(book)
- print book.extra_info.get('cover_by')
- print book.extra_info.get('cover_source')
- print book.extra_info.get('cover_url')
+ print()
+ print(full_url(book))
+ extra_info = book.get_extra_info_json()
+ print(extra_info.get('cover_by'))
+ print(extra_info.get('cover_source'))
+ print(extra_info.get('cover_url'))
if without_cover:
if without_cover:
- print
- print
"No cover:"
- print
"========="
+ print
()
+ print
("No cover:")
+ print
("=========")
for book in without_cover:
for book in without_cover:
- print
full_url(book
)
+ print
(full_url(book)
)
if with_ancestral_cover:
if with_ancestral_cover:
- print
- print
"With ancestral cover:"
- print
"====================="
+ print
()
+ print
("With ancestral cover:")
+ print
("=====================")
for book in with_ancestral_cover:
for book in with_ancestral_cover:
- print
full_url(book
)
+ print
(full_url(book)
)