Pitch: TabNews.py - Uma biblioteca massinha para um lugar massinha! :)
Oi, olá! :)
Desde que o TabNews foi idealizado na playlist para membros do Filipinho, eu venho acompanhado o projeto do TabNews e confesso que desde que a primeira versão da home do site foi lançada, eu desenvolvi um apego muito delicinha com esse lugar, me ajudando em muitos aspectos, quanto as de outras pessoas.
E desde antes do projeto ser lançado, eu tive a ideia de criar uma biblioteca em Python para o TabNews. E vendo outras implementações da API do TabNews, como o: TabNews.js ou TabNews.ts, eu decidi que ia criar uma biblioteca pra Python, o TabNews.py.
A biblioteca foi feita para consumir a API do Tabnews. Ela tem o proposito de facilitar e optimizar a integração de aplicações Python para o site do TabNews. Então, vamos ver como ela funciona!
Para instalar localmente a biblioteca em seu computador, você pode usar o Pypi, com o comando:
pip install tabnews
Ou instalar via git:
pip install git+https://github.com/Gustavosta/TabNews.py
Aqui vamos ver alguns exemplos de uso de como você pode usar a biblioteca para facilitar a comunicação com a API do Tabnews:
➡️ Exemplo 1:
Esse é um caso de uso bem simples, para mostrar como a autenticação funciona:
from tabnews import Client
EMAIL = 'user@example.com'
PASSWORD = 'SenhaExtremamenteSegura'
client = Client(EMAIL, PASSWORD)
user = client.get_user()
print(f'Logged in as {user.username}')
➡️ Exemplo 2:
Esse é um exemplo de como fazer uma publicação via código.
from tabnews import Client
EMAIL = 'user@example.com'
PASSWORD = 'SenhaExtremamenteSegura'
client = Client(EMAIL, PASSWORD, use_preview_tabnews_host=True)
post = client.publish_post(
title='isso é um teste',
content='isso foi publicado com a biblioteca do Tabnews para Python :)',
reference='https://github.com/Gustavosta/TabNews.py'
)
print(post)
Repare que usei use_preview_tabnews_host=True
. Esse parâmetro serve para postar coisas diretamente no ambiente de homologação usando a URL do ambiente extraída via API no repositório oficial do Tabnews.
➡️ Exemplo 3:
Esse exemplo mostra como dar upvote em um post, passando como parâmetro o username
do usuário e o slug
ou parent_id
de um conteúdo:
from tabnews import Client
TOKEN = 'TokenOuCookieExtraidoAPartirDaAutenticacao'
client = Client(token=TOKEN, save_session=True)
upvote = client.upvote(
'filipedeschamps',
'tentando-construir-um-pedaco-de-internet-mais-massa'
)
print(upvote)
Note que dessa vez, eu usei o parâmetro token
no client
para autenticação, o que também é possível, mas não tão recomendado, já que tokens podem expirar e não durarem muito.
➡️ Exemplo 4:
Esse exemplo mostra como obter os dados de uma postagem e como comentar em uma postagem:
from tabnews import Client
EMAIL = 'user@example.com'
PASSWORD = 'SenhaExtremamenteSegura'
client = Client(EMAIL, PASSWORD, save_session=True, use_preview_tabnews_host=True)
post = client.get_post(
'sowlfie',
'isso-e-um-teste'
)
comment = client.publish_comment(
parent_id=post.id,
content='Teste de comentário'
)
print(comment)
Repare que usei o parâmetro save_session
, que a biblioteca usa para salvar as configurações de autenticação para a sessão e diminuir o tempo de autenticação (que por padrão é True
). Você também pode usar: config_path
para escolher o caminho de salvamento ou carregamento das configurações em formato json
.
➡️ Exemplo 5:
Esse exemplo mostra como editar uma postagem ou comentário:
from tabnews import Client
EMAIL = 'user@example.com'
PASSWORD = 'SenhaExtremamenteSegura'
client = Client(EMAIL, PASSWORD, use_preview_tabnews_host=True)
post = client.edit_post(
username='sowlfie',
slug='isso-e-um-teste',
title='Isso é um teste (título editado)',
content='isso foi publicado e editado com a biblioteca do Tabnews para Python :)',
reference='https://github.com/Gustavosta/TabNews.py'
)
comment = client.edit_comment(
comment_slug='f0777d39-055a-4e44-b3cf-dabf0e2176bb',
parent_id=post.id,
content='Esse é um comentário publicado e editado com a mesma lib'
)
➡️ Exemplo 6:
Esse exemplo mostra como deletar uma postagem ou comentário:
from tabnews import Client
EMAIL = 'user@example.com'
PASSWORD = 'SenhaExtremamenteSegura'
client = Client(EMAIL, PASSWORD, use_preview_tabnews_host=True)
post = client.delete_post(
slug='isso-e-um-teste'
)
comment = client.delete_comment(
comment_slug='f0777d39-055a-4e44-b3cf-dabf0e2176bb'
)
Muito obrigado por ler até aqui!!! :) ❤️ E caso queira, me ajudaria muito se você desse uma estrela no GitHub do projeto, ou se quiser contribuir com o projeto, fique a vontade para abrir um PR ou abrir uma issue com alguma sugestão ou problema que você tenha encontrado.
Trabalho incrível! Tanto a explicação, documentação e a implementação. Parabéns por tudo, dei minha estrelinha no GitHub, obrigado por tornar esse pedaço da internet mais deliçinha
[OFF] O que significa a tag Pitch que eu vejo em muitas publi dentro do tabnews???
Que implementação sensacional, desde a documentação (simulando janelas), até detalhes muito bons como usar a API do GitHub para pegar a URL de homologação! Muito muito bom!!
Parabens otimo conteudo e a estrutura da documentação e algo que me deixou de boca aberta pois preciso melhor e muito nesse ponto....
vou deixar aqui um projetinho meu que permite postar no Tabnews pelo CMD sem precisar baixar ABSOLUTAMENTE NADA: PROJETO TabPost
em seguida vou mostrar como os maias e incas postavam via python antes da sua biblioteca: PROJETO TabFast
Sensacional, não sei dizer o que mais me prendeu aqui nessa publicação, se foi o excelente conteúdo ou os minutos que eu investi tentando entender essa moldura like Mac OS em volta do código. kkkk
Parabéns e obrigado, lengo.