X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=lightcards%2Flightcards.py;h=ed1916d371ae9d833af41435772c5ed2680c8a70;hb=cdfb48d9f8d7816da9e9c78a4bbe959efb1a9a36;hp=d170b354a048f43fc9bd0fd24afe169172d27d6d;hpb=e99950c3023a64f68cdc968e2759f45653d6b9af;p=lightcards.git diff --git a/lightcards/lightcards.py b/lightcards/lightcards.py index d170b35..ed1916d 100644 --- a/lightcards/lightcards.py +++ b/lightcards/lightcards.py @@ -13,17 +13,22 @@ from .deck import Status def parse_args(): - parser = argparse.ArgumentParser(description="Terminal flashcards from Markdown") + parser = argparse.ArgumentParser( + description="Terminal flashcards from Markdown") parser.add_argument("inp", metavar="input file", type=str, nargs=1) + parser.add_argument("-a", "--alphabetize", + action='store_true', + help="alphabetize card order") parser.add_argument("-f", "--flip", action='store_true', help="show second column first") parser.add_argument("-p", "--purge", action='store_true', help="don't check cached info before starting") + # TODO: don't require input file when using -P parser.add_argument("-P", "--purge-all", action='store_true', help="don't check cached info before starting") @@ -41,29 +46,35 @@ def parse_args(): def show(args, stack, headers): """ - Manipulate deck according to passed arguments, and send it to the display - functions + Get objects from cache, manipulate deck according to passed arguments, and + send it to the display functions """ + # Purge caches if asked if args.purge: progress.purge(stack) if args.purge_all: progress.purge_all() - ida = progress.dive("status", stack) - if ida and not args.purge: - idx = ida + # Check for caches + ida = progress.dive(stack) + if ida: + (idx, stack, headers) = ida else: idx = Status() + # Manipulate deck + if args.shuffle: + shuffle(stack) + if args.alphabetize: + stack.sort() + if args.reverse: + stack.reverse() 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() + # Send to display win = Display(stack, headers, idx) wrapper(win.run) @@ -74,10 +85,12 @@ def reparse(): 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)) + def main(args=sys.argv): args = parse_args() global headers, stack