X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=phrases.py;h=3b41b80719e32f460ac84a0b4469d1882643db4c;hb=eb4d4c8315588ba0241ffdcd2fa91e6499cd8447;hp=46db7829c2abe8dabf482c6387545846978f69c4;hpb=9ffdc6ab29db2f90e880f31c9cb7c5febfda7818;p=phrases.git diff --git a/phrases.py b/phrases.py index 46db782..3b41b80 100755 --- a/phrases.py +++ b/phrases.py @@ -1,15 +1,14 @@ #!/usr/bin/env python3 -# Display Latin famous phrases in the terminal - python version +# Display Latin famous phrases in the terminal # Armaan Bhojwani 2020 import argparse from random import randint import sqlite3 -import sys -import os.path +from sys import exit +from os import path -def main(args=sys.argv[1:]): - # Argument parsing +def parse_args(): parser = argparse.ArgumentParser( description="Latin famous phrases in the terminal.") parser.add_argument("-i", "--id", @@ -24,6 +23,9 @@ def main(args=sys.argv[1:]): parser.add_argument("-n", "--notes", action='store_true', help="print any notes on phrase.") + parser.add_argument("-v", "--version", + action='store_true', + help="print version.") parser.add_argument("-m", "--min", default=0, type=int, @@ -37,38 +39,23 @@ def main(args=sys.argv[1:]): help="print number of possible phrases.") parser.add_argument("-f", "--file", help="set the location of the phrase database.") - parser.add_argument("-o", "--open", - type=int, - help="specify the id of a specific phrase to print.") - args = parser.parse_args() + return parser.parse_args() - # find phrase file - if args.file: - phrase_file = args.file - if os.path.isfile("phrases.db"): - phrase_file = "phrases.db" - elif os.path.isfile("/usr/local/share/phrases/phrases.db"): - phrase_file = "/usr/local/share/phrases/phrases.db" - else: - sys.exit("cannot find the phrase database!") - - conn = sqlite3.connect(phrase_file) - c = conn.cursor() - c.execute("SELECT * FROM phrases WHERE length <= (?) AND length >= (?)", - (args.max, args.min)) +def output(): data = c.fetchall() - rown = randint(0, len(data)) - row = list(data[rown]) + row = list(data[randint(0, len(data) - 1)]) - # Output as specified in flags if not (args.id or args.latin or args.english or args.notes - or args.num): + or args.num + or args.version): print(row[1]) - sys.exit(0) + exit(0) else: + if args.version: + print(version) if args.id: print(row[0]) if args.latin: @@ -79,7 +66,28 @@ def main(args=sys.argv[1:]): print(row[3]) if args.num: print(len(data)) - sys.exit(0) + exit(0) + +def find_file(): + if args.file: + return args.file + if path.isfile("phrases.db"): + return "phrases.db" + elif path.isfile("/usr/local/share/phrases/phrases.db"): + return "/usr/local/share/phrases/phrases.db" + else: + exit("cannot find the phrase database!") + +def get_rand(): + c.execute("SELECT * FROM phrases WHERE length <= (?) AND length >= (?)", + (args.max, args.min)) + +def main(): + get_rand() + output() if __name__ == "__main__": + version = "phrases 1.0.1" + args = parse_args() + c = sqlite3.connect(find_file()).cursor() main()