Executando verificação de segurança...
25

Tabnews.js - Uma biblioteca javascript para interagir com a API do tabnews

Eu criei um modulo do npm para interagir com a API do Tabnews.
Pra você instalar ele é bem simples:

npm install tabnews.js

Detalhe: ele só funciona com ESM

pra você utilizar ele é bem simples, vou deixar alguns exemplos aqui:

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)

Se você quiser publicar um conteudo:

client.login({...}).then((user) => {
    console.log(`Logado na conta ${user.username} com o token ${user.token}`)
    client.contents.post({
        title: "Olá, mundo!",
        body: "esse é o conteúdo do content."
    }).then(content => console.log(content) ).catch(...)
}).catch(console.error)

Também tem como editar e deletar conteudos.
Você quer dar upvote(tabcoins) num conteudo? sem problemas, apenas rode essa linha:

client.contents.upvote("filipedeschamps", "tentando-construir-um-pedaco-de-internet-mais-massa").then((result) => console.log(result.tabcoins) ).catch(...)

Ou então, quer obter o status do tabnews?

client.status.get().then(status => console.log(status) ).catch(...)

Tem muito mais coisa, mas vou deixar pra depois...

Documentação

a documentação dele não ta completa no github mas se você quiser ver ela está em https://github.com/33gustavo33/tabnews.js
a documentação no vscode entretanto, está perfeita(pelo menos nos meus testes). então você vai ter o autocomplete no vscode(ou qualquer outra IDE que você utilizar, eu espero.)

Bugs

Como este é o meu primeiro modulo do npm, eu acho provavel que vai ter muitos bugs, então se você encontrar um bug, avise.

5

Sensacional meu caro, meus sinceros parabéns!!! Fico especialmente mais feliz que este é o seu primeiro módulo no npm, pois lembro até hoje como foi legal a minha experiência em fazer o meu primeiro módulo 🤝

Em paralelo, notei esse comentário:

//ou então você pode logar direto pelo token, porém o token fica inválido depois de algum tempo.

Quando você fala em token, você fala session_id? Vários endpoints ao serem acessados renovam a sessão, por exemplo o /contents. Então isto deveria sempre empurrar a data de expiração da sessão para frente.

De qualquer forma, esse não é um comportamento muito bom, pois dificulta deixarmos os endpoints realmente genéricos para serem cacheados na CDN. Então mais para frente possívelmente para renovar a sessão teremos que nos concentrar em um único endpoint, como por exemplo o /user.

3