@megamiun/loteria v1.0.4
Loteria SDK
O que é
Uma biblioteca para extração de dados de loteria do site da Caixa.
Como utilizar
Implementação Padrão
Para a configuração padrão, basta instanciar uma instância de GameFetcher por meio da função getFetcher().
Com esta você é capaz de pedir por meio da função fetch(game: Game) os detalhes sobre a modalidade desejada, após isso.
Exemplo:
val fetcher = getFetcher()
// Pega último jogo para a modalidade
val lastGameResult = fetcher.fetch(Game.QUINA)
// Pega um sorteio especifico para a modalidade
val hundrethGameResult = fetcher.fetch(Game.QUINA, 100)
// Pega um jogo não registrado no enum de Game
val otherGameResult = fetcher.fetch("supersete", 100)Configurações Avançadas
Para configuração avançada, é possível instanciar sua própria versão de um GameFetcher, para minimizar a configuração, há diversas funções para criação de objetos padrão.
Mesmo assim, caso desejado, é possível instanciar os itens manualmente chamando seus construtores. A relação das responsabilidades é:
- Extractor: Extrator do site da Caixa de informações sobre os jogos. Recebe tanto o Enum de
Gameou umaString, correspondente ao última parte do link do jogo no site da Caixa. Retorna umMap<String, Any>contendo todas as informações oferecidas pela Caixa do jogo.- Exemplos de Input:
- Quina:
Game.QUINAouquina - Mega-Sena:
Game.MEGA_SENAoumegasena
- Quina:
- Exemplos de Input:
- Converter: Conversores de
Map<String, Any>paraData, os dados do jogo esperado. Existe um para cada tipo de jogo. - GameFetcher: Classe central, que executa todo o fluxo de aquisição e conversão dos dados da Caixa.
Adição de Novos Conversores
Para adicionar um novo conversor, é possível buscar os conversores padrões em getDefaultConverters() e adicionar ao mapa os conversores desejados, relacionando como chave o nome do jogo, de acordo com como pesquisado no site da Caixa e uma nova instância do construtor.
Uma vez adicionado, esse mapa pode ser passado para getFetcher(converters: Map<String, Converter>) para adquirir o resultado desejado.
TODO
Possibilitar chamada sem criação de corroutines.