diff --git a/README.md b/README.md
index f02e7f0..6634908 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,13 @@ pip install temp-index
## use it
+`make_cards` accepts the following arguments:
+
+- **filepath**: where the pdf will go
+- **metadata db**: where your metadata db is
+- **side_a**: the fields for the side a of the card
+- **side_b**: the fields for the side b of the card
+
```python
from temp_index import make_cards
@@ -17,6 +24,7 @@ from temp_index import make_cards
make_cards(
"/home/me/catalogue.pdf",
"sqlite:///metadata.db",
- ["title", "timestamp", "comments", "authors", "tags"]
+ ["title", "timestamp", "comments", "authors"],
+ ["tags"],
)
```
diff --git a/temp_index.py b/temp_index.py
index 59a7cf7..52a1e5a 100644
--- a/temp_index.py
+++ b/temp_index.py
@@ -14,64 +14,71 @@ from reportlab.platypus import PageBreak, Paragraph, SimpleDocTemplate, Spacer
CWD = Path().resolve()
-def make_cards(filepath, db_path, fields):
+def make_cards(filepath, db_path, side_a, side_b):
"""The main entrypoint for card generation."""
filename = os.path.basename(filepath)
doc = create_doc(filename)
- content = get_fields(db_path, fields)
+ content = get_fields(db_path, side_a, side_b)
doc.build(content)
shutil.move(os.path.join(CWD, filename), filepath)
-def get_fields(db_path, fields):
+def select_fields(fields, content, styles, book):
+ if "title" in fields:
+ tag = "{}".format(book.title)
+ ptitle = Paragraph(tag, styles["Italic"])
+ content.append(ptitle)
+ content.append(Spacer(1, 12))
+
+ if "timestamp" in fields:
+ tag = "Timestamp: {}".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(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(Spacer(6, 12))
+
+ return content
+
+
+def get_fields(db_path, side_a, side_b):
"""Retrieve fields from the metadata."""
content = []
styles = getSampleStyleSheet()
session = init_session(db_path)
for book in session.query(Book).all():
- if "title" in fields:
- tag = "{}".format(book.title)
- ptitle = Paragraph(tag, styles["Italic"])
- content.append(ptitle)
- content.append(Spacer(1, 12))
-
- if "timestamp" in fields:
- tag = "Timestamp: {}".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))
+ content = select_fields(side_a, content, styles, book)
+ content.append(PageBreak())
+ content = select_fields(side_b, content, styles, book)
+ content.append(PageBreak())
return content