bsky feeds about music music-atmosphere-feed.plyr.fm/
bsky feed zig
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

also filter dashboard top posters by cumulative count

Bots that stopped posting still dominate the cumulative stats.
Skip entries with >5x the bot threshold (default 500) in addition
to the 24h rate-based filter.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

zzstoatzz 5f7564da 719789d5

+6 -2
+6 -2
src/server/dashboard.zig
··· 291 291 \\<div class="subsection">top posters</div> 292 292 ); 293 293 294 - // get top posters, excluding bots (use longer window for dashboard since stats are cumulative) 294 + // get top posters, excluding bots 295 295 const bot_threshold = http.getBotThreshold(); 296 - const exclude_dids = posts.getHighVolumePosters(alloc, bot_threshold, 24 * 30) catch null; 296 + const exclude_dids = posts.getHighVolumePosters(alloc, bot_threshold, 24) catch null; 297 297 defer if (exclude_dids) |e| posts.freeDidList(alloc, e); 298 298 const top = s.getTopPosters(20); 299 299 const unique_count = s.getUniquePosterCount(); ··· 331 331 } 332 332 333 333 // find max count for relative sizing (skip bots) 334 + // skip if: in the 24h DB exclude list, or cumulative count > 5x threshold 335 + const cumulative_limit: u32 = @intCast(bot_threshold * 5); 334 336 var max_count: u32 = 1; 335 337 for (top) |entry| { 336 338 if (entry.count == 0) continue; 339 + if (entry.count > cumulative_limit) continue; 337 340 if (isExcluded(entry.getDid(), exclude_dids)) continue; 338 341 if (entry.count > max_count) max_count = entry.count; 339 342 } ··· 346 349 var shown: usize = 0; 347 350 for (top) |entry| { 348 351 if (entry.count == 0) continue; 352 + if (entry.count > cumulative_limit) continue; 349 353 const did = entry.getDid(); 350 354 if (isExcluded(did, exclude_dids)) continue; 351 355 if (shown >= 5) break;