booru-viewer/README.md
pax b10c00d6bf Initial release — booru image viewer with Qt6 GUI and Textual TUI
Supports Danbooru, Gelbooru, Moebooru, and e621. Features include tag search
with autocomplete, favorites with folders, save-to-library, video playback,
drag-and-drop, multi-select, custom CSS theming, and cross-platform support.
2026-04-04 06:00:50 -05:00

92 lines
1.9 KiB
Markdown

# booru-viewer
Local desktop application for browsing, searching, and favoriting images from booru-style imageboards.
Dual interface — **Qt6 GUI** and **Textual TUI**. Green-on-black theme.
## Features
- Tag-based search across multiple booru sites (Danbooru, Gelbooru, Moebooru)
- Auto-detect site API type — just paste the URL
- Thumbnail grid with full image preview (zoom/pan)
- Favorites system with local download cache and offline browsing
- Tag autocomplete
- Per-site API key support
## Install
```sh
pip install -e ".[all]"
```
Or install only what you need:
```sh
pip install -e ".[gui]" # Qt6 GUI only
pip install -e ".[tui]" # Textual TUI only
```
### Dependencies
- **GUI**: PySide6 (Qt6)
- **TUI**: Textual
- **Core**: httpx, Pillow, SQLite (stdlib)
## Usage
```sh
# Qt6 GUI
booru-gui
# Terminal TUI
booru-tui
```
### TUI Keybinds
| Key | Action |
|-----|--------|
| `/` | Focus search |
| `Enter` | Preview selected |
| `f` | Toggle favorite |
| `j`/`k` | Navigate down/up |
| `n`/`p` | Next/previous page |
| `1`/`2`/`3` | Browse / Favorites / Sites |
| `Escape` | Close preview |
| `q` | Quit |
### GUI Keybinds
| Key | Action |
|-----|--------|
| `F` | Toggle favorite on selected |
| `Ctrl+S` | Manage sites |
| `Ctrl+Q` | Quit |
| Scroll wheel | Zoom in preview |
| Right click | Close preview |
| `0` | Fit to view |
| `+`/`-` | Zoom in/out |
## Adding Sites
Open the site manager (GUI: `Ctrl+S`, or in the Sites tab). Enter a URL and click Auto-Detect — the app probes for Danbooru, Gelbooru, and Moebooru APIs automatically.
Or via Python:
```python
from booru_viewer.core.db import Database
db = Database()
db.add_site("Danbooru", "https://danbooru.donmai.us", "danbooru")
db.add_site("Gelbooru", "https://gelbooru.com", "gelbooru")
```
## Data
- Database: `~/.local/share/booru-viewer/booru.db`
- Image cache: `~/.local/share/booru-viewer/cache/`
- Thumbnails: `~/.local/share/booru-viewer/thumbnails/`
## License
MIT