Skip to content

AllvesMatteus/GupyAlert

Repository files navigation

Gupy Alert

Python Version Gupy API

License: MIT

Gupy Alert

Assistente de busca que notifica novas oportunidades de emprego da Gupy no seu Telegram, ajudando você a encontrar a vaga ideal com filtros personalizados e alertas automáticos.


📸 Sobre o Projeto

Buscar vagas de emprego diariamente é um processo exaustivo. O Gupy Alert resolve isso automatizando a consulta de oportunidades de forma leve e rápida, entregando os resultados diretamente no seu celular.

Diferenciais:

  • 🖥️ Interface gráfica moderna, limpa e responsiva.
  • 🎨 Design System macOS Premium: Layout elegante com transições suaves, inspirado no macOS (com suporte a modos claro e escuro).
  • 🔍 Filtros personalizados por palavras-chave, estado, modelo e tipo de vaga.
  • 📋 Múltiplas buscas configuráveis ao mesmo tempo para diferentes tipos de cargos.
  • 🔔 Notificações no Telegram com detalhes da vaga e link direto para se candidatar.
  • Busca programada com intervalo de tempo definido por você.
  • 🔒 Sem repetições: Sistema inteligente que garante que você só receba cada vaga uma única vez.
  • 📦 Pronto para usar: Pode ser empacotado em executáveis nativos (.app no macOS e .exe no Windows) sem necessidade de instalar interpretadores externamente.

📁 Estrutura do Projeto

GupyAlert/
├── main.py              # Ponto de entrada da aplicação
├── GupyAlert.spec       # Configuração do PyInstaller
├── Iniciar App.bat      # Atalho para rodar no Windows
├── Iniciar App.command  # Atalho para rodar no macOS
├── build.py             # Script de compilação automatizada
├── compilar.bat         # Script para compilação em 1 clique no Windows
├── compilar.sh          # Script para compilação em 1 clique no macOS/Linux
├── requirements.txt     # Dependências Python
├── src/                 # Código fonte da aplicação
│   ├── constants.py     # Opções e filtros estáticos
│   ├── core.py          # Lógica do buscador Gupy
│   ├── server.py        # Servidor Flask e stream de logs
│   ├── tray.py          # Bandeja do sistema (pystray)
│   ├── utils.py         # Auxiliares
│   ├── static/          # CSS e JavaScript da interface (incluindo logo)
│   └── templates/       # HTML da interface (index.html com favicon)
├── .gitignore
├── LICENSE
└── README.md

Arquivos gerados em runtime (não versionados):

  • config.json — suas configurações e buscas salvas (salvo no appdata local)
  • vagas_gupy.db — banco de dados anti-spam (salvo no appdata local)

🛠️ Refatoração & Arquitetura Clean (v2.0)

Realizamos uma auditoria e refatoração profunda no código-fonte para maior manutenibilidade:

  • Remoção de Dead Code: Limpeza de constantes antigas de estilização Tkinter (WHITE, BLACK, GRAY_X, FONT) que haviam sobrado da versão legada.
  • Otimização de Imports: Remoção de módulos importados desnecessariamente (sys, urllib.error), reduzindo o tempo de boot do servidor.
  • Resolução de Path de Assets: O ícone do navegador (favicon) e a imagem da barra lateral foram configurados com caminhos estáticos diretos (/static/logo.png), corrigindo bugs de renderização e resolvendo problemas com a sobreposição de alt-text quebrado no frontend.

🚀 Como Executar

Opção 1 — Executáveis Nativos (Sem Python instalado)

  1. Acesse os downloads disponíveis na aba de Releases do repositório no GitHub ou compile-o localmente (ver seção Empacotamento).
  2. Dê dois cliques no executável:
    • No Windows: GupyAlert.exe
    • No macOS: GupyAlert.app

Opção 2 — Pelo Atalho Automático (Desenvolvedor)

  • No Windows: Dê dois cliques no arquivo Iniciar App.bat.
  • No macOS: Dê dois cliques no arquivo Iniciar App.command.

⚙️ Configuração Inicial

Passo 1 — Criar o Bot no Telegram

  1. Abra o Telegram e busque por @BotFather
  2. Envie /newbot e siga as instruções
  3. Copie o Token recebido (ex: 7123456789:AAF...)

Passo 2 — Obter o Chat ID do seu grupo

  1. Crie um grupo no Telegram e adicione seu bot como administrador
  2. Adicione o bot @userinfobot temporariamente ao grupo — ele mostrará o Chat ID (ex: -1001234567890)

Passo 3 — Configurar o App

  1. Abra o Gupy Alert
  2. Clique em ⚙️ Configurações na barra lateral
  3. Cole o Token e o Chat ID (por segurança, ambos campos ocultam seus caracteres por padrão; clique no ícone do olho 👁️ ao lado dos campos para exibir ou ocultar os valores)
  4. Ajuste o intervalo (de 5 a 240 minutos)
  5. Clique em 💾 Salvar Configurações

🔍 Criando Buscas

  1. Clique na aba 🔍 Buscas
  2. Clique em + Nova Busca
  3. Preencha o card:
Campo Descrição Exemplo
Nome Apelido para identificar a busca Dev Junior SP
Palavras-chave Cargos que quer buscar (um por linha) desenvolvedor junior
Estado Estado ou "Qualquer Estado" São Paulo
Modelo Remoto / Presencial / Híbrido / Todos Remoto
Tipo Efetivo / Estágio / Freelancer... Estágio

💡 Sem palavras-chave = busca todas as vagas do filtro. Você pode adicionar quantas buscas quiser.

  1. Suas alterações são salvas automaticamente em tempo real!

Exemplo de configuração completa:

Busca 1: "Dev Junior SP"    → "desenvolvedor junior" → São Paulo → Remoto → Efetivo
Busca 2: "Estágio TI"       → "estagio ti"           → Qualquer  → Todos  → Estágio
Busca 3: "Home Office Geral"→ (sem palavras)          → Qualquer  → Remoto → Todos

▶️ Rodando o Bot

Ação Como fazer
Busca manual Clique em ⚡ Buscar Agora (muda para Parar para interromper)
Automático Clique em ▶ Automático (muda para Parar quando ativo)
Ver logs Aba 📋 Log

🔔 Bandeja do Sistema

Ao fechar a janela (X), o app vai para a bandeja perto do relógio do Windows — não fecha.

Clique com o botão direito no ícone azul para:

  • Abrir a janela
  • Iniciar/Parar automático
  • Buscar agora
  • Sair completamente

💡 Para iniciar com o Windows: pressione Win + R, digite shell:startup e coloque um atalho para GupyAlert.exe nessa pasta.


📦 Como gerar o executável (Criar a pasta dist com os apps)

Se você deseja gerar a versão final distribuível (GupyAlert.app no macOS ou GupyAlert.exe no Windows) a partir do código fonte, incluímos scripts automatizados de um clique:

No Windows:

  1. Certifique-se de ter o Python instalado no computador.
  2. Dê dois cliques no arquivo compilar.bat localizado na pasta raiz do projeto.
  3. O script irá configurar tudo sozinho: instalará as dependências, executará a compilação e criará a pasta dist contendo o executável .exe pronto para uso.

No macOS / Linux:

  1. Certifique-se de ter o Python instalado.
  2. Execute o arquivo compilar.sh na pasta raiz do projeto.
  3. O app .app final será criado e colocado na pasta dist.

💡 Compilação Automática via GitHub: Se você enviar este código para o seu repositório no GitHub, o fluxo de Actions configurado compilará os executáveis automaticamente e os disponibilizará nos artefatos da aba Actions.


🔧 Como Adaptar

Para adicionar novos estados ou tipos de vaga, edite os dicionários no topo de src/constants.py:

ESTADOS_BR = ["Qualquer Estado", "São Paulo", "Rio de Janeiro", ...]
TIPOS_OPCOES = {"Todos": "", "Efetivo": "vacancy_type_effective", ...}
MODELOS_OPCOES = {"Todos": "", "Remoto": "remote", ...}

📄 Licença

MIT — veja LICENSE para detalhes.

About

Monitor de vagas da Gupy com alertas em tempo real no Telegram. Permite criar múltiplos filtros personalizados por palavras-chave, modelo de trabalho (remoto, híbrido, presencial), tipo de vaga e estados.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors