CLI to CPTM and Metro lines status


Keywords
cli, cptm, metro, python3, scraper
License
CC0-1.0
Install
pip install tpsp==1.0.1

Documentation

Code Checks Code Quality PyPI Downloads GitHub tag

TPSP: Transporte Público de São Paulo

tpsp (acrônimo para "Transporte Público de São Paulo") é uma pequena aplicação escrita em Python cujo objetivo é exibir o estado atual das linhas da CPTM e Metro.

AVISO: Este projeto não possui relações com o Estado de São Paulo, a CPTM, o Metro ou qualquer outro órgão governamental.

Sumário

Requerimentos

  • Python (3.6.1 ou superior).

Dependências

Funcionamento

Não há, até a data de publicação desta aplicação, uma API pública para os serviços de trem e metrô do Estado de São Paulo. Os dados utilizados por esta aplicação são obtidos mediante web scraping das páginas online dos serviços.

O fluxo é relativamente simples:

  1. O parser recebe os argumentos e flags da linha de comando;
  2. Uma requisição GET é enviada à página do serviço a ser consultado;
  3. O conteúdo HTML é analisado, quebrado a partir da estrutura e filtrado;
  4. os trechos de interesse do conteúdo (as divs / .class que guardam os nomes das linhas e seus respectivo status) são retidos;
  5. Os dados das linhas são formatados e impressos na tela.

Cada resultado é filtrado e manipulado a partir das especificidades da construção da página web do serviço. Apesar de contraproducente, uma vez que mudanças na contrução das páginas podem (e vão) quebrar a funcionalidade, este foi o melhor approach encontrado.

Instalação

$ pip3 install tpsp

Uso

positional arguments:
  {cptm,metro}   the public transportation service

optional arguments:
  -h, --help     show this help message and exit
  -v, --version  show the program version and exit
  -j, --json     show the output in JSON format
  --copyright    show the copyright information and exit

examples:
    $ tpsp cptm
    # => shows the current state of all CPTM lines

    $ tpsp metro --json
    # => shows the current state of all Metro lines and formats
         the output in JSON

Licença

Na medida do possível sob a lei, Caian Rais Ertl renunciou a todos os direitos autorais e direitos relacionados ou adjacentes a este trabalho. No espírito da liberdade de informação, encorajo você a forkar, modificar, alterar, compartilhar ou fazer o que quiser com este projeto! ^ C ^ V

License