New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cria worker para converter arquivos PDF para TXT #119
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Eu curti bastante as abordagens utilizadas, mas tenho 1 ponto, que foi o mesmo que levantei no twitter:
Não acho mta lógica em utilizar uma API para converter PDF para txt, existem formas gratuitas bem mais rapidas para isso, como ghostscript, é possível instalá-lo no docker da aplicação e utilizá-lo sem problemas, uma vez que tenha os PDFs baixados basta você rodar o comando do link acima com um System.cmd()
que rapidinho um txt é baixado onde vc especificar, sem rate limit.
Com isso, fica até mais fácil de testar com os asserts e tals 😃
Caso tenha dificuldades, podemos marcar um pair para fazer essa implementação <3
apps/cotacoes_etl/lib/cotacoes_etl/workers/pesagro/cotacao_converter.ex
Outdated
Show resolved
Hide resolved
@Cyytrus Primeiramente, muito obrigada pelo comentário! Você realmente me salvou! Eu fiquei procurando e pesquisando formas de converter um PDF pra TXT e não achei nada sobre ghostscript. Como são muitos arquivos, vou extrair essa lógica pra um outro worker, porque esse |
…o feat/cotacao-converter * 'main' of github.com:peapescarte/pescarte-plataforma: chore: increment asdf documentation (#117)
9411968
to
630e8fe
Compare
…rte-plataforma into feat/cotacao-converter * 'feat/cotacao-converter' of github.com:peapescarte/pescarte-plataforma:
630e8fe
to
055a6aa
Compare
* main: Cria worker para converter arquivos PDF para TXT (#119)
* main: (35 commits) divide Dockerfile em prod e dev stages e atualiza doc Criando estrutura inicial para app catalogo (#120) Feat/radio component (#121) Melhora o ambiente de desenvolvimento com Docker (#123) resolve testes do contexto de cotacao Melhora estrutura para importação de cotações da Pesagro (#122) Cria worker para converter arquivos PDF para TXT (#119) chore: increment asdf documentation (#117) Adiciona integração com API da Zamzar para conversão de PDF para TXT (#118) Cria app CotacoesETL e buscador de novas cotações na Pesagro (#113) Implementa handler e repository para app cotacoes (#114) Cria modelos para APP de Cotações (#111) adiciona app de cotacoes (#110) Feat/textarea component (#109) Bug/correcoes layout (#108) Bug/correcoes layout (#84) adiciona mutation para adicionar tags a uma midia (#107) adiciona o app seeder no Dockerfile adiciona secret key base para api corrige strings para atomos na release ...
Descrição
Esta PR implementa a segunda parte do script de importação de cotações de pescado do site da Pesagro. Nesta parte do fluxo, um novo worker foi implementado, para vasculhar a tabela
cotacao
em busca de cotações (links) que ainda não foram baixadas.Após baixar cada arquivo, uma verificação deve ser feita, pois alguns links da Pesagro são um conjunto de PDFs num arquivo
zip
, que devem ser extraídos.Com todos os PDFs extraídos, deve-se então fazer upload na API da Zamzar de cada um dos PDFs extraídos, os convertendo para TXT. Não podemos ultrapassar o rate limit da API deles (5 requests por segundo).
Tendo o arquivo convertido, é preciso baixá-lo para que o último worker possa ser iniciado para fazer a ingestão (parsing) dos dados de cada pescado.
O script original pode ser encontrado no repositório
cotacoes-api
: https://github.com/peapescarte/cotacao-api/blob/feat-etl-module/etl/crawler.pyPontos para atenção
cotacoes
no banco que ainda não foram baixadasPossui novas configurações?
mox
FETCH_PESAGRO_COTACOES
, um booleano para controlar se os workers devem ser iniciados com a aplicação ou nãoPossui migrations?
N/A