]> git.armaanb.net Git - lightcards.git/blobdiff - lightcards/lightcards.py
Add keybinding to open file in editor
[lightcards.git] / lightcards / lightcards.py
index 9affd447aa082476a0343d9afff7d34a6c4d7692..41b0db738a5d5520fdd2ee6e0e3b15ec2fd8a025 100755 (executable)
@@ -4,6 +4,7 @@
 
 import argparse
 from curses import wrapper
+import os
 from random import shuffle
 import sys
 
@@ -12,31 +13,52 @@ 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=1)
-    parser.add_argument("-v", "--version",
-                        action='version',
-                        version="lightcards 0.1.0")
+    parser.add_argument("-f", "--flip",
+                        action='store_true',
+                        help="show second column first")
+    parser.add_argument("-r", "--reverse",
+                        action='store_true',
+                        help="reverse card order")
     parser.add_argument("-s", "--shuffle",
                         action='store_true',
-                        help="shuffle cards before starting")
+                        help="shuffle card order")
+    parser.add_argument("-v", "--version",
+                        action='version',
+                        version="lightcards 0.3.0")
     return parser.parse_args()
 
 
 def show(args, stack, headers):
+    """
+    Manipulate deck according to passed arguments, and send it to the display
+    functions
+    """
     idx = Status()
-    if args:
+    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)
-    wrapper(display.get_key, stack, headers, idx)
+    elif args.reverse:
+        stack.reverse()
+    wrapper(display.init_disp, stack, headers, idx)
+
+
+def reparse():
+    args = parse_args()
+    os.system(f"$EDITOR {args.inp[0]}"),
+    return parse.parse_html(parse.md2html(args.inp[0]))
 
 
 def main(args=sys.argv):
     args = parse_args()
-    headers = parse.parse_html(parse.md2html(args.inp[0]))[0]
-    stack = parse.parse_html(parse.md2html(args.inp[0]))[1]
+    (headers, stack) = parse.parse_html(parse.md2html(args.inp[0]))
     show(args, stack, headers)