Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- javascript:(function(){const LS_KEY="__cupons_proibidos__";const proibidosPadrao=["FARO","BIOFRESH","OPTIMUM","CIBAU","ATACAMA","FN RECEITA","GOLDEN","PIPICAT","SYNTEC","FN CAES","FN GATOS","MITZI","ND CAES","ND GATOS","GRANPLUS","PEDIGREE","WHISKAS","PREMIER","GUABI","NATURAL CAES","NATURAL GATOS","PUTZ","GRANEL","ELANCO","VET LIFE"];const escapeRegex=s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");const uniq=a=>[...new Set(a)];const lerProibidos=()=>{try{const raw=localStorage.getItem(LS_KEY);if(!raw) return proibidosPadrao.slice();const arr=JSON.parse(raw);if(!Array.isArray(arr)) return proibidosPadrao.slice();const limpo=uniq(arr.map(v=>String(v||"").trim().toUpperCase()).filter(Boolean));return limpo.length?limpo:proibidosPadrao.slice();}catch(_){return proibidosPadrao.slice();}};let valoresProibidos=lerProibidos();let regexProibidos=new RegExp(valoresProibidos.map(escapeRegex).join("|"),"i");const montarDados=()=>{const cupons={};const linhas=document.querySelectorAll("tbody tr");for(const tr of linhas){const font=tr.querySelector("td font:first-of-type");if(!font) continue;const texto=font.textContent.trim();if(texto.length<=4||isNaN(texto)) continue;const nomeItem=tr.children[2]?.textContent?.trim()?.toUpperCase();if(!nomeItem) continue;(cupons[texto]??=[]).push(nomeItem);}const cuponsAprovados=[];let resultadoHTML="";for(const [numeroCupom,itens] of Object.entries(cupons)){if(!numeroCupom.startsWith("0")) continue;if(itens.some(nome=>regexProibidos.test(nome))) continue;cuponsAprovados.push(numeroCupom);resultadoHTML+=`<div class="cupom-bloco"><b>Cupom:</b> ${numeroCupom}<br><br><b>Itens:</b><ul>${itens.map(i=>`<li>${i}</li>`).join("")}</ul></div>`;}return {cuponsAprovados,resultadoHTML};};const mostrarNotificacao=msg=>{document.getElementById("popup-notificacao")?.remove();const n=document.createElement("div");n.id="popup-notificacao";n.innerHTML=`<span>${msg}</span><button>×</button>`;document.body.appendChild(n);const fechar=()=>{n.style.opacity="0";setTimeout(()=>n.remove(),400);};n.querySelector("button").onclick=fechar;setTimeout(fechar,3000);};const abrirEditorProibidos=()=>{document.getElementById("popup-editor-bg")?.remove();const bg=document.createElement("div");bg.id="popup-editor-bg";const box=document.createElement("div");box.id="popup-editor-box";const texto=valoresProibidos.join("\n");box.innerHTML=`<h3>Editar valores proibidos</h3><p style="margin:8px 0 12px;opacity:.85;font-size:13px;line-height:1.35">Um por linha (ou separado por vírgula). Salva no <b>localStorage</b> e fica válido nos próximos usos do bookmarklet.</p><textarea id="popup-editor-textarea" spellcheck="false">${texto}</textarea><div class="editor-botoes"><button id="editor-cancelar">Cancelar</button><button id="editor-salvar">Salvar</button></div>`;bg.appendChild(box);document.body.appendChild(bg);const fechar=()=>bg.remove();box.querySelector("#editor-cancelar").onclick=fechar;box.querySelector("#editor-salvar").onclick=()=>{const raw=box.querySelector("#popup-editor-textarea").value||"";const lista=uniq(raw.split(/\n|,/g).map(v=>String(v||"").trim().toUpperCase()).filter(Boolean));localStorage.setItem(LS_KEY,JSON.stringify(lista));valoresProibidos=lerProibidos();regexProibidos=new RegExp(valoresProibidos.map(escapeRegex).join("|"),"i");fechar();render();mostrarNotificacao("Lista de proibidos atualizada!");};bg.addEventListener("click",e=>{if(e.target===bg) fechar();});};const render=()=>{const {cuponsAprovados,resultadoHTML}=montarDados();document.getElementById("popup-bg")?.remove();const bg=document.createElement("div");bg.id="popup-bg";const box=document.createElement("div");box.id="popup-box";box.innerHTML=%60<div id="popup-buttons"><button id="fechar-popup">Fechar</button><button id="copiar-cupom">Copiar Cupons</button><button id="editar-proibidos">Editar Proibidos</button></div><h2>Cupons Aprovados: ${cuponsAprovados.length}</h2>${resultadoHTML||"<p>Nenhum cupom aprovado.</p>"}%60;bg.appendChild(box);document.body.appendChild(bg);box.querySelector("#fechar-popup").onclick=()=>bg.remove();box.querySelector("#copiar-cupom").onclick=()=>{if(!cuponsAprovados.length) return;navigator.clipboard.writeText(cuponsAprovados.join("\n")).then(()=>mostrarNotificacao("Cupons copiados!")).catch(()=>mostrarNotificacao("Erro ao copiar!"));};box.querySelector("#editar-proibidos").onclick=abrirEditorProibidos;};if(!document.getElementById("estilodeclarado")){const style=document.createElement("style");style.id="estilodeclarado";style.textContent=%60@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&display=swap');#popup-bg{position:fixed;top:0;left:0;width:100vw;height:100vh;backdrop-filter:blur(10px);background:rgba(0,0,0,.75);display:flex;justify-content:center;align-items:center;z-index:999999;}#popup-box{width:520px;max-height:80vh;background:#0c0c12;color:#fff;border-radius:16px;padding:25px 25px 15px;overflow-y:auto;border:2px solid #4bb8ff;box-shadow:0 0 20px #4bb8ff,0 0 40px #ff00ff,0 0 60px #00ffff;font-family:'Orbitron',sans-serif;animation:fadeIn .35s ease-out;position:relative;}#popup-box::-webkit-scrollbar{width:10px;}#popup-box::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#ff00ff,#00ffff);border-radius:10px;}#popup-box::-webkit-scrollbar-track{background:rgba(255,255,255,.05);border-radius:10px;}#popup-box h2{text-align:center;margin-top:0;font-size:24px;letter-spacing:2px;text-shadow:0 0 6px #ff00ff,0 0 12px #00ffff;}.cupom-bloco{margin-bottom:20px;padding:14px;border-radius:12px;background:rgba(255,255,255,.05);border-left:3px solid #4bb8ff;box-shadow:0 0 8px #4bb8ff inset;}.cupom-bloco b{font-size:15px;color:#4bb8ff;}#popup-buttons{position:sticky;top:0;display:flex;gap:10px;justify-content:space-between;background:#0c0c12;padding-bottom:10px;margin-bottom:10px;z-index:10;}#fechar-popup,#copiar-cupom,#editar-proibidos{flex:1;padding:12px;border:none;border-radius:10px;cursor:pointer;font-size:13px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:1px;transition:.25s;box-shadow:0 0 8px #fff,0 0 15px #4bb8ff;}#fechar-popup{background:linear-gradient(45deg,#ff00ff,#4bb8ff);}#fechar-popup:hover{box-shadow:0 0 12px #ff00ff,0 0 25px #4bb8ff;}#copiar-cupom{background:linear-gradient(45deg,#00ffcc,#2ecc71);}#copiar-cupom:hover{box-shadow:0 0 12px #00ffcc,0 0 25px #2ecc71;}#editar-proibidos{background:linear-gradient(45deg,#f39c12,#e74c3c);}#editar-proibidos:hover{box-shadow:0 0 12px #f39c12,0 0 25px #e74c3c;}#popup-notificacao{position:fixed;top:20px;right:20px;background:#2ecc71;padding:14px 22px;border-radius:12px;color:#fff;font-family:'Orbitron',sans-serif;font-weight:700;box-shadow:0 0 12px #00ffcc,0 0 20px #2ecc71;display:flex;justify-content:space-between;align-items:center;min-width:180px;z-index:1000000;opacity:0;animation:fadeInNotif .35s forwards;}#popup-notificacao button{background:transparent;border:none;color:#fff;font-size:16px;cursor:pointer;margin-left:10px;}#popup-editor-bg{position:fixed;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000001;}#popup-editor-box{width:560px;max-width:92vw;background:#0c0c12;border:2px solid #4bb8ff;border-radius:16px;padding:18px 18px 16px;color:#fff;font-family:'Orbitron',sans-serif;box-shadow:0 0 20px #4bb8ff,0 0 40px #ff00ff;}#popup-editor-box h3{margin:0 0 8px;font-size:18px;letter-spacing:1px;text-shadow:0 0 6px #ff00ff,0 0 12px #00ffff;}#popup-editor-textarea{width:100%;height:260px;resize:vertical;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#fff;padding:12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;outline:none;}#popup-editor-textarea:focus{border-color:#4bb8ff;box-shadow:0 0 0 2px rgba(75,184,255,.25);}.editor-botoes{display:flex;gap:10px;margin-top:12px;}#editor-cancelar,#editor-salvar{flex:1;padding:12px;border:none;border-radius:10px;cursor:pointer;font-size:13px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:1px;transition:.25s;box-shadow:0 0 8px #fff,0 0 15px #4bb8ff;}#editor-cancelar{background:linear-gradient(45deg,#7f8c8d,#34495e);}#editor-cancelar:hover{box-shadow:0 0 12px #7f8c8d,0 0 25px #34495e;}#editor-salvar{background:linear-gradient(45deg,#00ffcc,#2ecc71);}#editor-salvar:hover{box-shadow:0 0 12px #00ffcc,0 0 25px #2ecc71;}#popup-box,#popup-editor-textarea{scrollbar-width: thin;scrollbar-color: #00ffff rgba(255,255,255,.08);}#popup-box::-webkit-scrollbar,#popup-editor-textarea::-webkit-scrollbar{width: 10px;}#popup-box::-webkit-scrollbar-track,#popup-editor-textarea::-webkit-scrollbar-track{background: rgba(255,255,255,.06);border-radius: 12px;box-shadow: inset 0 0 6px rgba(0,0,0,.6);}#popup-box::-webkit-scrollbar-thumb,#popup-editor-textarea::-webkit-scrollbar-thumb{border-radius: 12px;background: linear-gradient(180deg,#ff00ff,#00ffff);box-shadow: 0 0 8px #00ffff, inset 0 0 6px rgba(0,0,0,.5);border: 1px solid rgba(255,255,255,.15);}#popup-box::-webkit-scrollbar-thumb:hover,#popup-editor-textarea::-webkit-scrollbar-thumb:hover{background: linear-gradient(180deg,#00ffff,#ff00ff);box-shadow: 0 0 12px #ff00ff;}@keyframes fadeIn{from{opacity:0;transform:scale(.9);}to{opacity:1;transform:scale(1);}}@keyframes fadeInNotif{to{opacity:1;}}%60;document.head.appendChild(style);}render();})();
Advertisement
Add Comment
Please, Sign In to add comment