cottongin
ab81ad4fd4
feat: add poller with supervised restart loop
...
Made-with: Cursor
2026-03-12 01:40:00 -04:00
cottongin
f7dde6781a
feat: add user resolution and likes fetching with 401 retry
...
Made-with: Cursor
2026-03-12 01:36:28 -04:00
cottongin
49846f9d7e
feat: add SoundCloud client with client_id extraction
...
Made-with: Cursor
2026-03-12 01:36:03 -04:00
cottongin
d2ab4e94c0
feat: add database query methods for tracks, shows, and show_tracks
...
Made-with: Cursor
2026-03-12 01:33:17 -04:00
cottongin
2b38fda25a
feat: add database module with schema initialization
...
Made-with: Cursor
2026-03-12 01:21:33 -04:00
cottongin
537d9ecd8b
feat: add data models for Track, Show, ShowTrack
...
Made-with: Cursor
2026-03-12 01:18:20 -04:00
cottongin
38dda5dda0
feat: add week boundary computation with DST handling
...
Made-with: Cursor
2026-03-12 01:18:12 -04:00
cottongin
7e41f55e26
feat: add configuration module with pydantic-settings
...
Made-with: Cursor
2026-03-12 01:16:51 -04:00
cottongin
c40559822e
scaffold: project structure with pyproject.toml and test config
...
Made-with: Cursor
2026-03-12 01:16:16 -04:00
cottongin
22f6b5cbca
design: sync unliked tracks — remove from show and re-compact positions
...
Nick is the host; if he unlikes a track, the service should respect
that and remove it from the show playlist. Positions re-compact after
removal. The tracks table retains the record for historical reference.
Made-with: Cursor
2026-03-12 01:13:19 -04:00
cottongin
7eaf036d4b
plan: add implementation plan for NtR SoundCloud fetcher
...
13-task TDD implementation plan covering project scaffolding, config,
week boundaries, database, SoundCloud client, poller, API, and entry point.
Made-with: Cursor
2026-03-12 01:05:52 -04:00
cottongin
48801afa76
Add design doc and SoundCloud API reference
...
Design for a SoundCloud likes fetcher service that builds weekly
playlists for Nick the Rat Radio and serves them via JSON API.
Made-with: Cursor
2026-03-12 01:01:14 -04:00