Skip to content

GiftPilot v3.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Oct 16:56
· 3 commits to main since this release
272b4df

Nova identidade: o projeto passa a se chamar GiftPilot. As configurações salvas são mantidas.

Adicionado

  • Nome, logotipo, ícones e paleta próprios (assets/brand/, assets/icons/).
  • Painel flutuante em shadow root fechado com pontos, nível, botão do piloto automático, status, avisos e notificações (js/content/panel.js).
  • Piloto automático com fila sequencial e cancelável (o botão vira "Parar"), retomada após o recarregamento do modo "repetir a cada N horas" e espera com recuo em erros de rede.
  • Tratamento de sorteios com descrição obrigatória: o site trava o botão de entrada (is-locked) até a descrição ser aberta. O piloto abre a descrição nativa, espera um tempo de leitura proporcional ao texto e só depois entra; o segundo plano faz o mesmo com do=giveaway_description.
  • Ponte de requisições: com uma aba do SteamGifts aberta, o service worker executa as requisições dentro dela e espelha pontos e linhas na aba.
  • Tema escuro gerado a partir do CSS oficial do site (scripts/build-site-dark.mjs → css/site/dark.css, ajustes em css/site/dark.overrides.css).
  • Clique no ícone da extensão abre as configurações.
  • Campos de configuração que existiam sem controle na tela: ignorar whitelist em segundo plano, tempo máximo restante (em horas) e prioridade por nível.
  • Links do site, de issues e do changelog na página de configurações.
  • Testes de seleção do piloto automático (tests/autojoin-plan.test.js) e novas verificações anti-detecção.
  • Site no GitHub Pages, FUNDING.yml, rotulagem automática de PRs, formulários de issue e AGENTS.md para agentes de IA.

Alterado

  • Estrutura de pastas: js/{background,content,core,offscreen,options}, css/{site,options,vendor}, assets/; documentos da comunidade em .github/.
  • Parser de sorteios reescrito para o HTML atual (links relativos sem barra final, ?utm_source, cópias e custo por expressão regular, nível pelo title decimal) e compartilhado entre página e documento offscreen.
  • Uma única rolagem infinita (js/content/infinite-scroll.js); as páginas carregadas recebem botões, filtros e chance de vitória.
  • Entradas seguem o formato do bundle ativo do site: FormData multipart no bundle-v18 e jQuery urlencoded no bundle-v19.
  • Tema escuro e barra fixa aplicados pelo service worker com chrome.scripting.insertCSS, sem classe no <body> e sem flash branco.
  • Cache de dados da Steam com validade; DLC e cartas via appdetails; comentários enviados como formulário comum.
  • Globais internos renomeados de AutoJoin* para GiftPilot*. As chaves de configuração não mudaram.
  • README, guia de contribuição, política de segurança, TO-DO.md e este changelog reescritos e padronizados.
  • Workflows do GitHub revisados: CI sem a branch inexistente develop, release com o nome novo, Dependabot com grupos e rótulos coerentes.

Removido

  • web_accessible_resources (permitiam sondar a extensão a partir da página).
  • Script do aviso de suspensão, escritas no localStorage da página e alteração de <html lang>.
  • Módulo legado js/core/giveaway.js, css/general.css, IMPROVEMENTS.md e links para a extensão original na página de configurações.

Corrigido

  • Resgate automático de chaves: res.json() sem await, winner_id enviado como o texto literal 'winnerId' e sessão da Steam ausente.
  • Busca de /giveaways/won sem cookies; vitórias agora detectadas também pelo contador de ganhos.
  • PointsToPreserve, MaxTimeLeftBG e MinLevelBG ignorados em segundo plano; service worker mantido ativo durante a rotina.
  • Configurações: listener de restauração duplicado, comparação this.value === 0 que nunca era verdadeira e campo "repetir a cada" gravado na chave errada (hoursField em vez de RepeatHours).
  • Notificações da página de configurações, que não carregava o módulo de avisos.

Segurança

  • Canário do bundle-v19.js neutralizado: o site reporta a conta (ajax.php, do=jh8Dn) ao encontrar qualquer um de input#btnAutoJoin, #btnSettings com o texto "AutoJoin Settings", #ajFooter, #navbarPin ou #ajFooterArrow. Nenhum desses marcadores existe mais na página.

Instalação: baixe o .zip, extraia, abra chrome://extensions, ative o modo do desenvolvedor e use Carregar sem compactação.