X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/3d1fb545dd1f49e0624d3adf20e5568b1c33d8ec..dfd584e3b136d770bf56569030d10712a8722569:/apps/api/management/commands/mobileinit.py diff --git a/apps/api/management/commands/mobileinit.py b/apps/api/management/commands/mobileinit.py index cfb9fb433..57b41aa46 100755 --- a/apps/api/management/commands/mobileinit.py +++ b/apps/api/management/commands/mobileinit.py @@ -23,10 +23,10 @@ class Command(BaseCommand): db = init_db(last_checked) for b in Book.objects.all(): add_book(db, b) - for t in Tag.objects.exclude(category__in=('book', 'set', 'theme')): + for t in Tag.objects.exclude( + category__in=('book', 'set', 'theme')).exclude(items=None): # only add non-empty tags - if t.get_count(): - add_tag(db, t) + add_tag(db, t) db.commit() db.close() current(last_checked) @@ -58,7 +58,7 @@ def pretty_size(size): value = re.sub('[^a-zA-Z0-9\\s\\-]{1}', replace_char, value) value = value.lower() value = re.sub(r'[^a-z0-9{|}]+', '~', value) - + return value.encode('ascii', 'ignore') @@ -71,7 +71,8 @@ def init_db(last_checked): schema = """ CREATE TABLE book ( id INTEGER PRIMARY KEY, - title VARCHAR, + title VARCHAR, + cover VARCHAR, html_file VARCHAR, html_file_size INTEGER, parent INTEGER, @@ -106,19 +107,20 @@ CREATE TABLE state (last_checked INTEGER); def current(last_checked): target = os.path.join(MOBILE_INIT_DB, 'initial.db') - os.unlink(target) + if os.path.lexists(target): + os.unlink(target) os.symlink( 'initial.db-%d' % last_checked, target, ) - + book_sql = """ INSERT INTO book - (id, title, html_file, html_file_size, parent, parent_number, sort_key, pretty_size, authors) + (id, title, cover, html_file, html_file_size, parent, parent_number, sort_key, pretty_size, authors) VALUES - (:id, :title, :html_file, :html_file_size, :parent, :parent_number, :sort_key, :size_str, :authors); + (:id, :title, :cover, :html_file, :html_file_size, :parent, :parent_number, :sort_key, :size_str, :authors); """ book_tag_sql = "INSERT INTO book_tag (book, tag) VALUES (:book, :tag);" tag_sql = """ @@ -128,9 +130,9 @@ tag_sql = """ (:id, :category, :name, :sort_key, :book_ids); """ categories = {'author': 'autor', - 'epoch': 'epoka', - 'genre': 'gatunek', - 'kind': 'rodzaj', + 'epoch': 'epoka', + 'genre': 'gatunek', + 'kind': 'rodzaj', 'theme': 'motyw' } @@ -143,7 +145,11 @@ def add_book(db, book): html_file_size = book.html_file.size else: html_file = html_file_size = None - parent = book.parent + if book.cover: + cover = book.cover.url + else: + cover = None + parent = book.parent_id parent_number = book.parent_number sort_key = book.sort_key size_str = pretty_size(html_file_size)