diff options
Diffstat (limited to 'flashcards')
-rwxr-xr-x | flashcards | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/flashcards b/flashcards deleted file mode 100755 index e0ba548..0000000 --- a/flashcards +++ /dev/null @@ -1,92 +0,0 @@ -#!/usr/bin/python3 - -import re -import sys -from pathlib import Path -from random import shuffle - -class Color: - PURPLE = '\033[95m' - CYAN = '\033[96m' - DARKCYAN = '\033[36m' - BLUE = '\033[94m' - GREEN = '\033[92m' - YELLOW = '\033[93m' - RED = '\033[91m' - BOLD = '\033[1m' - UNDERLINE = '\033[4m' - END = '\033[0m' - -#print color.BOLD + 'Hello World !' + color.END - -cardRegex = "CARD: " -prefixLength = len(cardRegex) - -# Returns a list of Path objects, containing the path to each valid file provided -def getFileList(): - fileList = [] - if len(sys.argv) > 1: - for f in sys.argv[1:]: - path = Path(f) - if path.exists() and path.is_file(): - fileList.append(f) - return fileList - else: - print("Missing arguments") - sys.exit() - -# Returns cards in the form [(front, back)] -def createCardList(files): - cards = [] - for f in files: - cards = cards + extractCards(f) - return cards - -# Extracts cards from a single file into a list of the form [(front, back)] -def extractCards(f): - front = "" - back = "" - cards = [] - with open(f) as cardFile: - for l in cardFile: - match = re.match(cardRegex, l) - if match: - if front != "": - cards.append([front.strip(), back.strip()]) - back = "" - front = match.string[prefixLength:] - else: - back += l - # do the last front-back pair before returning - cards.append([front.strip(), back.strip()]) - return cards - -# Waits for user input and reacts accordingly -def wait(): - cmd = input().strip() - if cmd.startswith("q") or cmd.startswith("quit") or cmd.startswith("exit"): - sys.exit(0) - -# Loops serving cards to the user until the program is exited -def serveCards(cards): - while True: - for i, card in enumerate(cards): - print("----------------------------------------------------------------------------(" + str(i + 1) + "/" + str(len(cards)) + ")") - print(Color.BLUE + Color.BOLD + card[0] + Color.END) - wait() - print(card[1]) - wait() - -def debugCards(cardList): - for c in cardList: - print("Front:", c[0]) - print("Back:", c[1]) - -def main(): - files = getFileList() - cards = createCardList(files) - shuffle(cards) - serveCards(cards) - -if __name__ == "__main__": - main() |