ListUsers: --list sorts all approved users ascending
This commit is contained in:
parent
c46adc2849
commit
452204a5e9
1 changed files with 32 additions and 18 deletions
|
@ -5,6 +5,8 @@ import configparser
|
|||
import lib.uis.default as default_cmd # Follows -u, -a, -f flags
|
||||
|
||||
default_cmd.argparser.description += " - Lists Users from the Tilde database."
|
||||
default_cmd.argparser.add_argument('--list', default=False, action="store_true",
|
||||
help='Output a newline seperated list of users', required=False)
|
||||
args = default_cmd.argparser.parse_args()
|
||||
config = configparser.ConfigParser()
|
||||
config.read(args.config)
|
||||
|
@ -17,13 +19,21 @@ class ListUsers:
|
|||
def __init__(self, db: str, uap: bool = False, app: bool = True):
|
||||
self.db = SQLitedb(db)
|
||||
if uap: # only unapproved users
|
||||
query = "SELECT * FROM `applications` WHERE status = '0'"
|
||||
query = "SELECT * FROM `applications` WHERE `status` = '0'"
|
||||
elif app: # Approved users
|
||||
query = "SELECT * FROM `applications` WHERE status = '1'"
|
||||
query = "SELECT * FROM `applications` WHERE `status` = '1'"
|
||||
else: # All users
|
||||
query = "SELECT * FROM `applications`"
|
||||
self.usersFetch = self.db.query(query)
|
||||
|
||||
def outputaslist(self) -> str:
|
||||
list_str: str = ""
|
||||
query = "SELECT `username` FROM `applications` WHERE `status` = '1' ORDER BY timestamp ASC"
|
||||
self.usersFetch = self.db.query(query)
|
||||
for users in self.usersFetch:
|
||||
list_str += users["username"]+"\n"
|
||||
return list_str
|
||||
|
||||
def prettyPrint(self) -> None:
|
||||
pass # see below why not implemented yet, texttable...
|
||||
|
||||
|
@ -36,14 +46,9 @@ class ListUsers:
|
|||
return self.usersFetch
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
ret = ""
|
||||
L = ListUsers(config['DEFAULT']['applications_db'], uap=args.unapproved, app=args.approved)
|
||||
fetch = L.getFetch()
|
||||
# @TODO MAYBE best solution: https://pypi.org/project/texttable/
|
||||
# examle:
|
||||
"""
|
||||
# @TODO MAYBE best solution: https://pypi.org/project/texttable/
|
||||
# examle:
|
||||
"""
|
||||
from texttable import Texttable
|
||||
t = Texttable()
|
||||
t.add_rows([['Name', 'Age'], ['Alice', 24], ['Bob', 19]])
|
||||
|
@ -61,15 +66,24 @@ print(t.draw())
|
|||
for user in fetch:
|
||||
print("ID: {}; Username: \"{}\"; Mail: {}; Name: \"{}\"; Registered: {}; Status: {}".format(
|
||||
user["id"], user["username"], user["email"], user["name"], user["timestamp"], user["status"]
|
||||
))"""
|
||||
ret += "ID %-1s| Username %-5s| Mail %-20s| Name %-17s| Registered %-8s | State |\n" % (
|
||||
" ", " ", " ", " ", " "
|
||||
)
|
||||
ret += 102 * "-" + "\n"
|
||||
for user in fetch:
|
||||
ret += "%-4i| %-14s| %-25s| %-22s| %-8s | %-5i |\n" % (
|
||||
user["id"], user["username"], user["email"], user["name"], user["timestamp"], user["status"]
|
||||
))
|
||||
"""
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
ret = ""
|
||||
L = ListUsers(config['DEFAULT']['applications_db'], uap=args.unapproved, app=args.approved)
|
||||
if args.list:
|
||||
ret = L.outputaslist()
|
||||
else:
|
||||
fetch = L.getFetch()
|
||||
ret += "ID %-1s| Username %-5s| Mail %-20s| Name %-17s| Registered %-8s | State |\n" % (
|
||||
" ", " ", " ", " ", " "
|
||||
)
|
||||
ret += 102 * "-" + "\n"
|
||||
for user in fetch:
|
||||
ret += "%-4i| %-14s| %-25s| %-22s| %-8s | %-5i |\n" % (
|
||||
user["id"], user["username"], user["email"], user["name"], user["timestamp"], user["status"]
|
||||
)
|
||||
if args.file != "stdout":
|
||||
with open(args.file, 'w') as f:
|
||||
print(ret, file=f)
|
||||
|
|
Loading…
Reference in a new issue