40 lines
1.2 KiB
Go
40 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
appbsky "github.com/bluesky-social/indigo/api/bsky"
|
|
)
|
|
|
|
// Helpers for inspecting profile / post labels.
|
|
|
|
// profileRequiresAuth reports whether the profile has self-applied the
|
|
// !no-unauthenticated label. SSR responses for these profiles omit post
|
|
// content beyond minimal identity.
|
|
func profileRequiresAuth(pv *appbsky.ActorDefs_ProfileViewDetailed) bool {
|
|
if pv == nil {
|
|
return false
|
|
}
|
|
for _, label := range pv.Labels {
|
|
if label.Src == pv.Did && label.Val == "!no-unauthenticated" {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
// postAuthorRequiresAuth reports whether the post author self-applied the
|
|
// !no-unauthenticated label, read from the author view embedded in a
|
|
// getPostThread response. The appview surfaces the account's profile-record
|
|
// self-labels on the post author (src == author DID), so this mirrors
|
|
// profileRequiresAuth without a separate ActorGetProfile call.
|
|
func postAuthorRequiresAuth(pv *appbsky.FeedDefs_PostView) bool {
|
|
if pv == nil || pv.Author == nil {
|
|
return false
|
|
}
|
|
for _, label := range pv.Author.Labels {
|
|
if label.Src == pv.Author.Did && label.Val == "!no-unauthenticated" {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|