···3131 queryFn: async () => {
3232 if (!url) return undefined
3333 const urlp = new URL(url)
3434- if (!liveNowConfig.allowedDomains.has(urlp.hostname)) {
3535- const {formatted} = getLiveServiceNames(liveNowConfig.allowedDomains)
3434+ if (!liveNowConfig.currentAccountAllowedHosts.has(urlp.hostname)) {
3535+ const {formatted} = getLiveServiceNames(
3636+ liveNowConfig.currentAccountAllowedHosts,
3737+ )
3638 throw new Error(
3739 _(
3840 msg`This service is not supported while the Live feature is in beta. Allowed services: ${formatted}.`,
+7-1
src/lib/actor-status.ts
···33 type $Typed,
44 type AppBskyActorDefs,
55 AppBskyEmbedExternal,
66+ AtUri,
67} from '@atproto/api'
78import {isAfter, parseISO} from 'date-fns'
89···7374 config: LiveNowConfig,
7475) {
7576 if (status.status !== 'app.bsky.actor.status#live') return false
7777+ if (!status.uri) return false // should not happen, just backwards compat
7678 try {
7979+ const {host: liveDid} = new AtUri(status.uri)
7780 if (AppBskyEmbedExternal.isView(status.embed)) {
7881 const url = new URL(status.embed.external.uri)
7979- return config.allSupportedDomains.has(url.hostname)
8282+ const exception = config.allowedHostsExceptionsByDid.get(liveDid)
8383+ const isValidException = exception ? exception.has(url.hostname) : false
8484+ const isValidForAnyone = config.defaultAllowedHosts.has(url.hostname)
8585+ return isValidException || isValidForAnyone
8086 } else {
8187 return false
8288 }