funkwlmpv/src/fw_libraries.py

36 lines
1.1 KiB
Python
Raw Normal View History

2022-11-08 22:34:33 +00:00
from src.fw_api import list_libraries
from pyfzf.pyfzf import FzfPrompt
from loguru import logger
fzf = FzfPrompt()
2022-12-24 01:08:23 +00:00
@logger.catch
2022-11-08 22:34:33 +00:00
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')
2022-12-24 01:08:23 +00:00
libs = libs_res.get('results')
2022-11-08 22:34:33 +00:00
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}')
2022-12-18 01:02:53 +00:00
lib_select = fzf.prompt(
libraries_listing, f'--header=\'found {libs_count} libraries\'')[0].split('.', 1)
2022-11-08 22:34:33 +00:00
if lib_select[0] == 'Next':
2022-12-24 01:08:23 +00:00
return libraries(pg=libs_next)
2022-11-08 22:34:33 +00:00
elif lib_select[0] == 'Prev':
2022-12-24 01:08:23 +00:00
return libraries(pg=libs_prev)
2022-11-08 22:34:33 +00:00
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