meia/inteira (todos setores)
https://vasco.eleventickets.com/*
function waitForElement(selector, callback) {
const observer = new MutationObserver((mutations, observer) => {
if (document.querySelector(selector)) {
callback();
observer.disconnect();
}
});
observer.observe(document.body, {
childList: true,
subtree: true,
});
}
const getTicket = (setor) => {
const setorElement = document.querySelector(`.${setor}`);
console.log("🚀 ~ getTicket ~ setorElement:", setorElement);
if (!setorElement) return;
setorElement.dispatchEvent(new MouseEvent("click", { bubbles: true }));
waitForElement(".content-ingressos", () => {
const contentIngressos = [
...document.querySelectorAll(".content-ingressos"),
];
const prioridade = [
"Meia",
// "Gratuidade Idoso",
];
let ingressoSelecionado = null;
let botaoSoma = null;
for (const tipo of prioridade) {
ingressoSelecionado = contentIngressos.find(el => {
const span = el.querySelector(".dscproduto-container .ng-binding");
if(span && span.textContent.trim() === tipo) {
const verifyBtnSum = el.querySelector(".botao-soma")
if(verifyBtnSum) {
botaoSoma = verifyBtnSum;
return true;
}
};
});
}
// console.log("🚀 ~ getTicket ~ ingressoSelecionado:", ingressoSelecionado)
if (!botaoSoma) {
console.log("🚀 Botão de soma não encontrado.");
window.location.reload();
return;
}
try {
console.log("🚀 ~ getTicket ~ botaoSoma:", botaoSoma);
botaoSoma.click();
} catch (error) {
console.log("Erro ao clicar no botão de soma:", error);
}
const btnFinalizar = document.querySelector(".botao-avancar");
try {
btnFinalizar.click();
} catch (error) {
console.log("Erro ao clicar no botão finalizar:", error);
}
});
};
// waitForElement(".bloco_00e2c6e64148d93908354f4436e08a530736082f", () => {
// const setores = [
// "bloco_00e2c6e64148d93908354f4436e08a530736082f",
// "bloco_a1b2c3d4e5f6",
// "bloco_f6e5d4c3b2a1"
// ];
// // Procura algum setor disponível (sem desabilita-cursor)
// const setorDisponivel = setores.find((setor) => {
// return document.querySelector(`.${setor}:not(.desabilita-cursor)`);
// });
// if (setorDisponivel) {
// console.log("Setor disponível encontrado:", setorDisponivel);
// getTicket(setorDisponivel);
// } else {
// console.log("Nenhum setor disponível para venda online.");
// setTimeout(() => {
// window.location.reload();
// }, 3000);
// }
// return;
// });
waitForElement("path.leaflet-interactive", () => {
// pega TODOS os blocos disponíveis (sem desabilita-cursor)
const blocosDisponiveis = document.querySelectorAll(
".leaflet-interactive:not(.desabilita-cursor)"
);
if (blocosDisponiveis.length > 0) {
const randomIndex = Math.floor(Math.random() * blocosDisponiveis.length);
console.log("Bloco disponível encontrado!", blocosDisponiveis.length, randomIndex);
// pega a classe bloco_xxx do primeiro disponível
const blocoClass = [...blocosDisponiveis[randomIndex].classList]
.find(cls => cls.startsWith("bloco_"));
if (blocoClass) {
getTicket(blocoClass);
}
} else {
console.log("Nenhum bloco disponível, recarregando...");
window.location.reload();
}
});Install requires the InjectJS Chrome extension. Scripts run only on sites matching the pattern above. Review code before installing any community script.