Files
abstui/src/__main__.py
2025-09-21 10:19:44 -04:00

45 lines
1.6 KiB
Python
Executable File

#!/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