tabnews.js v1.1.0
Instalação
npm install tabnews.js
yarn add tabnews.js
Exemplo de uso
import { Client } from "tabnews.js"
const client = new Client()
client.login({
email: "example@example.com",
password: "examplePassword",
//ou então você pode logar direto pelo token, porém o token fica inválido depois de algum tempo.
token: "token"
}).then((user) => {
console.log(`Logado na conta ${user.username} com o token ${user.token}`)
}).catch(console.error)
Documentação(Não está pronta.)
Alerta: recomendo expandir tudo caso for ler as docs!
Eventos: ready, destroyed
Construtor
O constructor da classe Client aceita 1 parâmetro opcional, que é um objeto de configuração O objeto de configuração se parece com isso: |Nome|Descrição|tipo |--|--|--| |tabnewsUrl|uma url customizada do tabnews.|string, opcional |log|se o client deve usar o logger ou não|boolean, opcional |customAgentUser|um agent user customizado pro client, use o nome do seu projeto aqui!|string, opcional |debug|se o client deve usar o modo debug ou não(não é recomendado usar)|boolean, opcional
Métodos do client
Método login
O metódo login aceita 1 parâmetro obrigatório, que é um objeto de login. O objeto de login se parece com isso: |Nome|Descrição|tipo |--|--|--| |email|o email da conta|string, opcional |password|a senha da conta|string, opcional |token|o token da conta|string, opcional
Caso você use um token, você não precisa usar um email e password, caso você não use um token, você precisa usar o email e o password
esse método retorna uma Promise contendo um ClientUserData, ele também emite o evento ready
Método destroy
Este método destroi a conexão do client com a api. Para você se conectar novamente você tera que usar o método login ele também emite o evento destroyed
Propriedades do client
Nome | Descrição | tipo |
---|---|---|
connected | se o client está conectado | boolean |
token | o token do client | string |
contents | um gerenciador de contéudos | ContentManager |
status | um gerenciador do status do tabnews | StatusManager |
users | um gerenciador de usuários | UsersManager |
user | um gerenciador do usuário do client | UserManager |
Vale lembrar que as propriedades contents
, status
, users
, user
só estão disponiveis após o login do bot!
ContentManager
Um content manager, como o nome já diz é responsavel por gerenciar os conteudos. Através dele você vai consegur publicar, deletar, editar, dar upvote/downvote em conteúdos, obter os conteúdos relevantes, etc... A seguir estão os metodos de um ContentManager
Método get
O método get obtém um conteudo com base em 2 parâmetros obrigatórios, sendo eles author
e slug
.
Exemplo: se o author for igual a Gustavo33
e o slug for tabnews-js-uma-biblioteca-javascript-para-interagir-com-a-api-do-tabnews
o contéudo que ele vai obter vai ser:
https://www.tabnews.com.br/Gustavo33/tabnews-js-uma-biblioteca-javascript-para-interagir-com-a-api-do-tabnews
Esse método retorna uma Promise contendo um Content
Método getContents
Este método obtém os contéudos mais novos, mais antigos, e mais relevantes com base no primeiro parâmetro. o segundo parâmetro é a página que ele vai obter os conteúdos(Cada página tem 30 conteúdos)
Pârametros:
|Nome|Valores|obrigatório|
|--|--|--|
|strategy|"new"
- "old"
- "relevant"
|Não, o default é "new"
.
|page|Qualquer número|Não, o default é 1
.
Esse método retorna uma Promise contendo um Array de Contents.
Método post
Este método posta um contéudo, ele aceita 1 pârametro obrigatório, que o objeto listado abaixo: |Nome|Descrição|obrigatório|Efeito |--|--|--|--| |parentId|o id de um conteúdo|não obrigatório|faz o conteúdo ser uma resposta ao conteúdo com id igual ao parentId| |customSlug|um slug customizado|não obrigatório|adiciona um slug customizado| |title|o título do conteúdo|não obrigatório caso seja uma resposta|adiciona um título ao conteúdo| |body|o corpo do conteúdo, você pode usar markdown aqui nesse campo|obrigatório|adiciona texto ao conteúdo| |sourceUrl|a url da fonte|não obrigatório|adiciona uma fonte ao conteúdo|
Esse método retorna uma Promise contendo um Content
Método edit
Este método edita um conteúdo, ele aceita 3 pârametros obrigatórios, sendo eles: |Nome|Descrição| |--|--| |author|o autor do conteúdo| |slug|o slug do conteúdo| |content|o que vai ser alterado|
o pârametro content é um objeto, as propriedades desse objeto estão listadas abaixo: |Nome|Descrição|obrigatório|Efeito |--|--|--|--| |title|o título do conteúdo|não obrigatório|adiciona um título ao conteúdo| |body|o corpo do conteúdo, você pode usar markdown aqui nesse campo|não obrigatório|adiciona texto ao conteúdo| |sourceUrl|a url da fonte|não obrigatório|adiciona uma fonte ao conteúdo|
Esse método retorna uma Promise contendo um Content
Método delete
O método delete deleta um conteudo com base em 2 parâmetros obrigatórios, sendo eles author
e slug
.
Exemplo: se o author for igual a Gustavo33
e o slug for tabnews-js-uma-biblioteca-javascript-para-interagir-com-a-api-do-tabnews
o contéudo que ele vai deletar vai ser:
https://www.tabnews.com.br/Gustavo33/tabnews-js-uma-biblioteca-javascript-para-interagir-com-a-api-do-tabnews
Esse método retorna uma Promise contendo um Content
Método upvote e downvote
os Métodos upvote e downvote funcionam com base em 2 parâmetros obrigatórios, sendo eles author
e slug
.
E com base nesses pârametros ele da um upvote/downvote
Esse método retorna uma Promise contendo um objeto parecido com isso:
|Nome|Descrição|
|--|--|
|tabcoins|O numero de tabcoins que o contéudo ficou depois do upvote/downvote|
Método watch
o método watch começa a assistir um contéudo, retornando um Watcher. Pârametros: |Nome|Descrição|obrigatório |--|--|--| |author|o autor do conteúdo que ele vai assistir.|sim |slug|o slug do conteúdo que ele vai assistir.|sim |observeWhat|em que o watcher deve assistir por mudanças|não, o padrão é ele assistir por todos. |ms|o tempo que o watcher vai procurar por mudanças(em milisegundos)|não, o padrão é 2 minutos e 5 segundos
UsersManager
Um UsersManager, como o nome já diz é responsavel por gerenciar os usuários. Através dele você vai consegur obter um usuário, obter os conteúdos relevantes de um usuário, etc... A seguir estão os metodos de um UsersManager
Método get
O método get obtém um usuário com base em 1 parâmetro obrigatório, sendo ele username
.
Exemplo: se o username for Gustavo33
, o usuário que ele vai obter vai ser:
https://www.tabnews.com.br/Gustavo33
Esse método retorna uma Promise contendo um UserData
Método getContentsOfUser
Este método obtém os contéudos mais novos, mais antigos, e mais relevantes de um usuário com base no primeiro e segundo parâmetro. o terceiro parâmetro é a página que ele vai obter os conteúdos(Cada página tem 30 conteúdos)
Pârametros:
|Nome|Valores|obrigatório|
|--|--|--|
|username|Nome do usuário que você quer obter|Sim
|strategy|"new"
- "old"
- "relevant"
|Não, o default é "new"
.
|page|Qualquer número|Não, o default é 1
.
Esse método retorna uma Promise contendo um Array de Contents.
Método watch
o método watch começa a assistir um usuário, retornando um Watcher. Pârametros: |Nome|Descrição|obrigatório |--|--|--| |username|o username do usuário que ele vai assistir.|sim |observeWhat|em que o watcher deve assistir por mudanças|não, o padrão é ele assistir por todos.
|ms|o tempo que o watcher vai procurar por mudanças(em milisegundos)|não, o padrão é 2 minutos e 5 segundos
UserManager
Um UserManager, é responsavel por gerenciar o usuário do client. Através dele você vai consegur obter o usuário do client, editar o usuário do client, etc... A seguir estão os metodos e propriedades de um UserManager
Método get
O método get atualiza o usuário do Client. Esse método retorna uma Promise contendo um ClientUserData
Método edit
Este método edita o usuário do client, ele aceita 1 pârametro que é um objeto, o objeto se parece com isso: |Nome|Descrição| |--|--| |username|o username do usuário|
Esse método retorna uma Promise contendo um ClientUserData
Método watch
o método watch começa a assistir o usuário do client, retornando um Watcher. Pârametros: |Nome|Descrição|obrigatório |--|--|--| |observeWhat|em que o watcher deve assistir por mudanças|não, o padrão é ele assistir por todos. |ms|o tempo que o watcher vai procurar por mudanças(em milisegundos)|não, o padrão é 2 minutos e 5 segundos
Propriedades de um UserManager
Nome | Descrição | tipo |
---|---|---|
o email do client | string | |
token | o token do client | string |
id | o id do client | string |
username | o username do client | string |
features | as features do client | array |
tabcoins | a quantidade de tabcoins do client | number |
tabcash | a quantidade de tabcash do client | number |
created_at | quando que o client foi criado | Date |
updated_at | ultima vez que o client foi modificado | Date |
StatusManager
Um StatusManager, é responsavel por gerenciar o status do tabnews Através dele você vai obter o status do tabnews.
Método get
o método get obtém o status do tabnews. Esse método retorna uma Promise contendo um Status
Um Watcher, é uma classe que assiste por mudanças um Conteúdo/Usuário. Todos os Watchers são iguais, a única coisa que muda é o que ele assiste. Eventos do watcher: watcherUpdate
Métodos de um watcher
Método start
o método start inicia o watcher, e faz ele começar a assistir o Conteúdo/usuário.
Método destroy
o método destroy destrói o Watcher, ou seja, para de assistir ao Conteúdo/usuário. Você pode iniciar novamente o watcher pelo método start.
Tipos de informação
UserData
Propriedades
Nome | Descrição | tipo |
---|---|---|
id | o id de um usuário | string |
username | o username de um usuário | string |
features | as features de um usuário | array |
tabcoins | a quantidade de tabcoins de um usuário | number |
tabcash | a quantidade de tabcash de um usuário | number |
created_at | quando que o usuário foi criado | Date |
updated_at | ultima vez que o usuário foi modificado | Date |
ClientUserData
Propriedades
Nome | Descrição | tipo |
---|---|---|
o email do client | string | |
token | o token do client | string |
id | o id do client | string |
username | o username do client | string |
features | as features do client | array |
tabcoins | a quantidade de tabcoins do client | number |
tabcash | a quantidade de tabcash do client | number |
created_at | quando que o client foi criado | Date |
updated_at | ultima vez que o client foi modificado | Date |
Content
Propriedades
Nome | Descrição | tipo |
---|---|---|
id | o id do conteúdo | string |
parent_id | o id do conteúdo root | string |
slug | o slug do conteúdo | string |
title | o título do conteúdo | string |
body | o texto do conteúdo | string |
status | o status do conteúdo | string |
source_url | a fonte do conteúdo | string |
thumbnail | a thumbnail do conteúdo | string |
tabcoins | o número de tabcoins do conteúdo | number |
created_at | data da criação do conteúdo | Date |
published_at | data da postagem do conteúdo | Date |
updated_at | data de quando o conteúdo foi editado | Date |
deleted_at | data de quando o conteúdo foi deletado | Date |
is_children | se o conteúdo é uma resposta | boolean |
is_root | se o conteúdo é root | boolean |
has_children | se o conteúdo tem respostas | boolean |
owner | o criador do contéudo | Nome Descrição Tipo id O id do criador string username O username do criador string |
Métodos
Método fetchOwner
O método fetchOwner obtém o usuário criador do conteúdo. Retorna uma Promise contendo um UserData
Método fetchParent
O método fetchParent obtém o conteúdo root do conteúdo atual. Retorna uma Promise contendo um Content
Método fetchChildren
O método fetchChildren obtém as respostas do conteúdo atual. Retorna uma Promise contendo um Array de Content
Método edit
Este método edita o conteúdo, ele aceita 1 parâmetro obrigatório, sendo ele: |content|o que vai ser alterado| |--|--|
o pârametro content é um objeto, as propriedades desse objeto estão listadas abaixo: |Nome|Descrição|obrigatório|Efeito |--|--|--|--| |title|o título do conteúdo|não obrigatório|adiciona um título ao conteúdo| |body|o corpo do conteúdo, você pode usar markdown aqui nesse campo|não obrigatório|adiciona texto ao conteúdo| |sourceUrl|a url da fonte|não obrigatório|adiciona uma fonte ao conteúdo|
Esse método retorna uma Promise contendo um Content
Método delete
O método delete deleta o conteúdo. Esse método retorna uma Promise contendo um Content
Método upvote e downvote
os Métodos upvote e downvote não tem nenhum parâmetro. Esse método retorna uma Promise contendo um objeto parecido com isso: |Nome|Descrição| |--|--| |tabcoins|O numero de tabcoins que o contéudo ficou depois do upvote/downvote|
Aqui estão os eventos do tabnews.js, você pode escutar eles com:
<client ou watcher>.on("Nome do evento", (data) => {})
Ready
O evento ready é disparado quando o client faz login no tabnews, ele traz consigo um ClientUserData
<client>.on("ready", (clientUserData) => { console.log(clientUserData) })
Destroyed
O evento destroyed é disparado quando o client é destruído, ele traz consigo um ClientUserData
<client>.on("destroyed", (clientUserData) => { console.log(clientUserData) })
WatcherUpdate
o evento watcherUpdate é disparado quando um Watcher faz um update, ele traz consigo uma informação variada dependendo de o que você está assistindo.
<watcher>.on("watcherUpdate", (data) => { console.log(data) })
Problemas?
Caso você tenha um problema ou não entenda algo da documentação, não hesite em abrir uma issue ou entrar no discord do TabNews