All checks were successful
Docker / build-and-push (push) Successful in 1m18s
Based on bingo-bango by f8al (MIT) — same core card-generation idea
("both facets": a square is either an exact song title or an artist,
and an artist square lights up on any of their tracks), reworked with
a real host/guest split, live multiplayer sessions, and cover-art
squares. f8al credited in the footer, README, and PROPOSAL.md.
Three ways to play: host a live session (server-side Spotify
connection, join code + QR, caller screen, auto-call from real
playback), join someone else's session (no login needed), or solo
(guest PKCE login or a pasted public playlist URL, one-off card).
Genuinely verified against a real Spotify account throughout, not
just built and assumed working — including two real bugs found and
fixed along the way (Spotify's playlist-tracks endpoint quietly
renamed to /items with a reshaped response; reading playlist tracks
needs real user auth even for public playlists, so the "no guest
login" public-playlist path routes through the host's connection
instead of a dead-end app-only token). Both Docker images built and
run together on a real network with the nginx proxy verified working
end-to-end, and auto-call confirmed detecting an actual track playing
live through Spotify Connect within one poll tick.
24 lines
713 B
JavaScript
24 lines
713 B
JavaScript
import 'dotenv/config';
|
|
import express from 'express';
|
|
import cookieParser from 'cookie-parser';
|
|
import hostAuth from './routes/hostAuth.js';
|
|
import hostPlaylists from './routes/hostPlaylists.js';
|
|
import publicPlaylist from './routes/publicPlaylist.js';
|
|
import session from './routes/session.js';
|
|
|
|
const app = express();
|
|
app.use(cookieParser());
|
|
app.use(express.json());
|
|
|
|
app.get('/api/health', (req, res) => res.json({ ok: true }));
|
|
|
|
app.use('/api/spotify', hostAuth);
|
|
app.use('/api/host', hostPlaylists);
|
|
app.use('/api/public-playlist', publicPlaylist);
|
|
app.use('/api/session', session);
|
|
|
|
const PORT = process.env.PORT || 3010;
|
|
app.listen(PORT, () => {
|
|
console.log(`fullhouse API listening on :${PORT}`);
|
|
});
|