diff --git a/horsygui.py b/horsygui.py index 74aab34..39a62b4 100644 --- a/horsygui.py +++ b/horsygui.py @@ -9,7 +9,6 @@ from modules.console import cls from modules.virustotal import add_to_cfg from modules.uploader import upload from modules.source import get_source -from modules.search import search, info import modules.vars as horsy_vars # Initialize GUI @@ -47,12 +46,26 @@ def uninstall_app(): uninstall(app_name) installed_apps() +def search_gui(): + from modules.search import search + search_query = ui.search_box.toPlainText() + if search_query == "": + return + else: + found = search(search_query, True) + ui.search_table.clear() + ui.search_table.setColumnCount(4) + ui.search_table.setRowCount(math.ceil(len(found) / 4)) + for i in range(len(found)): + ui.search_table.setItem(i // 4, i % 4, QtWidgets.QTableWidgetItem(str(found[i]))) + # Run functions on startup installed_apps() # Binds ui.update_button.clicked.connect(update_app) ui.delete_button.clicked.connect(uninstall_app) +ui.search_button.clicked.connect(search_gui) # Handle GUI exiting to exit whole program diff --git a/modules/auth.py b/modules/auth.py index 015644d..0acfc6d 100644 --- a/modules/auth.py +++ b/modules/auth.py @@ -1,8 +1,9 @@ import json +import modules.vars as horsy_vars def get_auth(): - with open('config.cfg') as f: + with open(horsy_vars.horsypath + 'config.cfg') as f: config = json.load(f) try: @@ -17,17 +18,17 @@ def get_auth(): print('password') password = input('> ') config['auth'] = {'email': email, 'password': password} - with open('config.cfg', 'w') as f: + with open(horsy_vars.horsypath + 'config.cfg', 'w') as f: json.dump(config, f) print('[OK] Auth created') return config['auth'] def del_auth(): - with open('config.cfg') as f: + with open(horsy_vars.horsypath + 'config.cfg') as f: config = json.load(f) if config['auth']: config['auth'] = None - with open('config.cfg', 'w') as f: + with open(horsy_vars.horsypath + 'config.cfg', 'w') as f: json.dump(config, f) print('[OK] Auth deleted') diff --git a/modules/search.py b/modules/search.py index db71887..b6a4570 100644 --- a/modules/search.py +++ b/modules/search.py @@ -12,11 +12,17 @@ client = SearchClient.create( index = client.init_index('packages') -def search(query): +def search(query, is_gui=False): res = index.search(query)['hits'] + ret_res = list() for i in res: - print(textwrap.shorten(f"{i['name']} by {i['authorName']} - {i['description']}", - width=os.get_terminal_size().columns)) + if not is_gui: + print(textwrap.shorten(f"{i['name']} by {i['authorName']} - {i['description']}", + width=os.get_terminal_size().columns)) + else: + ret_res.append(i['name']) + + return ret_res def info(package):