#!/usr/bin/env python import csv read_books = [] to_read_books = [] current = [] def main(): get_books() sort_books() write_file() def get_books(): with open("goodreads_library_export.csv") as csv_file: csv_reader = csv.reader(csv_file, delimiter=",") line_count = 0 for row in csv_reader: if line_count != 0: book = f"{row[1]} by {row[2]}" if row[18] == "read": read_books.append(book) elif row[18] == "to-read": to_read_books.append(book) elif row[18] == "currently-reading": current.append(book) line_count += 1 def sort_books(): read_books.sort() to_read_books.sort() current.sort() def write_file(): gemini_file = open("reading.gmi", "w") gemini_file.write("# swiftmandolin's reading list\n") write_books(gemini_file) write_footer(gemini_file) def write_list(title, book_list, file): file.write(f"## {title} ({len(book_list)})\n") for book in book_list: file.write(f"{book}\n") file.write("\n") def write_books(file): write_list("currently reading", current, file) write_list("want to read", to_read_books, file) write_list("finished reading", read_books, file) def write_footer(file): file.write("\n") file.write("=> https://git.sr.ht/~swiftmandolin/gemini-goodreads generated from goodreads csv") if __name__ == "__main__": main()