from src.fw_api import list_libraries from pyfzf.pyfzf import FzfPrompt from loguru import logger fzf = FzfPrompt() def libraries(pg=None): libs_res = list_libraries(pg=pg) libs_count = libs_res.get('count') libs_next = libs_res.get('next') libs_prev = libs_res.get('previous') libs = list_libraries()['results'] libraries_listing = [] if libs_next: libraries_listing.append('Next') if libs_prev: libraries_listing.append('Prev') for lib_i in libs: index = libs.index(lib_i) lib_name = lib_i.get('name') lib_by = lib_i.get('actor').get('full_username') libraries_listing.append(f'{index}.{lib_name} | by {lib_by}') lib_select = fzf.prompt( libraries_listing, f'--header=\'found {libs_count} libraries\'')[0].split('.', 1) if lib_select[0] == 'Next': libraries(pg=libs_next) elif lib_select[0] == 'Prev': libraries(pg=libs_prev) else: lib_addr = lib_select[0] lib_name = lib_select[1] lib_uuid = libs[int(lib_addr)].get('uuid') return None, 'library', lib_name, lib_uuid