Skip to content

danielmartins/underflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Underflow

License

GPLv3

Pesquisa no StackOverflow

Este projeto disponibiliza um comando CLI que coordena ações com o objetivo de realizar pesquisa no StackOverflow, possui 2 interfaces de uso:

  • Pesquisas por CLI
  • Pesquisas por Bot Telegram

Arquitetura do projeto

O Projeto está dividido hein:

  • API de Comunicação com StackOverflow
    • Executa pesquisa na API;
    • Executa paginação preemptiva
    • Captura token de autenticação com a API do Stack OverFlow (Para permitir maior quota de requisições)
  • CLI de interação com a API de Comunicação
    • Interage com a API interna de comunicação
    • Redireciona requisição de autenticação OAuth pro StackOverFlow, modo implicito.
  • Bot Server
    • Responde as solicitações de pessoas interagindo com o bot

Pré-requisitos

Antes de qualquer interação de pesquisa, você precisa iniciar a API de comunicação com o StackOverflow.

Portanto abra um novo terminal e execute:

$ underflow start-api

Pesquisas via CLI

É permitido o uso da CLI sem pre-requisitos de autenticação.

$ underflow ask "python + fastapi"

Authenticação

Existe um limite de requisições. Caso necessite de autenticação, será preciso que você se autentique e autorize este aplicativo a realizar pesquisas.

Para viabilizar essa autenticação é necessário algumas informações sensíveis que podem ser obtidas com o author deste projeto. De posse dessas informações, coloque as informações como variaveis de ambiente e siga os passos.

Após inserir, você pode executar o comando de autenticação:

$ underflow authenticate

O comando abrirá o Google Chrome, redirecionando você para mecanismo de autenticação e autorização do StackOverflow, uma vez autorizado, você será redirecionado para uma página localhost para que a API interna possa capturar o token e salvar em memória. Após isso pode continuar realizando as consultas.

Telegram BOT

O nome do bot no Telegram é UnderflowBot. Para responder as solicitações oriundas do bot, você precisa de algumas informações secretas de integração, solicitar para o author. De posse dessa informações, voce exporta para variaveis de ambiente e executar o comando abaixo para responder as solicitações.

$ underflow bot-server

Desenvolvimento

Projeto foi desenvolvido principalemente com poetry + fastapi + typer + pytest, as demais dependências são utilitários.

Instalaçao de dependências

$ poetry install

Testes

$ poetry run pytest

Possível Roadmap Futuro

  • Desenvolvedor botserver em arquitetura serverless(aws lambda)
  • Implementar autenticação entre as camadas
  • Implementar controle de background e foreground
  • Implementar respostas interativas para o bot do Telegram

About

StackOverflow CLI and Bot Asker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages