Additionally, remove eliminate runner.reparse()
import curses
import curses.panel
import curses
import curses.panel
from random import shuffle
import sys
import textwrap
import time
from random import shuffle
import sys
import textwrap
import time
-from . import runner, progress
+from . import runner, progress, parse
- def __init__(self, outer, mlines=21, mcols=52):
+ def __init__(self, outer, mlines=20, mcols=52):
"""Initialize help screen"""
self.outer = outer
(self.win, self.panel) = panel_create(mlines, mcols)
"""Initialize help screen"""
self.outer = outer
(self.win, self.panel) = panel_create(mlines, mcols)
"0, ^, home go to the start of the deck",
"$, end go to the end of the deck",
"H, ? open this screen",
"0, ^, home go to the start of the deck",
"$, end go to the end of the deck",
"H, ? open this screen",
- "e open the input file in $EDITOR",
"m open the control menu",
"1, 2, 3 switch views",
"",
"m open the control menu",
"1, 2, 3 switch views",
"",
- def __init__(self, outer, mlines=16, mcols=44):
+ def __init__(self, outer, mlines=17, mcols=44):
"""Initialize the menu with content"""
self.outer = outer
(self.win, self.panel) = panel_create(mlines, mcols)
"""Initialize the menu with content"""
self.outer = outer
(self.win, self.panel) = panel_create(mlines, mcols)
"[u]: unstar all",
"[d]: star all",
"[s]: update stack to include starred only",
"[u]: unstar all",
"[d]: star all",
"[s]: update stack to include starred only",
+ "[e]: open the input file in $EDITOR",
"",
"[r]: restart",
"[m]: close menu",
"",
"[r]: restart",
"[m]: close menu",
else:
color = curses.color_pair(1)
else:
color = curses.color_pair(1)
- self.win.addstr(14, 1, string, color)
+ self.win.addstr(15, 1, string, color)
self.menu_grab()
def menu_grab(self):
self.menu_grab()
def menu_grab(self):
elif key == "z":
shuffle(self.outer.stack)
self.menu_print("Stack shuffled!")
elif key == "z":
shuffle(self.outer.stack)
self.menu_print("Stack shuffled!")
+ elif key == "e":
+ curses.endwin()
+ os.system(f"$EDITOR {self.outer.input_file}"),
+ (self.outer.headers, self.outer.stack) = parse.parse_html(
+ parse.md2html(self.outer.input_file)
+ )
+ self.outer.get_key()
elif key == "s":
# Check if there are any starred cards before proceeding, and
# if not, don't allow to proceed and show an error message
elif key == "s":
# Check if there are any starred cards before proceeding, and
# if not, don't allow to proceed and show an error message
- def __init__(self, stack, headers, obj, view):
+ def __init__(self, stack, headers, obj, view, input_file):
self.stack = stack
self.headers = headers
self.obj = obj
self.view = view
self.stack = stack
self.headers = headers
self.obj = obj
self.view = view
+ self.input_file = input_file
def run(self, stdscr):
"""Set important options that require stdscr before starting"""
def run(self, stdscr):
"""Set important options that require stdscr before starting"""
self.win.clear()
num_done = str(self.obj.index + 1).zfill(len(str(len(self.stack))))
self.win.clear()
num_done = str(self.obj.index + 1).zfill(len(str(len(self.stack))))
- if self.view in [1, 2]:
+ if self.view in [1, 2, 4]:
"""
Display the contents of the card.
Shows a header, a horizontal line, and the contents of the current
"""
Display the contents of the card.
Shows a header, a horizontal line, and the contents of the current
self.help_obj.disp()
elif key == "m":
self.menu_obj.disp()
self.help_obj.disp()
elif key == "m":
self.menu_obj.disp()
- elif key == "e":
- (self.headers, self.stack) = runner.reparse()
- self.get_key()
- elif key in ["1", "2", "3"]:
+ elif key in ["1", "2", "3", "4"]:
self.view = int(key)
def disp_sidebar(self):
self.view = int(key)
def disp_sidebar(self):
return parser.parse_args()
return parser.parse_args()
-def show(args, stack, headers):
+def show(args, stack, headers, input_file):
"""
Get objects from cache, 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
stack.reverse()
# Send to display
stack.reverse()
# Send to display
- win = Display(stack, headers, idx, args.view)
+ win = Display(stack, headers, idx, args.view, input_file)
try:
curses.wrapper(win.run)
except curses.error as e:
raise CursesError() from e
try:
curses.wrapper(win.run)
except curses.error as e:
raise CursesError() from e
-def reparse():
- """Parse arguments and input file again"""
- args = parse_args()
- 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 get_orig():
"""Return original header and stack"""
return (headers, stack)
sys.tracebacklimit = 0
args = parse_args()
global headers, stack
sys.tracebacklimit = 0
args = parse_args()
global headers, stack
- (headers, stack) = parse.parse_html(parse.md2html(args.inp[0]))
- show(args, stack, headers)
+ input_file = args.inp[0]
+ (headers, stack) = parse.parse_html(parse.md2html(input_file))
+ show(args, stack, headers, input_file)
if __name__ == "__main__":
if __name__ == "__main__":
\f[B]H\f[R], \f[B]?\f[R]
Open help screen
.TP
\f[B]H\f[R], \f[B]?\f[R]
Open help screen
.TP
-\f[B]e\f[R]
-Open input file in $EDITOR
-.TP
\f[B]m\f[R]
Open control menu
.TP
\f[B]m\f[R]
Open control menu
.TP
**H**, **?**
: Open help screen
**H**, **?**
: Open help screen
-**e**
-: Open input file in $EDITOR
-
**m**
: Open control menu
**m**
: Open control menu