Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 32 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,42 @@
# SendScriptWhatsApp

Código para enviar o Script inteiro de Shrek ou Bee Movie para seus amigos ou grupos do WhatsApp
Código para enviar o Script inteiro de Shrek ou Bee Movie para seus amigos ou grupos do WhatsApp através do console do navegador.

## Utilização
## 🧑‍💻 Tecnologias

Abra [shrekSendScript.js](https://github.com/Matt-Fontes/SendScriptWhatsApp/blob/main/shrekSendScript.js)
Ou
Abra [beeMovieSendScript.js](https://github.com/Matt-Fontes/SendScriptWhatsApp/blob/main/beeMovieSendScript.js)
* JavaScript

Copie todo o conteúdo (clique em raw -> ctrl+a -> ctrl+c)
## 📖 Utilização

No WhatsApp Web abra o console do Browser
1. Abra o [WhatsApp Web](https://web.whatsapp.com) e faça login na sua conta.
2. Abra a conversa para a qual deseja enviar o script e mantenha a caixa de texto selecionada.
3. Abra o **DevTools** (Ferramentas do Desenvolvedor) utilizando um dos atalhos: `Ctrl + Shift + J`, `Ctrl + Shift + I` ou `F12`.
4. No topo da aba que se abriu, clique em **Console**.
5. Escolha e clique em um dos scripts abaixo:
* [Shrek](https://github.com/Matt-Fontes/SendScriptWhatsApp/blob/main/shrekSendScript.js)
* [Bee Movie](https://github.com/Matt-Fontes/SendScriptWhatsApp/blob/main/beeMovieSendScript.js)
6. Copie todo o conteúdo do arquivo (clique em **Raw** -> `Ctrl + A` -> `Ctrl + C`).
7. No console do WhatsApp Web, cole o código.

| ⚠️ Aviso importante, numa atualização recente do Google Chrome, está sendo impedido que qualquer script seja colado no Console.|
|--|
| ***Para contornar esse problema, o console do desenvolvedor espera receber um confirmação textual escrevendo no console: "allow pasting"***|
|Após isso será permitido colar e continuar a execução do script|
> 📍 [!IMPORTANT]
> Em atualizações recentes do Google Chrome, pode ser impedido que scripts sejam colados no Console. Para contornar isso, digite `allow pasting` no console e aperte Enter antes de colar o script.

8. Após colar o script, aperte **Enter** para iniciar a execução.

Cole o código no console e aperte Enter
## ⚠️ Atenção

Pronto
Esta ação é **irreversível**. Uma vez iniciado, o script enviará todas as linhas do roteiro automaticamente.

## 🧑‍💼 Contribuidores

* [Matt-Fontes](https://github.com/Matt-Fontes) (Criador)
* [P0sseid0n](https://github.com/P0sseid0n)
* [Alphka](https://github.com/Alphka)
* [Bulani](https://github.com/Bulani)
* [WillFelisberto](https://github.com/WillFelisberto)
* [silvan-batistella](https://github.com/silvan-batistella)
* [Samyr](https://github.com/Samyr-Dev) (Eu)

## 📱 Contato

[![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/samyrtertuliano)
56 changes: 35 additions & 21 deletions shrekSendScript.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,39 @@
async function enviarScript(scriptText){
const lines = scriptText.split(/[\n\t]+/).map(line => line.trim()).filter(line => line);
main = document.querySelector("#main"),
textarea = main.querySelector(`div[contenteditable="true"]`)

if(!textarea) throw new Error("Não há uma conversa aberta")

for(const line of lines){
console.log(line)

textarea.focus();
document.execCommand('insertText', false, line);
textarea.dispatchEvent(new Event('change', {bubbles: true}));

setTimeout(() => {
(main.querySelector(`[data-testid="send"]`) || main.querySelector(`[data-icon="send"]`)).click();
}, 100);

if(lines.indexOf(line) !== lines.length - 1) await new Promise(resolve => setTimeout(resolve, 250));
}

return lines.length;
const lines = scriptText.split(/[\n\t]+/).map(line => line.trim()).filter(line => line);
const main = document.querySelector("#main");
const textarea = main ? main.querySelector(`div[contenteditable="true"]`) : null;

if(!textarea) throw new Error("Não há uma conversa aberta! Clique em uma conversa antes de rodar o script.");

for(const line of lines){
console.log("Enviando linha:", line);

textarea.focus();
document.execCommand('insertText', false, line);

textarea.dispatchEvent(new Event('input', {bubbles: true}));

await new Promise(resolve => setTimeout(resolve, 250));

const sendBtn = main.querySelector('span[data-testid="wds-ic-send-filled"]') ||
main.querySelector('span[data-icon="wds-ic-send-filled"]') ||
main.querySelector('span[data-testid="send"]') ||
main.querySelector('span[data-icon="send"]') ||
main.querySelector('button:has(span[data-icon="send"])');

if (sendBtn) {
sendBtn.click();
} else {
console.error("Botão de enviar não encontrado. O seletor pode ter mudado.");
break;
}

if(lines.indexOf(line) !== lines.length - 1) {
await new Promise(resolve => setTimeout(resolve, 1000));
}
}

return lines.length;
}

enviarScript(`
Expand Down