本文整理汇总了Python中catalogue.models.Book.file方法的典型用法代码示例。如果您正苦于以下问题:Python Book.file方法的具体用法?Python Book.file怎么用?Python Book.file使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类catalogue.models.Book
的用法示例。
在下文中一共展示了Book.file方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: update_book
# 需要导入模块: from catalogue.models import Book [as 别名]
# 或者: from catalogue.models.Book import file [as 别名]
def update_book(book_info):
book_id = book_info.book_id
books = Book.objects.filter(uid=book_id[1], uid_scheme=book_id[0])
mode = 'read'
if books:
if books[0].file_stamp < book_info.stamp:
mode = 'update'
book = books[0]
else:
mode = 'skip'
if mode in ('read', 'update'):
LOG.info('update_book:', mode)
book_info.validate()
if book_info.valid:
LOG.info('update_book: found a book: %s, %s', book_info.path,
book_info.stamp)
if 1:
print_info(book_info)
if mode == 'read':
fmt, _ = BookFormat.objects.get_or_create(name=book_info.format_name())
book = Book(
uid=book_id[1],
uid_scheme=book_id[0],
title=book_info.title,
language=book_info.language,
file=book_info.path,
file_stamp=book_info.stamp,
mimetype=book_info.mimetype,
format=fmt,
annotation=book_info.annotation
)
else:
# it is assumed that book format does not change
book.uid = book_id[1]
book.uid_scheme = book_id[0]
book.title = book_info.title
book.language = book_info.language
book.file = book_info.path
book.file_stamp = book_info.stamp
book.mimetype = book_info.mimetype
book.annotation = book_info.annotation
book.authors.clear()
book.series.clear()
book.tags.clear()
book.save()
for position, author in enumerate(book_info.authors, 1):
db_author, _ = Author.objects.get_or_create(name=author)
bookauthor = BookAuthor(book=book, author=db_author,
position=position)
bookauthor.save()
for series, number in book_info.series:
db_series, _ = Series.objects.get_or_create(name=series)
bookseries = BookSeries(book=book, series=db_series,
number=number)
bookseries.save()
for tag in book_info.tags:
if '/' in tag:
db_tag = None
for name in [x.strip() for x in tag.split('/')]:
db_tag, _ = Tag.objects.get_or_create(name=name,
parent=db_tag)
else:
db_tag, _ = Tag.objects.get_or_create(name=tag)
booktag = BookTag(book=book, tag=db_tag)
booktag.save()
else:
LOG.error('update_book: not a valid book at', book_info.path)
elif mode == 'skip':
LOG.warn('update_book: %s already registered and is up to date',
book_info.path)