<div align="center">
<img src="https://i.imgur.com/ir3vFwk.png" width=100px>
<br>
<h1>TabNews.py</h1>
![Python](https://img.shields.io/badge/python-v3.7+-blue.svg) ![OS](https://img.shields.io/badge/OS-linux%20%7C%20windows-blue??style=flat&logo=Linux&logoColor=b0c0c0&labelColor=363D44)
<br>
<i>Uma biblioteca massinha para um lugar massinha :)</i>
<br>
<p>
<a href="#about">Sobre</a> •
<a href="#install">Instalação</a> •
<a href="#examples">Exemplos</a> •
<a href="#contribute">Contribuir</a> •
<a href="#license">Licença</a>
</p>
</div>
<div id="about"><h2>💻 Sobre o projeto</h2></div>
Essa é uma biblioteca Python para consumir a API do [Tabnews](https://www.tabnews.com.br). Ela tem o proposito de facilitar e optimizar a integração de aplicações Python com o site do TabNews;
<div id="install"><h2>📩 Como baixar a biblioteca?</h2></div>
Para instalar localmente a biblioteca em seu computador, você pode usar o [Pypi](https://pypi.org/), com o comando:
```bash
pip install tabnews
```
Ou instalar via git:
```bash
pip install git+https://github.com/Gustavosta/TabNews.py
```
<div id="examples"><h2>🔨 Exemplos de uso</h2></div>
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:
<div align="flex">
<pre>
<br><p align="center"><a href="#"><img src="https://i.imgur.com/F7a7Drk.png" width=40px align="left"></a>Welcome<a href="#"><img src="https://i.imgur.com/RPheDpA.png" width=40px align="right"></a></p>
```python
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}')
```
</pre>
</div>
### ➡️ Exemplo 2:
Esse é um exemplo de como fazer uma publicação via código.
<div align="flex">
<pre>
<br><p align="center"><a href="#"><img src="https://i.imgur.com/F7a7Drk.png" width=40px align="left"></a>Welcome<a href="#"><img src="https://i.imgur.com/RPheDpA.png" width=40px align="right"></a></p>
```python
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)
```
</pre>
</div>
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](https://github.com/filipedeschamps/tabnews.com.bR).
### ➡️ 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:
<div align="flex">
<pre>
<br><p align="center"><a href="#"><img src="https://i.imgur.com/F7a7Drk.png" width=40px align="left"></a>Welcome<a href="#"><img src="https://i.imgur.com/RPheDpA.png" width=40px align="right"></a></p>
```python
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)
```
</pre>
</div>
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:
<div align="flex">
<pre>
<br><p align="center"><a href="#"><img src="https://i.imgur.com/F7a7Drk.png" width=40px align="left"></a>Welcome<a href="#"><img src="https://i.imgur.com/RPheDpA.png" width=40px align="right"></a></p>
```python
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)
```
</pre>
</div>
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:
<div align="flex">
<pre>
<br><p align="center"><a href="#"><img src="https://i.imgur.com/F7a7Drk.png" width=40px align="left"></a>Welcome<a href="#"><img src="https://i.imgur.com/RPheDpA.png" width=40px align="right"></a></p>
```python
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'
)
```
</pre>
</div>
### ➡️ Exemplo 6:
Esse exemplo mostra como deletar uma postagem ou comentário:
<div align="flex">
<pre>
<br><p align="center"><a href="#"><img src="https://i.imgur.com/F7a7Drk.png" width=40px align="left"></a>Welcome<a href="#"><img src="https://i.imgur.com/RPheDpA.png" width=40px align="right"></a></p>
```python
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'
)
```
</pre>
</div>
<div id="contribute"><h2>💛 Quer contribuir</h2></div>
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:
<numero da issue>/<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.
<div id="license"><h2>📜 Licença</h2></div>
[MIT License](/LICENSE)
Raw data
{
"_id": null,
"home_page": "https://github.com/Gustavosta/Tabnews.py",
"name": "tabnews",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "api,tabnews,tabcoins",
"author": "Gustavo Santana",
"author_email": "sowlfie@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/87/76/308d5e3918ca3102025b85abf9ff8a22f830a764a13620d932622360336c/tabnews-1.1.0.tar.gz",
"platform": null,
"description": "<div align=\"center\">\r\n<img src=\"https://i.imgur.com/ir3vFwk.png\" width=100px>\r\n<br>\r\n<h1>TabNews.py</h1>\r\n\r\n![Python](https://img.shields.io/badge/python-v3.7+-blue.svg) ![OS](https://img.shields.io/badge/OS-linux%20%7C%20windows-blue??style=flat&logo=Linux&logoColor=b0c0c0&labelColor=363D44)\r\n<br>\r\n<i>Uma biblioteca massinha para um lugar massinha :)</i>\r\n<br>\r\n<p>\r\n<a href=\"#about\">Sobre</a> \u2022\r\n<a href=\"#install\">Instala\u00e7\u00e3o</a> \u2022\r\n<a href=\"#examples\">Exemplos</a> \u2022\r\n<a href=\"#contribute\">Contribuir</a> \u2022\r\n<a href=\"#license\">Licen\u00e7a</a>\r\n</p>\r\n</div>\r\n\r\n<div id=\"about\"><h2>\ud83d\udcbb Sobre o projeto</h2></div>\r\n\r\nEssa \u00e9 uma biblioteca Python para consumir a API do [Tabnews](https://www.tabnews.com.br). Ela tem o proposito de facilitar e optimizar a integra\u00e7\u00e3o de aplica\u00e7\u00f5es Python com o site do TabNews;\r\n\r\n<div id=\"install\"><h2>\ud83d\udce9 Como baixar a biblioteca?</h2></div>\r\n\r\nPara instalar localmente a biblioteca em seu computador, voc\u00ea pode usar o [Pypi](https://pypi.org/), com o comando:\r\n\r\n```bash\r\npip install tabnews\r\n```\r\nOu instalar via git:\r\n\r\n```bash\r\npip install git+https://github.com/Gustavosta/TabNews.py\r\n```\r\n\r\n<div id=\"examples\"><h2>\ud83d\udd28 Exemplos de uso</h2></div>\r\n\r\nAqui vamos ver alguns exemplos de uso de como voc\u00ea pode usar a biblioteca para facilitar a comunica\u00e7\u00e3o com a API do Tabnews:\r\n\r\n### \u27a1\ufe0f Exemplo 1:\r\n\r\nEsse \u00e9 um caso de uso bem simples, para mostrar como a autentica\u00e7\u00e3o funciona:\r\n\r\n<div align=\"flex\">\r\n<pre>\r\n<br><p align=\"center\"><a href=\"#\"><img src=\"https://i.imgur.com/F7a7Drk.png\" width=40px align=\"left\"></a>Welcome<a href=\"#\"><img src=\"https://i.imgur.com/RPheDpA.png\" width=40px align=\"right\"></a></p>\r\n\r\n```python\r\nfrom tabnews import Client\r\n\r\nEMAIL = 'user@example.com'\r\nPASSWORD = 'SenhaExtremamenteSegura'\r\n\r\nclient = Client(EMAIL, PASSWORD)\r\nuser = client.get_user()\r\nprint(f'Logged in as {user.username}')\r\n```\r\n</pre>\r\n</div>\r\n\r\n### \u27a1\ufe0f Exemplo 2:\r\n\r\nEsse \u00e9 um exemplo de como fazer uma publica\u00e7\u00e3o via c\u00f3digo.\r\n\r\n<div align=\"flex\">\r\n<pre>\r\n<br><p align=\"center\"><a href=\"#\"><img src=\"https://i.imgur.com/F7a7Drk.png\" width=40px align=\"left\"></a>Welcome<a href=\"#\"><img src=\"https://i.imgur.com/RPheDpA.png\" width=40px align=\"right\"></a></p>\r\n\r\n```python\r\nfrom tabnews import Client\r\n\r\nEMAIL = 'user@example.com'\r\nPASSWORD = 'SenhaExtremamenteSegura'\r\nclient = Client(EMAIL, PASSWORD, use_preview_tabnews_host=True)\r\n\r\npost = client.publish_post(\r\n title='isso \u00e9 um teste',\r\n content='isso foi publicado com a biblioteca do Tabnews para Python :)',\r\n reference='https://github.com/Gustavosta/TabNews.py'\r\n)\r\n\r\nprint(post)\r\n```\r\n</pre>\r\n</div>\r\n\r\nRepare que usei `use_preview_tabnews_host=True`. Esse par\u00e2metro serve para postar coisas diretamente no ambiente de homologa\u00e7\u00e3o usando a URL do ambiente extra\u00edda via API no [reposit\u00f3rio oficial do Tabnews](https://github.com/filipedeschamps/tabnews.com.bR).\r\n\r\n\r\n### \u27a1\ufe0f Exemplo 3:\r\n\r\nEsse exemplo mostra como dar upvote em um post, passando como par\u00e2metro o `username` do usu\u00e1rio e o `slug` ou `parent_id` de um conte\u00fado:\r\n\r\n<div align=\"flex\">\r\n<pre>\r\n<br><p align=\"center\"><a href=\"#\"><img src=\"https://i.imgur.com/F7a7Drk.png\" width=40px align=\"left\"></a>Welcome<a href=\"#\"><img src=\"https://i.imgur.com/RPheDpA.png\" width=40px align=\"right\"></a></p>\r\n\r\n```python\r\nfrom tabnews import Client\r\n\r\nTOKEN = 'TokenOuCookieExtraidoAPartirDaAutenticacao'\r\nclient = Client(token=TOKEN, save_session=True)\r\nupvote = client.upvote(\r\n 'filipedeschamps', \r\n 'tentando-construir-um-pedaco-de-internet-mais-massa'\r\n)\r\n\r\nprint(upvote)\r\n```\r\n</pre>\r\n</div>\r\n\r\nNote que dessa vez, eu usei o par\u00e2metro `token` no `client` para autentica\u00e7\u00e3o, o que tamb\u00e9m \u00e9 poss\u00edvel, mas n\u00e3o t\u00e3o recomendado, j\u00e1 que tokens podem expirar e n\u00e3o durarem muito.\r\n\r\n### \u27a1\ufe0f Exemplo 4:\r\n\r\nEsse exemplo mostra como obter os dados de uma postagem e como comentar em uma postagem:\r\n\r\n<div align=\"flex\">\r\n<pre>\r\n<br><p align=\"center\"><a href=\"#\"><img src=\"https://i.imgur.com/F7a7Drk.png\" width=40px align=\"left\"></a>Welcome<a href=\"#\"><img src=\"https://i.imgur.com/RPheDpA.png\" width=40px align=\"right\"></a></p>\r\n\r\n```python\r\nfrom tabnews import Client\r\n\r\nEMAIL = 'user@example.com'\r\nPASSWORD = 'SenhaExtremamenteSegura'\r\nclient = Client(EMAIL, PASSWORD, save_session=True, use_preview_tabnews_host=True)\r\n\r\npost = client.get_post(\r\n 'sowlfie', \r\n 'isso-e-um-teste'\r\n)\r\ncomment = client.publish_comment(\r\n parent_id=post.id,\r\n content='Teste de coment\u00e1rio'\r\n)\r\n\r\nprint(comment)\r\n```\r\n</pre>\r\n</div>\r\n\r\nRepare que usei o par\u00e2metro `save_session`, que a biblioteca usa para salvar as configura\u00e7\u00f5es de autentica\u00e7\u00e3o para a sess\u00e3o e diminuir o tempo de autentica\u00e7\u00e3o (que por padr\u00e3o \u00e9 `True`). Voc\u00ea tamb\u00e9m pode usar: `config_path` para escolher o caminho de salvamento ou carregamento das configura\u00e7\u00f5es em formato `json`.\r\n\r\n### \u27a1\ufe0f Exemplo 5:\r\n\r\nEsse exemplo mostra como editar uma postagem ou coment\u00e1rio:\r\n\r\n<div align=\"flex\">\r\n<pre>\r\n<br><p align=\"center\"><a href=\"#\"><img src=\"https://i.imgur.com/F7a7Drk.png\" width=40px align=\"left\"></a>Welcome<a href=\"#\"><img src=\"https://i.imgur.com/RPheDpA.png\" width=40px align=\"right\"></a></p>\r\n\r\n\r\n```python\r\nfrom tabnews import Client\r\n\r\nEMAIL = 'user@example.com'\r\nPASSWORD = 'SenhaExtremamenteSegura'\r\nclient = Client(EMAIL, PASSWORD, use_preview_tabnews_host=True)\r\n\r\npost = client.edit_post(\r\n username='sowlfie', \r\n slug='isso-e-um-teste',\r\n title='Isso \u00e9 um teste (t\u00edtulo editado)',\r\n content='isso foi publicado e editado com a biblioteca do Tabnews para Python :)', \r\n reference='https://github.com/Gustavosta/TabNews.py'\r\n)\r\ncomment = client.edit_comment(\r\n comment_slug='f0777d39-055a-4e44-b3cf-dabf0e2176bb',\r\n parent_id=post.id,\r\n content='Esse \u00e9 um coment\u00e1rio publicado e editado com a mesma lib'\r\n)\r\n```\r\n</pre>\r\n</div>\r\n\r\n### \u27a1\ufe0f Exemplo 6:\r\n\r\nEsse exemplo mostra como deletar uma postagem ou coment\u00e1rio:\r\n\r\n<div align=\"flex\">\r\n<pre>\r\n<br><p align=\"center\"><a href=\"#\"><img src=\"https://i.imgur.com/F7a7Drk.png\" width=40px align=\"left\"></a>Welcome<a href=\"#\"><img src=\"https://i.imgur.com/RPheDpA.png\" width=40px align=\"right\"></a></p>\r\n\r\n\r\n```python\r\nfrom tabnews import Client\r\n\r\nEMAIL = 'user@example.com'\r\nPASSWORD = 'SenhaExtremamenteSegura'\r\nclient = Client(EMAIL, PASSWORD, use_preview_tabnews_host=True)\r\n\r\npost = client.delete_post(\r\n slug='isso-e-um-teste'\r\n)\r\ncomment = client.delete_comment(\r\n comment_slug='f0777d39-055a-4e44-b3cf-dabf0e2176bb'\r\n)\r\n```\r\n</pre>\r\n</div>\r\n\r\n<div id=\"contribute\"><h2>\ud83d\udc9b Quer contribuir</h2></div>\r\n\r\nCaso queira contribuir, voc\u00ea pode criar uma issue documentando as altera\u00e7\u00f5es sugeridas antes de criar um pull request, linkar o PR \u00e0 issue, preferencialmente utilizar nomes de branch com o seguinte padrao:\r\n\r\n<numero da issue>/<tipo de altera\u00e7\u00e3o>-<descri\u00e7\u00e3o da issue>\r\n\r\nEX: `001/Hotfix-correcao-tabela-principal`\r\n\r\nUtilizar os tipos [Feature|Hotfix|Update]\r\n\r\nQualquer duvida ou sugest\u00e3o, sinta-se a vontade para abrir uma nova issue, assim temos espa\u00e7o para discutir as altera\u00e7\u00f5es/duvidas.\r\n\r\n<div id=\"license\"><h2>\ud83d\udcdc Licen\u00e7a</h2></div>\r\n\r\n[MIT License](/LICENSE)\r\n\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python library for communication via API to the website: \"TabNews.com.br\"",
"version": "1.1.0",
"split_keywords": [
"api",
"tabnews",
"tabcoins"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "3185cd0d28ae446aef88585cd8d2ffcb",
"sha256": "df5dd99400561f67db0bd7b2f9bcaa8a4e1b0062baeca4561876398b215303e6"
},
"downloads": -1,
"filename": "tabnews-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "3185cd0d28ae446aef88585cd8d2ffcb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 11960,
"upload_time": "2022-12-26T22:28:57",
"upload_time_iso_8601": "2022-12-26T22:28:57.898063Z",
"url": "https://files.pythonhosted.org/packages/87/76/308d5e3918ca3102025b85abf9ff8a22f830a764a13620d932622360336c/tabnews-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-26 22:28:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "Gustavosta",
"github_project": "Tabnews.py",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "tabnews"
}