Upcoming Acts at Venues
- Go 79.8%
- HTML 10.3%
- CSS 9.9%
| db | ||
| deezer | ||
| scraper | ||
| server | ||
| worker | ||
| .gitignore | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| PLAN.md | ||
| PROMPT.md | ||
| README.md | ||
upven — Upcoming Venue
A Go web app that scrapes upcoming music shows from venue calendar pages and tracks them in SQLite, with an HTMX-powered dark-mode web UI.
Features
- Register venue calendar URLs via the web UI
- Headless-Chrome scraping (JS-heavy pages supported) in background jobs
- Modular scraper pipeline: dedicated per-site scrapers (currently
trixonline.be) first, then schema.org JSON-LD (
Event/MusicEvent), then a configurable CSS-selector fallback - Default 90-day scrape window; browse shows by 14 days / month / all / custom range
- After each scrape, fetches the top 3 songs per act from the Deezer public API and stores them in the database
- Live scrape-status badges that poll every 2s via HTMX
Requirements
- Go 1.25+ toolchain
chromium-headless-shell(or Chrome/Chromium) inPATH
Run
go build -o upven .
./upven # serves http://localhost:8095, creates upven.db
Flags: -addr :8095, -db upven.db, -workers 2.
Layout
| Path | Purpose |
|---|---|
db/ |
SQLite store (modernc.org/sqlite), schema + repositories |
scraper/ |
Scraper interface, chromedp browser, dedicated-venue + JSON-LD + CSS extractors |
worker/ |
In-process async job queue |
server/ |
chi HTTP routes, embedded templates + static assets |