package notes import ( "fmt" ) type AppBskyActorProfileRecord struct { DisplayName string `json:"displayName"` Avatar *struct { Ref struct { Link string `json:"$link"` } `json:"ref"` } `json:"avatar,omitempty"` Banner *struct { Ref struct { Link string `json:"$link"` } `json:"ref"` } `json:"banner,omitempty"` Pronouns string `json:"pronouns"` } func AuthorFromAppBskyActorProfileRecord(record AppBskyActorProfileRecord, did, handle string) (*Author, error) { var avatarURL, bannerURL string if record.Avatar != nil { avatarURL = fmt.Sprintf("https://cdn.bsky.app/img/avatar/plain/%s/%s@jpeg", did, record.Avatar.Ref.Link) } if record.Banner != nil { bannerURL = fmt.Sprintf("https://cdn.bsky.app/img/banner/plain/%s/%s@jpeg", did, record.Banner.Ref.Link) } author := &Author{ Handle: handle, DisplayName: record.DisplayName, AvatarURL: avatarURL, BannerURL: bannerURL, Pronouns: record.Pronouns, } return author, nil }