- commit
- 7b9dedd5b9545621ac1b9f9c716cad4667ec603f
- parent
- 7bab30e3626558ee33a180bd2c2ca3c244c772ae
- author
- Dami <dami.etoile@gmail.com>
| A | README.md | 92 | ++++++++++++++++++++++++++++++ |
@@ -0,0 +1,92 @@
1+# Showings2+3+A terminal UI for browsing Alamo Drafthouse movie showtimes. Built with Go and the [Charmbracelet](https://charm.sh/) stack.4+5+6+7+## Features8+9+- **Movie List View** -- Movies displayed as bordered cards with title, rating, synopsis, and showtime chips (time, screen, format). Past showtimes are dimmed and struck through.10+- **Gantt Timeline View** -- Horizontal bar chart where each row is a theater screen. Color-coded bars represent screenings over time with hour rulers, half-hour ticks, and a live "NOW" marker.11+- **Date Navigation** -- Step through available dates or jump to today.12+- **Venue Switching** -- Modal dialog to switch between cinemas in your market (e.g., Denver: Westminster, Sloans Lake, Littleton).13+- **Scrollable Viewport** -- Full keyboard-driven navigation with scroll indicator.14+15+## Install16+17+Requires **Go 1.24+**.18+19+```bash20+go install github.com/dami/showings@latest21+```22+23+Or build from source:24+25+```bash26+git clone git@github.com:FelineStateMachine/showings.git27+cd showings28+go build -o showings .29+```30+31+## Usage32+33+```bash34+showings # Westminster, today, list view35+showings -v sloans-lake # Different venue36+showings -d 2026-02-20 # Specific date37+showings -g # Open in Gantt view38+showings -v littleton -d 2026-02-20 -g # All options combined39+```40+41+### Flags42+43+| Flag | Short | Default | Description |44+|------|-------|---------|-------------|45+| `--venue` | `-v` | `westminster` | Alamo Drafthouse venue slug |46+| `--date` | `-d` | today | Date filter (`YYYY-MM-DD`) |47+| `--gantt` | `-g` | `false` | Open in timeline view |48+49+### Keyboard Controls50+51+| Key | Action |52+|-----|--------|53+| `q` / `Ctrl+C` | Quit |54+| `g` | Toggle list / Gantt view |55+| `v` | Open venue selector |56+| `t` | Jump to today |57+| `n` / `p` | Next / previous date |58+| `↑↓` / `j` `k` | Scroll |59+| `Enter` | Select venue (in modal) |60+| `Esc` | Close modal |61+62+## Architecture63+64+```65+main.go CLI entrypoint (Cobra)66+internal/67+├── api/ HTTP client for Alamo Drafthouse schedule API68+├── models/ Go structs mapping the API response + helper methods69+├── state/ Bubble Tea model, rendering, styles, date logic70+└── views/ List view and Gantt timeline renderers71+```72+73+The app fetches data from the public Alamo Drafthouse schedule endpoint (`/s/mother/v2/schedule/venue/{slug}`), maps it into typed Go structs, and renders it through Bubble Tea's Elm Architecture update loop.74+75+## Tech Stack76+77+- [Bubble Tea](https://github.com/charmbracelet/bubbletea) -- TUI framework78+- [Lipgloss](https://github.com/charmbracelet/lipgloss) -- Terminal styling and layout79+- [Bubbles](https://github.com/charmbracelet/bubbles) -- Viewport component80+- [Cobra](https://github.com/spf13/cobra) -- CLI flag parsing81+82+## Tests83+84+```bash85+go test ./...86+```87+88+Covers API client (mock HTTP server), model filtering, and data lookups.89+90+## License91+92+Private.