#!/usr/bin/env python3 import curses import argparse import sys from curses import wrapper from .libs.config import Config from .libs.absapi import ABSApi, Endpoint, ABSResponse, Library from .libs.terminal import Terminal, ExitTerminal parser = argparse.ArgumentParser() _: argparse.Action = parser.add_argument("--debug", help="Debug the program", action="store_true") _: argparse.Action = parser.add_argument("--remote-debug", help="Enable remote debugging with pudb", action="store_true") _: argparse.Action = parser.add_argument("--debug-port", help="Port for remote debugging", type=int, default=6899) args = parser.parse_args() config: Config = Config() # stdscr: curses.window = curses.initscr() def main(stdscr: curses.window) -> None: if args.remote_debug: import os from pudb.remote import set_trace _term_size: os.terminal_size = os.get_terminal_size() # set_trace(term_size=(_term_size.columns, _term_size.lines), host='0.0.0.0', port=args.debug_port) terminal: Terminal = Terminal(stdscr, remote_debug=args.remote_debug, debug_port=args.debug_port) else: terminal: Terminal = Terminal(stdscr) Terminal.startup(terminal) if __name__ == "__main__": if args.debug: _api = ABSApi() _response: list[Library]|None = _api.get_libraries() _id = _response[0].id if _response else "" _books = _api.get_books(_id) for book in _books if _books else []: breakpoint() print(book.media.metadata.title) sys.exit(0) try: while True: wrapper(main) except ExitTerminal: pass