CLI to CPTM and Metro lines status
Project description
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:
- O parser recebe os argumentos e flags da linha de comando;
- Uma requisição
GET
é enviada à página do serviço a ser consultado; - O conteúdo
HTML
é analisado, quebrado a partir da estrutura e filtrado; - os trechos de interesse do conteúdo (as
divs
/.class
que guardam os nomes das linhas e seus respectivo status) são retidos; - 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.