From a1843720c7444be2e77d41bab8bd135015247002 Mon Sep 17 00:00:00 2001 From: Armaan Bhojwani <3fb650a9-b47e-4604-a282-1dd91953b2ee@anonaddy.me> Date: Tue, 1 Dec 2020 12:36:13 -0500 Subject: [PATCH] add argparsing, branding * Add argument parsing and ability to output more than just the latin phrase * Add logo --- .gitignore | 1 - branding/logo.png | Bin 0 -> 23592 bytes branding/logo.xcf | Bin 0 -> 40796 bytes phrases.py | 60 ++++++++++++++++++++++++---------------------- 4 files changed, 31 insertions(+), 30 deletions(-) delete mode 100644 .gitignore create mode 100644 branding/logo.png create mode 100644 branding/logo.xcf diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 2d19fc7..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.html diff --git a/branding/logo.png b/branding/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b5037e4e8b69b1528ffdcf1e94ff4da324bd7933 GIT binary patch literal 23592 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 literal 0 HcmV?d00001 diff --git a/phrases.py b/phrases.py index bcf3f73..39d6f0c 100755 --- a/phrases.py +++ b/phrases.py @@ -2,22 +2,13 @@ # Display Latin famous phrases in the terminal # Armaan Bhojwani 2020 +import argparse import random -import os import sys import re -# Use system random if available, otherwise, use Python's -def _random_int(start, end): - try: - r = random.SystemRandom() - except: - r = random - - return r.randint(start, end) - # Create list of phrases from phrase file -def _read_phrases(phrase_file): +def read_phrases(phrase_file): f = open(phrase_file, 'r') contents = f.read() @@ -26,33 +17,44 @@ def _read_phrases(phrase_file): phrases = [] cur = [] - def save_if_nonempty(buf): - phrase = '\n'.join(buf) - if phrase.strip(): - phrases.append(phrase) - for line in lines: if delim.match(line): - save_if_nonempty(cur) + phrase = '\n'.join(cur) + if phrase.strip(): + phrases.append(phrase) cur = [] continue - cur.append(line) - if cur: - save_if_nonempty(cur) - return phrases -# Return a random phrase from the phrases list -def get_random_phrase(phrase_file): - phrases = list(_read_phrases(phrase_file)) - randomRecord = _random_int(0, len(phrases) - 1) +# Main program +def main(args=sys.argv[1:]): + parser = argparse.ArgumentParser(description="Latin famous phrases in the terminal.") + parser.add_argument("-e", "--english", action='store_true', help="Output English.") + parser.add_argument("-l", "--latin", action='store_true', help="Output Latin (default)") + parser.add_argument("-n", "--notes", action='store_true', help="Output notes on phrase") + parser.add_argument("-m", "--min", type=int, help="Set the minimum length of latin") + parser.add_argument("-M", "--max", type=int, help="Set the maximum length of latin") + args = parser.parse_args() + + phrases = list(read_phrases("/usr/share/phrases/phrases")) + randomRecord = random.randint(0, len(phrases) - 1) randphrase = phrases[randomRecord] - return randphrase.partition('\n')[0] -# Main program -def main(): - print(get_random_phrase("/usr/share/phrases/phrases")) + if args.min: + while True: + randomRecord = random.randint(0, len(phrases) - 1) + randphrase = phrases[randomRecord] + if args.min <= len(randphrase.split('\n')[0]) <= args.max: + break + if args.latin: + print(randphrase.split('\n')[0]) + if args.english: + print(randphrase.split('\n')[1]) + if args.notes: + print(randphrase.split('\n')[2]) + if not len(sys.argv) > 1: + print(randphrase.split('\n')[0]) main() -- 2.39.2