Murillo Rodrigues Santos Pereira
RA: 2400338
Projeto Final de RPA
Escolha de API e justificativa: A API escolhida para o projeto foi a Chuck
Norris API, selecionada com o objetivo de tornar a aplicação mais leve e divertida.
Além de proporcionar um toque de humor, a escolha também foi uma forma de
relembrar a popularidade que Chuck Norris teve na internet em anos anteriores,
quando suas piadas e memes eram amplamente compartilhados.
Passo a passo:
● O primeiro passo do projeto consistiu na importação e instalação das
bibliotecas necessárias para sua execução. As bibliotecas utilizadas foram:
requests para realizar requisições HTTP, sqlite3 para o gerenciamento do
banco de dados local, re para operações com expressões regulares, datetime
para manipulação de datas, smtplib e email para o envio de e-mails via
protocolo SMTP, além da função GoogleTranslator, pertencente à biblioteca
deep_translator, responsável pela tradução automática dos textos.
● Foram definidas quatro categorias de piadas a serem extraídas da Chuck
Norris API, com o objetivo de organizar e diversificar o conteúdo coletado. As
categorias selecionadas foram: animal, dev (desenvolvimento), carreira e
música, todas disponibilizadas pela própria API para facilitar a segmentação
das piadas.
● Para o armazenamento local dos dados, foi estabelecida uma conexão com o
banco de dados SQLite, por meio da criação do arquivo projeto_rpa.db. Esse
banco foi utilizado para registrar tanto as piadas brutas obtidas da API quanto
os dados processados.
● Foram criadas duas tabelas no banco de dados SQLite para organizar e
estruturar as informações coletadas e processadas. A tabela jokes foi
responsável por armazenar todos os dados brutos retornados pela API,
incluindo a categoria original, data de criação, modificação, URL e o conteúdo
da piada. Já a tabela dados_processados foi criada para registrar os dados
tratados, como a tradução da piada e da categoria, a quantidade de palavras,
a informação sobre se a piada foi atualizada e sua idade, calculada em dias
desde sua criação.
● Função buscar_piadas(): Foi criada uma função responsável por se conectar
à API por meio de uma URL, utilizando uma das categorias previamente
definidas. Essa função realiza a requisição e retorna um conteúdo no formato
JSON contendo as informações brutas da piada, como o texto, a data de
criação, a data de modificação, a URL e a categoria.
● Função inserir_joke(): A função desenvolvida insere os dados originais
obtidos da API na tabela jokes do banco de dados e, após a inserção, retorna
o identificador único (id) gerado para o registro. Esse id é utilizado
posteriormente para relacionar as informações processadas com os dados
brutos armazenados.
● Função traduzir(): A função de tradução foi implementada para converter
textos automaticamente para o português brasileiro, utilizando o Google
Tradutor por meio da biblioteca deep_translator.
● Função processar_dados(): Essa função realiza um processamento mais
elaborado, integrando diversas etapas para tratar os dados coletados. Ela
traduz os campos category e content da tabela jokes para o português, conta
a quantidade de palavras do texto traduzido para avaliar o tamanho da piada,
calcula o tempo em dias desde a criação da piada e verifica se houve alguma
atualização no conteúdo. Por fim, todas essas informações são armazenadas
na tabela dados_processados, consolidando dados originais e processados
para facilitar consultas e análises futuras.
● Função executar_processo(): Essa função coordena o fluxo principal do
projeto, realizando a busca de uma piada na Chuck Norris API, salvando os
dados brutos obtidos na tabela jokes. Em seguida, esses dados são
processados, traduzidos para o português e armazenados na tabela
dados_processados.
● Função enviar_email(): A função responsável pelo envio do e-mail coleta as
quatro últimas piadas processadas no banco de dados e monta o corpo da
mensagem, incluindo tanto os dados traduzidos quanto os originais. Após a
montagem do conteúdo, o e-mail é enviado utilizando o protocolo SMTP do
Gmail.
● Execução: O script inicia a execução chamando a função
executar_processo(), que realiza a coleta e o processamento das piadas. Em
seguida, são definidos os dados de acesso necessários para o envio do
e-mail, como o remetente e a senha de aplicação. Por fim, a função
enviar_email() é chamada, recebendo esses dados como parâmetros para
realizar o envio automático da mensagem contendo as piadas processadas.
● Resultado esperado: O resultado esperado é a confirmação no terminal de
que as piadas buscadas foram armazenadas e o e-mail foi enviado.
Dificuldade e aprendizados: Durante o desenvolvimento deste projeto, foi
possível identificar e superar alguns desafios técnicos relevantes, que contribuíram
diretamente para o aprendizado prático. Um dos principais obstáculos envolveu o
uso da biblioteca de tradução, cuja estrutura exigiu atenção especial para garantir
que as traduções ocorressem de forma correta e sem erros. Além disso, a
integração com o serviço de envio de e-mails, utilizando o protocolo SMTP,
apresentou dificuldades relacionadas à autenticação, especialmente com provedores
como o Gmail, que requerem configurações específicas, como a ativação da
autenticação em duas etapas e o uso de senhas de aplicativo. Esses problemas
exigiram pesquisa e entendimento mais aprofundado sobre o funcionamento dessas
ferramentas e suas exigências de segurança. Como resultado, houve um
aprimoramento significativo na capacidade de lidar com APIs, bancos de dados
SQLite e processos de automação, fortalecendo a autonomia e a habilidade de
resolver problemas técnicos de forma eficiente.