X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=lightcards%2Flightcards.py;h=a3aa5cff0a1529cecfc7b8ccbc1a654b32dec29e;hb=94cf6952335a3965f64ea3a818ef0acad16f6574;hp=775b13d24afaea722dc63296ef995e366a16c794;hpb=611a8e823ba8a4471d1b0cabb1dcd82506f36551;p=lightcards.git diff --git a/lightcards/lightcards.py b/lightcards/lightcards.py old mode 100755 new mode 100644 index 775b13d..a3aa5cf --- a/lightcards/lightcards.py +++ b/lightcards/lightcards.py @@ -1,40 +1,72 @@ -#!/usr/bin/env python # Markdown flashcard utility # Armaan Bhojwani 2021 import argparse from curses import wrapper +import os +from random import shuffle +import sys -from . import display, parse +from . import parse +from .display import Display from .deck import Status def parse_args(): - parser = argparse.ArgumentParser(description="Simple terminal flashcards") + parser = argparse.ArgumentParser(description="Terminal flashcards from Markdown") parser.add_argument("inp", metavar="input file", type=str, - nargs="*") - parser.add_argument("-v", "--version", + nargs=1) + parser.add_argument("-f", "--flip", + action='store_true', + help="show second column first") + parser.add_argument("-r", "--reverse", action='store_true', - help="print version") + help="reverse card order") + parser.add_argument("-s", "--shuffle", + action='store_true', + help="shuffle card order") + parser.add_argument("-v", "--version", + action='version', + version="lightcards 0.4.0") return parser.parse_args() -def show(stack, headers): +def show(args, stack, headers): + """ + Manipulate deck according to passed arguments, and send it to the display + functions + """ idx = Status() - wrapper(display.get_key, stack, headers, idx) + if args.flip: + for x in stack: + x[0], x[1] = x[1], x[0] + headers[0], headers[1] = headers[1], headers[0] + if args.shuffle: + shuffle(stack) + elif args.reverse: + stack.reverse() + win = Display(stack, headers, idx) + wrapper(win.run) -def main(): + +def reparse(): + """Parse arguments and input file again""" args = parse_args() - if args.version: - print("0.0.0") - exit(0) + os.system(f"$EDITOR {args.inp[0]}"), + return parse.parse_html(parse.md2html(args.inp[0])) + +def get_orig(): + """Return original header and stack""" + return((headers, stack)) - headers = parse.parse_html(parse.md2html(args.inp[0]))[0] - stack = parse.parse_html(parse.md2html(args.inp[0]))[1] - show(stack, headers) +def main(args=sys.argv): + args = parse_args() + global headers, stack + (headers, stack) = parse.parse_html(parse.md2html(args.inp[0])) + show(args, stack, headers) if __name__ == "__main__":