Merge branch 'master' into production
[wolnelektury.git] / apps / api / management / commands / mobileinit.py
index cfb9fb4..91ee3b6 100755 (executable)
@@ -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(book_count=0):
             # only add non-empty tags
-            if t.get_count():
-                add_tag(db, t)
+            add_tag(db, t)
         db.commit()
         db.close()
         current(last_checked)
@@ -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,7 +107,8 @@ 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,
@@ -116,9 +118,9 @@ def current(last_checked):
 
 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 = """
@@ -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)
@@ -153,7 +159,8 @@ def add_book(db, book):
 
 def add_tag(db, tag):
     id = tag.id
-    category = categories[tag.category]
+    #    category = categories[tag.category] # localized names here?
+    category = tag.category
     name = tag.name
     sort_key = tag.sort_key