from src.fw_api import get_tags from pyfzf.pyfzf import FzfPrompt from loguru import logger fzf = FzfPrompt() @logger.catch def list_tags(pg=None, search=None): tags = get_tags(q=search, pg=pg) tags_next = tags.get('next') tags_prev = tags.get('previous') tags_results = tags.get('results') view = ['Search'] if tags_next: view.append('Next page') if tags_prev: view.append('Prev page') for i in tags_results: index = tags_results.index(i) tag_name = i.get('name') view.append(f'{index}.{tag_name}') select = fzf.prompt(view)[0].split('.', 1)[0] if select == 'Next page': return list_tags(pg=tags_next) elif select == 'Prev page': return list_tags(pg=tags_prev) elif select == 'Search': print('Search by tag:') return list_tags(search=input()) else: return tags_results[int(select)].get('name')