Docs do Nodaro
DocumentaçãoReferência de nósModelosAgentes de IA (MCP)DesenvolvedoresSelf-hostingPesquisa
SDK para TypeScript

Biblioteca da comunidade

Explore a biblioteca da comunidade do Nodaro em TypeScript, clone na sua conta personagens, locais e objetos, favorite-os e denuncie uma publicação.

Disponível em Nodaro Cloud · Business edition

client.community lê a biblioteca da comunidade, a coleção compartilhada de personagens, locais e objetos selecionados pela equipe do Nodaro. Você pode explorar a biblioteca e buscar nela, ler uma publicação, clonar uma publicação na sua própria conta, favoritá-la e denunciá-la para moderação. Os métodos chamam a API REST da comunidade. Veja Biblioteca da comunidade para conhecer o recurso e as regras de direito de imagem e de consentimento.

A biblioteca da comunidade existe nas instalações multiusuário: Nodaro Cloud e Business edition. Uma instalação da Community Edition, de um único usuário, responde a todas as chamadas com NotFoundError.

Métodos

MétodoO que faz
browse(params?)Explora as publicações e busca nelas
get(slug)Lê uma publicação
getFull(slug)Lê uma publicação com o snapshot público completo
favorites()Lista as publicações que você favoritou
clone(id, entityType)Copia uma publicação para a sua conta
favorite(id)Adiciona ou remove um favorito
report(id, reason)Denuncia uma publicação para moderação

Publicar não faz parte do SDK: os tokens pessoais e OAuth do SDK não podem publicar.

client.community

Uma publicação é um CommunityCard. Os campos dela usam snake_case, como a API os envia. CommunityEntityType é "character", "location" ou "object".

browse(params?)

Retorna uma página de publicações públicas e um nextCursor (GET /v1/community/browse). Passe nextCursor de volta como cursor para obter a próxima página; ele é null na última página.

browse(params?: BrowseCommunityParams): Promise<{ data: CommunityCard[]; nextCursor: string | null }>

Prop

Type

const { data: listings, nextCursor } = await client.community.browse({
  entityType: "character",
  sort: "popular",
  limit: 20,
})

get(slug)

Lê uma publicação pelo slug (GET /v1/community/detail/:slug).

get(slug: string): Promise<{ data: CommunityCard }>

Prop

Type

const { data: listing } = await client.community.get("detective-mara")

Lança NotFoundError quando a publicação não existe ou não está mais ativa.

getFull(slug)

Lê uma publicação com o snapshot público completo: imagens, voz e texto, como uma página de detalhes os mostra (GET /v1/community/detail/:slug/full).

getFull(slug: string): Promise<{ data: CommunityFullDetail }>

Prop

Type

const { data: detail } = await client.community.getFull("detective-mara")

favorites()

Lista as publicações que você favoritou (GET /v1/community/favorites).

favorites(): Promise<{ data: CommunityCard[] }>
const { data: favorites } = await client.community.favorites()

clone(id, entityType)

Copia uma publicação para a sua biblioteca como uma cópia independente (POST /v1/community/listings/:id/clone). Os arquivos dela são copiados para o seu próprio armazenamento, então a cópia continua existindo quando o original muda ou é removido. Retorna o tipo e o ID da sua nova entidade.

clone(id: string, entityType: "character" | "location" | "object"): Promise<{ entityType: string; id: string }>

Prop

Type

const { id: characterId } = await client.community.clone(listingId, "character")
const character = await client.characters.get(characterId)

Um token OAuth precisa do escopo assets:write. Lança StorageExceededError quando o seu armazenamento está cheio.

favorite(id)

Adiciona uma publicação aos seus favoritos, ou a remove quando ela já está lá (POST /v1/community/listings/:id/favorite). Retorna o novo estado.

favorite(id: string): Promise<{ favorited: boolean }>

Prop

Type

const { favorited } = await client.community.favorite(listingId)

report(id, reason)

Denuncia uma publicação para moderação (POST /v1/community/listings/:id/report).

report(id: string, reason: CommunityReportReason): Promise<{ ok: true }>

Prop

Type

await client.community.report(listingId, "real_person_no_consent")

Perguntas frequentes

Última atualização

Nesta página