feat: migrate INWX DNS CLI to interactive Textual TUI

- replace CLI menu with multi-panel Textual interface (sidebar & data table)
- implement asynchronous loading for domains and DNS records via worker threads
- add support for optional 2FA/TOTP auto-unlock and manual TAN modal
- introduce .env configuration fallback for stored credentials
- add modals for creating, editing, and deleting DNS records
- enable inline row editing via mouse double-click and keyboard navigation
- update project documentation in README.md
This commit is contained in:
paase committed 2026-09-19 15:34:14 +02:00
1 parent b6574815e7
commit dbb30b70f5
10 files changed
+754 -1

No files matched your search

+50 -1
View File
@@ -1,2 +1,51 @@
# inwx_tui
# INWX DNS TUI Client
Python ane **Textual** no upyog kari banavavama aavelo ek aadhunik, clickable Terminal User Interface (TUI) client, jena thi tame INWX na DNS records ane domains ne sahelta thi manage kari shako chho.
## Features
- **Clickable GUI in Terminal**: Mouse ane keyboard shortcuts banne dwara chalavi shakay chhe.
- **Domain Overview**: Login thaya pachhi account ma rahela badha domains automatic left sidebar ma load thai jaay chhe.
- **DNS Records Management**:
- DNS records jova (A, AAAA, CNAME, MX, TXT, SRV, CAA, NS, PTR, vagere).
- Double-click athva `Enter` dabavi ne record edit karvo.
- Nava records dropdown menu ane custom input sathe add karva.
- Records delete ane live refresh karva.
- **2FA / TOTP Support**:
- Jo account ma 2FA chalu hoy to j code mangshe.
- `.env` ma TOTP secret mukine automatic unlock pan kari shakay chhe.
- **Non-blocking Workers**: Background async workers lidhe API call vakhte UI freeze thatu nathi.
---
## File Structure
```text
inwx_tui/
├── .env # INWX API credentials ane config
├── inwx_api.py # INWX JSON-RPC API logic ane session management
├── tui_modals.py # Modal popups (Login, 2FA prompt, Record Edit/Add)
├── tui_app.py # Textual TUI main interface ane event handling
├── main.py # Application start karvani entrypoint script
└── README.md # Project documentation
## Requirements
Python 3.10+
Linux / macOS / WSL (Windows Terminal)
´´´bash
pip install textual python-dotenv requests pyotp
## Usage
```bash
python3 main.py
```
Or, by granting execution permission:
```bash
chmod +x main.py
./main.py