X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=phrases.py;h=8f11be18429a32b4e027282740f2abc1da5b693d;hb=a2c0f2555d239ca645957821205f10944bb9c4c8;hp=cd9e2c3d88c4d3b5bbf998f63b0265d76134b05b;hpb=24ef3592330ef7b0ada79cd635b35e8e97eb4e6c;p=phrases.git diff --git a/phrases.py b/phrases.py index cd9e2c3..8f11be1 100755 --- a/phrases.py +++ b/phrases.py @@ -1,47 +1,52 @@ #!/usr/bin/env python3 -# Display Latin famous phrases in the terminal - python version -# Armaan Bhojwani 2020 +# Display Latin famous phrases in the terminal +# Armaan Bhojwani 2021 import argparse from random import randint import sqlite3 -import sys -import os.path +from sys import exit +from os import path + def parse_args(): parser = argparse.ArgumentParser( - description="Latin famous phrases in the terminal.") + description="Latin famous phrases in the terminal") parser.add_argument("-i", "--id", action='store_true', - help="print the id of the phrase.") + help="print the id of the phrase") parser.add_argument("-l", "--latin", action='store_true', help="print the Latin phrase (default)") parser.add_argument("-e", "--english", action='store_true', - help="print the English translation.") + help="print the English translation") parser.add_argument("-n", "--notes", action='store_true', - help="print any notes on phrase.") + help="print any notes on phrase") parser.add_argument("-v", "--version", action='store_true', - help="print version.") + help="print version") parser.add_argument("-m", "--min", default=0, type=int, - help="set the minimum length of the Latin phrase.") + help="set the minimum length of the Latin phrase") parser.add_argument("-M", "--max", default=10000000, type=int, - help="set the maximum length of Latin phrase.") + help="set the maximum length of Latin phrase") parser.add_argument("-p", "--num", action='store_true', - help="print number of possible phrases.") + help="print number of possible phrases") parser.add_argument("-f", "--file", - help="set the location of the phrase database.") + help="set the location of the phrase database") return parser.parse_args() -def output(args, row, numx, version): + +def output(): + data = c.fetchall() + row = list(data[randint(0, len(data) - 1)]) + if not (args.id or args.latin or args.english @@ -49,7 +54,7 @@ def output(args, row, numx, version): or args.num or args.version): print(row[1]) - sys.exit(0) + exit(0) else: if args.version: print(version) @@ -62,26 +67,33 @@ def output(args, row, numx, version): if args.notes: print(row[3]) if args.num: - print(numx) - sys.exit(0) + print(len(data)) + exit(0) + -def find_file(args): +def find_file(): if args.file: return args.file - if os.path.isfile("phrases.db"): + if path.isfile("phrases.db"): return "phrases.db" - elif os.path.isfile("/usr/local/share/phrases/phrases.db"): + elif path.isfile("/usr/local/share/phrases/phrases.db"): return "/usr/local/share/phrases/phrases.db" else: - sys.exit("cannot find the phrase database!") + exit("cannot find the phrase database!") -def main(args): - version = "phrases 1.0.0" - c = sqlite3.connect(find_file(args)).cursor() + +def get_rand(): c.execute("SELECT * FROM phrases WHERE length <= (?) AND length >= (?)", (args.max, args.min)) - data = c.fetchall() - output(args, list(data[randint(0, len(data))]), len(data,), version) + + +def main(): + get_rand() + output() + if __name__ == "__main__": - main(parse_args()) + version = "phrases 1.0.2" + args = parse_args() + c = sqlite3.connect(find_file()).cursor() + main()