Last active
June 5, 2021 13:29
-
-
Save callmeloureiro/aee312dc9e2bffd59313988ec4a70928 to your computer and use it in GitHub Desktop.
Como não deixar no vácuo no whatsapp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Hoje não deixaremos mais ninguém no vácuo no whatsapp | |
Para utilizar: | |
- Abra o web.whatsapp.com; | |
- Abra o console e cole o código que está no gist; | |
- Aguarde e verá uma mensagem sendo enviada a cada momento que alguém te enviar alguma mensagem. | |
Confira também como ser chato no whatsapp: https://gist.github.com/mathloureiro/4c74d60f051ed59650cc76d1da0d32da | |
e como ser chato no mensseger: https://gist.github.com/mathloureiro/d3f91d19cf148838217e42a0c6df5ed8 | |
*/ | |
// Declaração de variáveis utilizadas | |
// Mensagem que será enviada | |
var setTextContent = "Oi! Você está falando com o *LOU COMPUTADOR*, o computador do Loureiro! Infelizmente ele não se encontra no momento, mas assim que possível ele irá responder você :D"; | |
var i; | |
var group; | |
var conversas; | |
var lastMessage; | |
var eventVar; | |
var textbox; | |
function simulateMouseEvents(element, eventName) { | |
var mouseEvent = document.createEvent ('MouseEvents'); | |
mouseEvent.initEvent (eventName, true, true); | |
element.dispatchEvent (mouseEvent); | |
} | |
i = setInterval(() => { | |
conversas = document.querySelectorAll('.chat.unread'); | |
conversas.forEach((div) => { | |
group = div.querySelector('.chat-body .chat-secondary .chat-status span._2_LEW span.sender') | |
if (!group) { | |
simulateMouseEvents(div, 'mousedown') | |
setTimeout(() => { | |
lastMessage = document.querySelector('#main > .pane-body > .copyable-area > .pane-chat-msgs .msg:last-child > .message'); | |
if ( lastMessage.classList.contains('message-in') ) { | |
window.InputEvent = window.Event || window.InputEvent; | |
eventVar = new InputEvent('input', { | |
bubbles: true | |
}); | |
textbox = document.querySelector('#main > footer > div.block-compose > div.input-container > div.pluggable-input.pluggable-input-compose > div.pluggable-input-body.copyable-text.selectable-text'); | |
textbox.textContent = setTextContent; | |
textbox.dispatchEvent(eventVar); | |
document.querySelector("button.compose-btn-send").click(); | |
} | |
}, 1000); | |
} | |
}) | |
}, 2000); // 1000 = 1 segundo, tempo que será enviada cada mensagem. |
foda!
Customizei para o uso próprio, e vou compartilhar o code, so tome cuidado com o nome que esta usando para os seus contatos
kkkk
/*
Hoje não deixaremos mais ninguém no vácuo no whatsapp
Para utilizar:
- Abra o web.whatsapp.com;
- Abra o console e cole o código que está no gist;
- Aguarde e verá uma mensagem sendo enviada a cada momento que alguém te enviar alguma mensagem.
Confira também como ser chato no whatsapp: https://gist.github.com/mathloureiro/4c74d60f051ed59650cc76d1da0d32da
e como ser chato no mensseger: https://gist.github.com/mathloureiro/d3f91d19cf148838217e42a0c6df5ed8
*/
// Mensagem que será enviada de acordo com as etapas que você definiu
function setTextContent(contactName) {
if (working()) {
// mensagem para quando estiver workando
return "Oi " + contactName + "! Infelizmente ele não esta com o celular. Ele esta trabalhando e o chefe dele é muito chato e não deixa ele responder o zapzap em horário de serviço =( Mas assim que possível ele irá responder você :D";
} else if (sleeping()) {
// mensagem para quando estiver tirando uma soneca
return "Oi " + contactName + "! Infelizmente ele esta dormindo, mas assim que acordar ele irá te responder";
} else {
// mensagem para dar aquele migué mesmo
return "Oi " + contactName + "! Infelizmente ele não esta com o celular no momento, mas assim que possível ele irá responder você :D";
}
}
var i;
var chat = document.querySelectorAll('.chat.unread');
function day() {
var date = new Date();
return date.getDay();
}
function hour() {
var date = new Date();
return date.getHours();
}
// defina a hora do trabalho
function working() {
return day() > 0 && day() < 6 && hour() >= 9 && hour() <= 18;
}
// defina a hora do cochilo
function sleeping() {
return hour() >= 0 && hour() <= 8;
}
function simulateMouseEvents(element, eventName) {
var mouseEvent = document.createEvent ('MouseEvents');
mouseEvent.initEvent (eventName, true, true);
element.dispatchEvent (mouseEvent);
}
function parserContactName(contactName) {
if (!contactName.match(/[a-zA-Z]/g)) {
return '';
} else {
return contactName;
}
};
i = setInterval(() => {
chat.forEach((div) => {
var group = div.querySelector('.chat-body .chat-secondary .chat-status span._2_LEW span.sender')
var mutedChat = div.querySelector('.chat-body .chat-secondary .chat-meta > span div > span[data-icon=muted]');
if (!group && !mutedChat) {
simulateMouseEvents(div, 'mousedown')
setTimeout(() => {
var lastMessage = document.querySelector('#main > .pane-body > .copyable-area > .pane-chat-msgs .msg:last-child > .message');
if ( lastMessage.classList.contains('message-in') ) {
window.InputEvent = window.Event || window.InputEvent;
var event = new InputEvent('input', {bubbles: true});
var textbox = document.querySelector('#main > footer > div.block-compose > div.input-container > div.pluggable-input.pluggable-input-compose > div.pluggable-input-body.copyable-text.selectable-text');
var contactName = parserContactName(div.querySelector('.chat-body .chat-title .emojitext').innerText);
textbox.textContent = setTextContent(contactName);
textbox.dispatchEvent(event);
document.querySelector("button.compose-btn-send").click();
}
}, 1000);
}
})
}, 2000);
Quem quiser colocar o script em bookmarklet (link na barra de favoritos) pra automatizar o uso, pode fazer dessa maneira:
créditos ao @russiann
/* Script do @mathloureiro - modificado! */
javascript:(function(){
var setTextContent = "Oi! Você está falando com o *O COMPUTADOR*, o computador do Murilo! Infelizmente ele não se encontra no momento, mas assim que possível ele irá responder você :D";
function simulateMouseEvents(element, eventName) {
var mouseEvent = document.createEvent ('MouseEvents');
mouseEvent.initEvent (eventName, true, true);
element.dispatchEvent (mouseEvent);
}
window.zoeira = setInterval(function(){
var conversas = document.querySelectorAll('.chat.unread').forEach(function(div) {
var group = div.querySelector('.chat-body .chat-secondary .chat-status span._2_LEW span.sender')
var isMuted = div.querySelector('.chat-body .chat-secondary .chat-meta > span div > span[data-icon=muted]');
if (!group && !isMuted) {
simulateMouseEvents(div, 'mousedown')
setTimeout(() => {
var lastMessage = document.querySelector('#main > .pane-body > .copyable-area > .pane-chat-msgs .msg:last-child > .message');
if ( lastMessage.classList.contains('message-in') ) {
window.InputEvent = window.Event || window.InputEvent;
var event = new InputEvent('input', {
bubbles: true
});
var textbox = document.querySelector('#main > footer > div.block-compose > div.input-container > div.pluggable-input.pluggable-input-compose > div.pluggable-input-body.copyable-text.selectable-text');
textbox.textContent = setTextContent;
textbox.dispatchEvent(event);
document.querySelector("button.compose-btn-send").click();
}
}, 1000);
};
});
}, 10000);
})()
Para terminar a execução, só é necessário ter um outro bookmarklet assim:
javascript:(function(){[
clearInterval(window.zoeira);
console.log("Evento foi parado.");
})()
galera, o codigo acima esta apresentando um erro...
VM4100:19 Uncaught TypeError: Cannot read property 'classList' of null
at setTimeout (:19:22)
alguem tem esse codigo funcionando ?
estou desenvolvendo um aplicativo desktop para melhorar o uso, e queria apllicar o auto responder... para que possa ficar mais automatico ainda.
se quiserem participar comigo, segue meu email [email protected]
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Tentei colocar em bookmarklets mas não deu muito certo, não to percebendo o erro.