CLI to CPTM and Metro lines status
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
tpsp
.gitignore
Dockerfile
LICENSE
Pipfile
Pipfile.lock
README.md
setup.py
tpsp.gif

README.md

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.4 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