Pelando
Junte-se a nós no App e descubra as melhores promoções do Brasil
Baixar
WhatsApp Pelando
As promos mais insanas já vistas! Clique e receba no WhatsApp

Ops, nenhuma promoção por aqui.

marcus_matsutani_62b3 ainda não publicou promoções.

  • marcus_matsutani_62b3

    É muito cupom pra testar.. fiz um script no claude e funcionou até o 60 mais ou menos.. // Inserir cupons em lote no Mercado Livre // Uso: abra https://www.mercadolivre.com.br/cupons logado, aperte F12 aba Console, // cole este script inteiro e aperte Enter. // // Como a página muda depois de cada cupom aplicado, o script trabalha dentro de uma // "janela interna" (iframe) da mesma página. Assim ele não perde o controle quando // o site redireciona, e volta sozinho para a página de cupons antes do próximo. (async () = { const CUPONS = [...new Set(` MELICOMPRA MELISALVA MELIGARANTE MLVANTAGENS ECONOMIATOTAL COMPRACERTA MLMELHOROFERTA CUPOMLIBERADO DIADACRIANCA BARATINHO HOJETEMPROMO MELIDATADUPLA TODEBOA MIMODODIA BARRATINHOJA DESCONTOESPECIAL CUSTOUPOUQUINHO FOIBARATO PRECINHOPONTO SAIUBARATO TOCOUNOML MELHORCUPOMML MELINOVALE MELICOMPRAAI MELINOCARRINHO MLCUPOM MELICOMPRAS MELIDESCONTEI MELIMAXITOYS MELIATENTU MELIBRINQUEI EPISOL15 CACIFE12 MLCOMPRANDO CARRINHOCHEIOJA VALEMUITO DESCONTOJUSTO MLVANTAGEM BARRATINHOAQUI COMPRANOMELI BATEDESCONTO PRECINHOBOM DESCONTOBOM PEGANOMELI OFERTASMELI OFERTAAQUI APROVEITAESSA TUDOCERTONOML COMPRINHASML MELIBAIXOU PEGAMELI MEUMELI APROVEITAMUITO OPAECONOMIZEI SAINDOBARRATO BATEUPRONTOCUPOM INTERNACIONALNOMELI GARANTINOTOP ECONOMIALOCAL COMPRAESPERTA CUPONZINHO COMPRAML AGORAVAI SALVEIESSA TACOMVC MELHORESCUPONS ACHEIOFF VOLTAAQUI QUEROMAIS DESCONTOSML PAGUEMENOS CLIENTETOP MIMOTOP PEGUEIJA CHEGOUCUPOM LEVEAGORA QUEROJA VALEAGORA PEGUEISEU PRECINHO DESCONTEI ECONOMIZEI POUPAAGORA SOECONOMIA SAMSUNG15OFF SAMSUNG10OFF CELUCB SUPERPROMO CBELETRO `.toUpperCase().split(/[^A-Z0-9]+/).filter(Boolean))]; const URL_CUPONS = 'https://www.mercadolivre.com.br/cupons?source_page=int_breadcrumb'; const PAUSA_MS = 2000; // pausa entre um cupom e outro const TIMEOUT_MS = 12000; // tempo máximo esperando a resposta do site const sleep = ms = new Promise(r = setTimeout(r, ms)); const txt = el = (el?.textContent || '').trim(); // ---------- janela de trabalho (iframe; se o site bloquear, usa popup) ---------- let frame = document.getElementById('__cupons_frame'); if (!frame) { frame = document.createElement('iframe'); frame.id = '__cupons_frame'; Object.assign(frame.style, { position: 'fixed', inset: '5%', width: '90%', height: '90%', zIndex: 2147483647, background: '#fff', border: '3px solid #3483fa', borderRadius: '8px', boxShadow: '0 10px 40px rgba(0,0,0,.4)' }); document.body.appendChild(frame); } let popup = null; const win = () = popup || frame.contentWindow; const doc = () = { try { return win().document; } catch { return null; } }; // Espera um documento NOVO (diferente do antigo) terminar de carregar com o botão pronto const esperarPagina = async (docAntigo = null) = { for (let t = 0; t 80; t++) { await sleep(250); const d = doc(); if (!d || d === docAntigo) continue; let url = ''; try { url = d.location.href; } catch { continue; } if (d.readyState === 'complete' url.includes('/cupons') botaoAbrir()) { await sleep(500); // folga para a página terminar de montar return true; } } return false; }; const carregarCupons = async () = { const antigo = doc(); if (popup) popup.location.href = URL_CUPONS; else frame.src = URL_CUPONS + '_t=' + Date.now(); return esperarPagina(antigo); }; // ---------- seletores (sempre dentro da janela de trabalho) ---------- const visivel = el = el el.getClientRects().length 0; // O modal certo é o que tem um campo de texto visível const modal = () = [...(doc()?.querySelectorAll('.andes-modal, [role="dialog"]') || [])] .find(m = visivel(m) [...m.querySelectorAll('input')].some(visivel)); const inputDoModal = () = { const m = modal(); return m ? [...m.querySelectorAll('input')].find(visivel) : null; }; const botaoInserir = () = { const m = modal(); return m ? [...m.querySelectorAll('button')].find(b = visivel(b) /^inserir$/i.test(txt(b))) : null; }; const botaoAbrir = () = { const d = doc(); if (!d) return null; const exato = [...d.querySelectorAll('.input-code-modal__action-button')].find(visivel); if (exato) return exato; return [...d.querySelectorAll('button')] .find(b = visivel(b) !b.closest('.andes-modal, [role="dialog"]') /^inserir c[oó]digo$/i.test(txt(b))); }; const snackbarTexto = () = [...(doc()?.querySelectorAll('.andes-snackbar__message') || [])].map(txt).join(' | '); const erroNoModal = () = { const m = modal(); if (!m) return ''; const el = [...m.querySelectorAll( '.andes-form-control__message, [class*="error" i], [class*="helper" i], [role="alert"]' )].find(e = visivel(e) txt(e)); return txt(el); }; const setValor = (el, v) = { const w = win(); const setter = Object.getOwnPropertyDescriptor(w.HTMLInputElement.prototype, 'value').set; setter.call(el, v); el.dispatchEvent(new w.Event('input', { bubbles: true })); el.dispatchEvent(new w.Event('change', { bubbles: true })); }; // ---------- abre a página de cupons ---------- console.log('Abrindo a página de cupons…'); if (!(await carregarCupons())) { console.warn('A janela interna não carregou (o site pode bloquear iframe). Tentando popup…'); frame.remove(); popup = window.open(URL_CUPONS, 'cupons_ml', 'width=1100,height=800'); if (!popup) { console.error('❌ O navegador bloqueou o popup. Libere popups para mercadolivre.com.br e rode de novo.'); return; } if (!(await esperarPagina())) { console.error('❌ Não consegui carregar a página de cupons nem achar o botão que abre o modal.'); return; } } // ---------- loop principal ---------- const resultados = []; for (const [i, cupom] of CUPONS.entries()) { // Garante que está na página de cupons const d0 = doc(); if (!d0 || !d0.location.href.includes('/cupons') || !botaoAbrir()) { if (!(await carregarCupons())) { console.error('❌ Não consegui voltar para a página de cupons. Parei em', cupom); break; } } // Abre o modal if (!inputDoModal()) { const abrir = botaoAbrir(); if (!abrir) { console.error('❌ Não achei o botão que abre o modal. Parei em', cupom); break; } abrir.click(); for (let t = 0; t 25 !inputDoModal(); t++) await sleep(200); } const input = inputDoModal(); if (!input) { console.error('❌ O modal não abriu. Parei em', cupom); break; } // Digita e clica em Inserir const docAntes = doc(); const urlAntes = docAntes.location.href; const snackAntes = snackbarTexto(); const erroAntes = erroNoModal(); input.focus(); setValor(input, ''); setValor(input, cupom); await sleep(300); let bt = null; for (let t = 0; t 25 !(bt = botaoInserir()); t++) await sleep(200); if (!bt) { // Não desiste de tudo: registra, recarrega e segue para o próximo resultados.push({ n: i + 1, cupom, status: '⚠️', retorno: 'botão "Inserir" não apareceu' }); console.warn(`⚠️ (${i + 1}/${CUPONS.length}) ${cupom} → botão "Inserir" não apareceu, pulando`); await carregarCupons(); continue; } bt.click(); // Espera: snackbar de sucesso, mudança de página (sucesso) ou erro no modal let retorno = '', status = '⏳'; const inicio = Date.now(); while (Date.now() - inicio TIMEOUT_MS) { await sleep(250); const d = doc(); let urlAgora = ''; try { urlAgora = d?.location.href || ''; } catch {} const snack = snackbarTexto(); if (snack snack !== snackAntes) { retorno = snack; status = /aplicou|ativou|sucesso/i.test(snack) || snack.toUpperCase().includes(cupom) ? '✅' : '⚠️'; break; } const erro = erroNoModal(); if (erro erro !== erroAntes) { retorno = erro; status = /j[aá] foi adicionado|j[aá] (est[aá]|foi) (ativo|aplicado)/i.test(erro) ? '🔁' : '❌'; break; } if (d !== docAntes || (urlAgora urlAgora !== urlAntes)) { retorno = 'página mudou após inserir (sucesso)'; status = '✅'; await sleep(1500); // dá tempo da snackbar aparecer na página nova const s2 = snackbarTexto(); if (s2) retorno = s2; break; } } if (!retorno) retorno = modal() ? '(sem resposta, modal ainda aberto)' : '(sem resposta)'; resultados.push({ n: i + 1, cupom, status, retorno }); console.log(`${status} (${i + 1}/${CUPONS.length}) ${cupom} → ${retorno}`); // Volta para a página de cupons antes do próximo (limpa modal/erros) await sleep(PAUSA_MS); await carregarCupons(); } console.table(resultados); const conta = s = resultados.filter(r = r.status === s).length; console.log(`Fim: ✅ ${conta('✅')} aplicados | 🔁 ${conta('🔁')} já estavam na conta | ❌ ${conta('❌')} recusados | ⚠️ ${conta('⚠️')} com problema — de ${resultados.length} tentados.`); if (!popup) frame.remove(); else popup.close(); })();

    20% OFF
    | Vendido por Mercado Livre
    487°
    10
    Ver promoçãoVer mais