alpha
Login
or
Join now
atradio.fm
/
atradio
Star
13
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
A social internet radio platform built on AT Protocol.
atradio.fm
atproto
radio
Star
13
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
atradio
/
apps
/
at
main
4 folders
Tsiry Sandratraina
Update CliInstallModal.tsx
3w ago
0b58e0f2
api
fix(api): dedup #firehose messages across Jetstream connections We subscribe to all four Jetstream hosts at once for redundancy, so each commit arrives ~4× and posted 4 duplicate Discord messages. Dedup on a host-stable record identity (operation:collection:did:rkey:cid) via a TTL-bounded seen-set, posting each record once. cid pins the exact record version for create/update; time_us can't be used since each host stamps its own. The check runs before the profile lookup so dupes are cheap.
1 month ago
media-proxy
fix(media-proxy): keep radio streams alive past gun's 15s cutoff Icecast/SHOUTcast streams reply with no Content-Length and no chunked encoding, so the body is delimited by connection close. gun classifies that as `body_close`/`connection: close`, enters its `closing` state, and arms `closing_timeout` (default 15s) — then force-closes the upstream after 15s, cutting every web radio stream off shortly after it starts. Pass `http_opts => #{closing_timeout => infinity}` so gun keeps the connection open for the whole listening session. Since that 15s close was also the only thing tearing down abandoned streams, add explicit teardown: the chunked loop signals the pump (proxy_gun_ffi:stop/1) when send_chunk to the client fails, so the upstream is closed promptly when a listener leaves (the pump's DATA_TIMEOUT remains the backstop for upstream stalls).
1 month ago
media-proxy-ts
fix(media-proxy-ts): decode Transfer-Encoding: chunked upstreams Zeno.fm/surfernetwork stations serve the audio as `Transfer-Encoding: chunked`. The raw-socket client forwarded the body verbatim, so the hex chunk-size framing lines landed in the audio decoder as garbage and stuttered playback. Add an incremental ChunkedDecoder and apply it in both the stream pipe and the ICY reader (chunked framing sits beneath the ICY metaint interleaving, so de-frame before walking the metadata blocks). The upstream `transfer-encoding` header is not in the forward allowlist, so the client sees Bun's own framing over the decoded audio, with `icy-metaint` still valid.
1 month ago
web
Update CliInstallModal.tsx
3 weeks ago