tabnews.js
v1.1.0
Published
Uma biblioteca javascript para interagir com a API do tabnews
Downloads
0
Readme
Uma biblioteca javascript feita para interagir com a API do Tabnews
Instalação
npm install tabnews.js
yarn add tabnews.jsExemplo de uso
import { Client } from "tabnews.js"
const client = new Client()
client.login({
email: "[email protected]",
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 |--|--|--| |email|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 |--|--|--| |email|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
