// Per-scope homepage feed. Each national scope with a `feed` in scopes.ts has its own custom feed // generator in gui.do's account (community members plus the wider atproto conversation for that // country, off-topic noise filtered out); the .eu aggregate has the pan-European feed. Which rkey // belongs to which country is a per-country knob in src/config/scopes.ts (`feed.rkey`); this module // only turns that rkey into the AppView URI + the mu.social subscribe deeplink. import type { Scope } from '../config/scopes'; const FEED_DID = 'did:plc:45uheisi25szrjvjurfpritx'; // gui.do (the feed generators live in this account) export interface HomeFeed { uri: string; subscribe: string; } /** The homepage feed for a scope, or null when it has none (no `feed` set in scopes.ts). */ export function feedForScope(scope: Scope): HomeFeed | null { if (!scope.feed) return null; const { rkey } = scope.feed; return { uri: `at://${FEED_DID}/app.bsky.feed.generator/${rkey}`, // Subscribe deeplink on mu.social (same path shape as bsky.app: /profile//feed/). subscribe: `https://mu.social/profile/gui.do/feed/${rkey}`, }; }