Skip to main content

TabNews.py

Python OS
Uma biblioteca massinha para um lugar massinha :)

Sobre • Instalação • Exemplos • Contribuir • Licença

💻 Sobre o projeto

Essa é uma biblioteca Python para consumir a API do Tabnews. Ela tem o proposito de facilitar e optimizar a integração de aplicações Python com o site do TabNews;

📩 Como baixar a biblioteca?

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

🔨 Exemplos de uso

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:


Welcome

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.


Welcome

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:


Welcome

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:


Welcome

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:


Welcome

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:


Welcome

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'
)

💛 Quer contribuir

Caso queira contribuir, você pode criar uma issue documentando as alterações sugeridas antes de criar um pull request, linkar o PR à issue, preferencialmente utilizar nomes de branch com o seguinte padrao:

/<tipo de alteração>-<descrição da issue>

EX: 001/Hotfix-correcao-tabela-principal

Utilizar os tipos [Feature|Hotfix|Update]

Qualquer duvida ou sugestão, sinta-se a vontade para abrir uma nova issue, assim temos espaço para discutir as alterações/duvidas.

📜 Licença

MIT License

Metadata

Release files for tabnews 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tabnews 1.2.0
File Size Uploaded Provenance Actions
tabnews-1.2.0.tar.gz 11.9 kB Without provenance Details for tabnews-1.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for tabnews 1.2.0
File Interpreter ABI Platform Actions
tabnews-1.2.0-py3-none-any.whl Python 3 none any Details for tabnews-1.2.0-py3-none-any.whl

Total release size: 24.7 kB

Release files / tabnews-1.2.0.tar.gz

Download URL tabnews-1.2.0.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d9730ec9624ec5554e42a0d593b3492e0b13572d669f7df288ea0a22b433b0c1
BLAKE2b-256 checksum
How to use checksums
dab745b1f064035b542ac12f78a754c199bf20b6d04fc5357c7e168a04bb33b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.1

Release files / tabnews-1.2.0-py3-none-any.whl

Download URL tabnews-1.2.0-py3-none-any.whl
Size 12.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
323f35d0ef61667f3f0a631e832cfe6dffb4069b5bb68676ee2ddb91d7ba0d6b
BLAKE2b-256 checksum
How to use checksums
6f49742d632f2267d757fb3640287eded1ee19e01f6e32e37874eb298b9b7f84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.1

Security for tabnews 1.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page