tabnews


Nametabnews JSON
Version 1.1.0 PyPI version JSON
download
home_pagehttps://github.com/Gustavosta/Tabnews.py
SummaryPython library for communication via API to the website: "TabNews.com.br"
upload_time2022-12-26 22:28:57
maintainer
docs_urlNone
authorGustavo Santana
requires_python>=3.7
licenseMIT
keywords api tabnews tabcoins
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <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"
}
        
Elapsed time: 0.03987s