Auto swipe com filtro por palavras-chave, controle de intervalo e painel visual.
Script de automação para Tinder que realiza likes e dislikes automáticos com base em filtros configuráveis: palavras proibidas, altura e limite de likes. Inclui painel de controle visual arrastável, internacionalização (PT/EN), sistema de logs e persistência de configurações. Diversos problemas conhecidos foram corrigidos em versões recentes (contadores, persistência de pausa, extração de dados e adaptação ao layout).
Baseado no script do @srmura, com adição de filtro por altura, limitador de likes, desbloqueio de fotos em “Likes”, extração robusta de dados do perfil, painel redesenhado e sistema de logs detalhado.
Referência original: Auto Like for Tinder (Greasy Fork)
https://tinder.com/* (recs, matches, likes-you, gold-home, etc.).lastExtractedInfo, lastAboutMeText) para reaplicar idioma.(Em versões recentes foram corrigidos, entre outros: contadores com valores/traduções corretos, persistência do estado de pausa, reaplicação de idioma sem re-extrair dados do DOM e comportamento ao atingir o limite de likes.)
autoswipe.js (IIFE)
│
├── Estado e configuração
│ Variáveis: interval, profileOpenWait, forbiddenWords, likesCount, dislikesCount,
│ isPaused, heightFilter*, likesLimit*, unblurLikesEnabled, lastDislike*, currentProfile*,
│ lastExtractedInfo, lastAboutMeText, uiLang. Carregamento/gravação em localStorage.
│
├── Internacionalização (i18n)
│ ├── T (objeto de traduções pt/en)
│ ├── t(key) — texto traduzido
│ ├── formatT(key, ...values) — placeholder {0},{1},...
│ ├── updateLangButtonLabel() — botão PT/EN
│ └── applyLanguage() — reaplica textos no painel (contadores, card, perfil, popup)
│
├── UI do painel
│ ├── createToggle(initialChecked) — toggle reutilizável (slide)
│ ├── createSlider(...) — slider com label e persistência
│ ├── createInfoRow(labelKey, value) — linha label: valor no bloco de informações
│ └── Elementos: container arrastável, contadores, inputs, sliders, toggles, card último dislike
│
├── Extração de dados do perfil
│ ├── extractProfileInfo() — distância, altura, profissão, pronomes, idiomas (SVG + fallbacks)
│ ├── extractNameAndAge() — nome e idade do contexto atual (card ou perfil)
│ ├── extractNameAndAgeFromOpenProfile() — nome/idade do perfil aberto (antes de dislike)
│ ├── getCurrentProfileNameAndAge() — wrapper com fallback "Não disponível"
│ └── findProfileInfo() — texto "Sobre mim"
│
├── Filtro de altura
│ ├── convertHeightToCm(heightString) — "1,70 m", "188 cm" → cm
│ └── checkHeightFilter(profileHeight) — retorna { shouldDislike, reason }
│
├── Atualização do painel
│ ├── updateLikeCounter() — contador de likes (com formato limite X/Y e cores)
│ ├── updateDislikeCounter() — contador de dislikes
│ ├── updateProfileInfo(text) — bloco de informações + "Sobre mim"
│ ├── updateNameAge() — nome e idade no topo da coluna direita
│ └── updateLastDislikeCard() — card "Último dislike" (motivo, nome, idade, tempo)
│
├── Popup e botões do DOM
│ ├── showLimitReachedPopup() — modal "Limite de likes atingido"
│ ├── findLikeButton()
│ ├── findDislikeButton()
│ └── findProfileButton() — botão que abre o perfil
│
├── Fluxo principal
│ ├── autoAction() — abre perfil → extrai dados → palavras proibidas → altura → like/dislike; respeita limite e pausa
│ ├── unblurLikesCards() — desbloqueia fotos em /app/likes-you e /app/gold-home (API teasers)
│ └── main() — inicializa painel, chama unblurLikesCards se ativo, loop setInterval(autoAction, interval)
│
└── Inicialização
main() chamado ao carregar o script.
O script foi ampliado a partir da base do @srmura (filtros, painel, i18n, unblur, etc.). Não há garantia de manutenção contínua devido a mudanças frequentes no Tinder.
Contribuições são bem-vindas para:
Para desenvolvedores: o código está comentado, usa logs detalhados e fallbacks para maior resiliência.
Aviso: Uso por sua conta e risco. Automatizar ações em plataformas de terceiros pode violar os Termos de Serviço do Tinder.