Tabnews.js - Versão 1.1.0, Todas as melhorias e mudanças 🎉
A versão 1.1.0 do Tabnews.js saiu e tem muita coisa nova, Se você quiser ver o Post de lançamento do Tabnews.js, ele tá aqui Se você quiser contribuir ou achou um bug, o projeto no GitHub é https://github.com/33gustavo33/tabnews.js :)
Como baixar
npm install tabnews.js --save
Novos métodos nas Estruturas de Dados
Foram adicionados muitos métodos.
Na Estrutura Content
, foi adicionado os métodos
- delete - Deleta o conteúdo
- edit - Edita o conteúdo
- upvote - Dá um upvote no conteúdo
- downvote - Dá um downvote no conteúdo
- fetchChildren - Obtém os comentários de um conteúdo
- fetchParent - Obtém o conteúdo
Pai
do conteúdo - fetchOwner - Obtém o usuário dono do conteúdo
Já na Estrutura User
, foi adicionado apenas 1 método
- getContents - retorna os conteúdos do usuário
E também foi adicionado a todas as Estruturas, 2 métodos:
- toJSON - esse método transforma a Estrutura em um Objeto padrão.
- getRaw - esse método retorna os dados que foram usados pra criar a Estrutura(Os dados que o Client recebeu da API do TabNews)
Exemplo:
const content = await client.contents.get("username", "slug")
content.edit({title: "novo titulo"})
content.upvote()
const contentChildren = await content.fetchChildren()
const user = await content.fetchOwner()
const user2 = await contentChildren[0].fetchOwner()
const contentsOfUser = await user.getContents()
contentsOfUser[0].downvote()
user2.toJSON()
Eventos adicionados
Agora, você pode escutar por eventos, atualmente o Client só tem 2 eventos
- ready
- destroyed
O evento ready é emitido quando o Client faz login. E o evento destroyed é emitido quando o Client é destruído
import tabnews from "tabnews.js"
const client = new tabnews.Client()
client.on("ready", (user) => {
console.log(`Logado em ${user.username}!`)
client.destroy()
})
client.on("destroyed", (user) => {
console.log("Client destruido")
})
client.login({email: "", password: ""})
Nova feature: Watchers
Um Watcher serve pra assistir um conteúdo ou usuário observando por mudanças. Em resumo, se você começar a assistir um conteúdo, e alguém dar uma tabcoin para ele, o watcher assim que detectar a mudança vai avisar você.
Um watcher de conteúdo aceita 4 parâmetros, sendo eles:
- O
username
do autor do conteúdo que você quer assistir - O
slug
do conteúdo que você quer assistir - Um Array com o que você quer assistir, em padrão ele assiste todas as propriedades do conteúdo.
- Em quantos milissegundos ele vai checar por mudanças.
Um exemplo:
const watcher = client.contents.watch("exampleUsername", "exampleSlug", ["tabcoins"], 10000)
/* Assiste um conteúdo, checando a cada 10 segundos por mudanças nas tabcoins. */
watcher.on("watcherUpdate", (content) => { //a cada mudança no conteúdo, esse callback é chamado.
console.log(`Tabcoins agora: ${content.tabcoins}. Tabcoins antes: ${content.tabcoins_before}`)
})
watcher.start() // Inicia o watcher.
Mudanças:
-
Na versões
1.0.x
para obter as informações do Client, se usava:client.user.get() // Para obter o Username do client, por exemplo, se usaria: client.user.get().username
Agora, se usa:
client.user // Para obter o Username do client, por exemplo, se usa: client.user.username
De resto, os outros métodos do
client.user
continuam igual. -
Além disso, Testes foram adicionados!
Sempre que eu vejo um client do TabNews eu fico emocionado, e quando um client recebe atualizações eu fico duplamente emocionado, ainda mais com uma publicação como essas. Excelente trabalho Gustavo33
!
Em paralelo, estou achando muito legal o padrão de logos que a comunidade criou, que é pegar o logo original e escrever ou colocar algo dentro. Está ficando tudo muito massa!