diff --git a/temp_index.py b/temp_index.py index e19a8b1..aad3382 100644 --- a/temp_index.py +++ b/temp_index.py @@ -1,5 +1,7 @@ """Generates PDF cards from a calibre metadata.db.""" +from textwrap import shorten + from calibrestekje import Book, Comment, Publisher, init_session from reportlab.lib.pagesizes import * from reportlab.lib.styles import ParagraphStyle, getSampleStyleSheet @@ -21,44 +23,48 @@ def get_fields(db_path, fields): session = init_session(db_path) for book in session.query(Book).all(): - for comment in session.query(Comment).all(): - - if "title" in fields: - tag = "{}".format(book.title) - ptitle = Paragraph(tag, styles["Italic"]) - content.append(ptitle) - content.append(Spacer(1, 12)) - - if "uploaded_at" in fields: - tag = "Uploaded: {}".format(book.timestamp) - ptime = Paragraph(tag, styles["Normal"]) - content.append(ptime) - content.append(Spacer(1, 12)) - - if "comments" in fields: - tag = "{}".format(comment.text) - pcomments = Paragraph(tag) - content.append(pcomments) - - if "authors" in fields: - format_string = "{}" - all_authors = [author.name for author in book.authors] - glued_together = format_string.format(", ".join(all_authors)) - - p = Paragraph(glued_together, styles["Normal"]) - content.append(p) - content.append(PageBreak()) - content.append(Spacer(6, 12)) - - if "tags" in fields: - format_string = "{}" - all_tags = [tag.name for tag in book.tags] - tags_glued_together = format_string.format(", ".join(all_tags)) - - p = Paragraph(tags_glued_together, styles["Normal"]) - content.append(p) - content.append(PageBreak()) - content.append(Spacer(6, 12)) + if "title" in fields: + tag = "{}".format(book.title) + ptitle = Paragraph(tag, styles["Italic"]) + content.append(ptitle) + content.append(Spacer(1, 12)) + + if "uploaded_at" in fields: + tag = "Uploaded: {}".format(book.timestamp) + ptime = Paragraph(tag, styles["Normal"]) + content.append(ptime) + content.append(Spacer(1, 12)) + + if "comments" in fields: + comments = ", ".join( + [ + shorten(comment.text, width=50, placeholder="...") + for comment in book.comments + ] + ) + tag = "{}".format(comments) + pcomments = Paragraph(tag) + content.append(pcomments) + + if "authors" in fields: + format_string = "{}" + all_authors = [author.name for author in book.authors] + glued_together = format_string.format(", ".join(all_authors)) + + p = Paragraph(glued_together, styles["Normal"]) + content.append(p) + content.append(PageBreak()) + content.append(Spacer(6, 12)) + + if "tags" in fields: + format_string = "{}" + all_tags = [tag.name for tag in book.tags] + tags_glued_together = format_string.format(", ".join(all_tags)) + + p = Paragraph(tags_glued_together, styles["Normal"]) + content.append(p) + content.append(PageBreak()) + content.append(Spacer(6, 12)) return content