def update(content_type, reload_metadata, path):
"""
Add a specific path to the databases, loading all content and updating the
database where necessary.
The path at PATH will be recursively searched for data.
"""
import os
from . import database_handler as dh
from .resolver import Resolver
from progressbar import ProgressBar, Bar, Timer, ETA
def pbar(msg):
return ProgressBar(widgets=[msg, ' ',
Bar(), ' ', Timer(), ' ', ETA()])
# If this is a relative path, interpret it as relative to the base
# media path, not the cwd.
path = Resolver().resolve_media(path).path
if content_type in ('b', 'books'):
updater = dh.BookDatabaseUpdater(path)
else:
raise ValueError('Unknown type {}'.format(utype))
print('Loading database')
db = dh.load_database()
print('Loading all new entries.')
updater.update_db_entries(db)
dh.save_database(db) # Save as we progress
print('Loading books associated with entries.')
updater.assign_books_to_entries(db)
dh.save_database(db)
updater.update_book_metadata(db, pbar=pbar('Loading book metadata:'),
reload_metadata=reload_metadata)
dh.save_database(db)
print('Updating author database')
updater.update_author_db(db)
dh.save_database(db)
print('Updating book covers')
updater.update_cover_images(db)
dh.save_database(db)
评论列表
文章目录