Instale o zBot (para Windows). Rode este sistema no seu computador e vários outros que podem ser baixados diretamente pelo zBot ou criados por você mesmo(a)!
15/11/2023 | Build: 53
Do pacote: Enviador Telegram Web - privado e grupos
Descrição: Automatiza o envio de mensagens para uma lista de contatos ou então grupos usando o Telegram Web. Tem outras funções complementares, como por exemplo sair de grupos que não permitem envio de mensagem ou que você foi removido, além de extrair os ids dos seus contatos e também contatos de grupos
&CriarBotao("1- Abrir Telegram Web";"abrir telegram web";150)
&CriarBotao("Zerar status";"zerar status";"100";"btnstatus") //*
&CriarBotaoPopup("Enviar mensagem...";"Inserir contatos, Definir mensagens, Configurações gerais, Efetuar envio";"inserir contatos, definir mensagens, configurações, efetuar envio";155) //*
&CriarBotaoPopup("Grupos...";"Sair do grupo atual, Sair de grupos travados";"sair do grupo, sair de grupos travados";80) //*
//&CriarBotao("2- Definir mensagens";"definir mensagens";200) //*
//&CriarBotao("3- Configurações de envio";"configurações";200) //*
//&CriarBotao("4- Efetuar envio";"efetuar envio";180) //*
//&CriarBotao("🚶Abrir contato atual";"abrir contato atual";150) //*
//&CriarBotao("Sair do grupo";"sair do grupo";220) //*
&CriarBotao("Extrair contatos exibidos";"extrair todos os contatos";185)
&CriarBotao("Ajuda";"informações_exibir") //*
//&CriarBotao("Sair de grupos travados";"sair de grupos travados";220) //*
//&CriarBotao("Zerar status";"zerar status";200) //*
&TbDefinirCamposVisiveis("id_dados, id_unico, nome, contato, ativo, status, categoria, obs")[0] //*
&AppDefinirProp("app";"btnstatus";"showhint=1,hint=O sistema só envia quando o status está vazio. Zere o status antes de enviar novamente uma mensagem para os mesmos contatos")
#inserir contatos
&ValorPedirVarios("Inserir contatos"; "lista_contatos:Lista de contatos::Um em cada linha. Precisa ser o id do telegram")[0] //*
&Se([_resultado];=;"OK")
&TextoQtdLinhas([lista_contatos]; "qtd")[0] //*
&Repetir([qtd]) //* a variável "_indice" ou "i" terá o número do ciclo atual
&TbInserir("contato";[lista_contatos*[i]])[0] //*
.fimrepetir
.fimse
#
#informações_exibir
&ExecutarComando("https://www.linkws.com.br/zbot/loja/script_det.php?id=20106132614283")[0]
#
#zerar status
&TbComando("primeiro")[0]
&marcador("loop zerar")
&TbValorDefinir("status"; "")[0] //*
&TbComando("próximo")[0]
&Se([último resultado];igual;"OK")
&VaiPara("loop zerar")
.fimse
&TbComando("primeiro")[0]
#
#sair de grupos travados
&MonitorEscala("escala") //* retorna 100, 125, 150 etc.
&Marcador("loop sair")
&BlocoExec("abrir contato atual")[3] //*
&Se([escala];igual;100)
&MousePosicionar(677;400)[0,5] //*
&MousePosicionar(1032;730)[1] //*
.senao
&MousePosicionar(869;433)[0,5] //*
&MousePosicionar(794;738)[1] //*
.fimse
&MouseNomeCursor(20701115622788;"cursor";"Local do campo de mensagens")[0] //*
&Se([cursor];diferente;"texto")
&StatusInserir("Grupo travado. Saindo...";"erro")[0] //* cor: erro, sucesso, alerta, preto, cinza, importante
&BlocoExec("sair do grupo")[1]
&VaiPara("loop sair")
.fimse
&StatusInserir("Grupo permite envio de mensagem";"sucesso")[0] //* cor: erro, sucesso, alerta, preto, cinza, importante
&Marcador("continuar")
&TbComando("próximo")[0] //* primeiro, anterior, próximo, último, apagar
&Se([último resultado];"diferente";"FALHA")
&VaiPara("loop sair")
.senao
&Mensagem("Fim do processamento")
.fimse
#
#sair do grupo
&NavegadorClicarPerguntar(11215102010881;"Local do menu de opções (canto superior direito)")[1] //*
&NavegadorClicarPerguntar(11215102010882;"Opção 'Sair do grupo'")[0.5] //*
&NavegadorClicarPerguntar(11215102010883;"Opção 'Apagar chat'")[0.5] //*
&TbComando("apagar")[0] //* apaga a linha atual da tabela
#
// pega a lista de contatos listados no telegram
#extrair contatos
&StatusInserir("Lendo dados...";"preto")[0]
&NavegadorFonteObter("texto navegador")[0] //*
&StatusInserirExtra("OK";"sucesso")[0]
&StatusInserir("Localizando identificadores dos contatos ou grupos...";"preto")[0]
&TextoExtrairEntre([texto navegador];"data-peer-id=";"#-/";"contatos") [0]
&StatusInserirExtra("OK";"sucesso")[0]
#
// ***
// Função principal para extrair contatos do Telegram
#extrair todos os contatos
&BlocoExec("extrair contatos")[0] //*
&Repetir([Qtd. rolar lista]) //* a variável _indice terá o número do ciclo atual
&ValorInserirLinha("lista final";[contatos]")[0] //*
&NavegadorClicarPerguntar(11209093941608;"local para rolar a lista contatos")[2] //*
&DigitarID(34)[0.5]
.fimrepetir
//[lista final] = [lista grupos]
&BlocoExec("inserir registros")[0] //*
#
// usa a variável [lista final] para colocar os grupos inéditos na tabela
#inserir registros
&TextoEliminarRepetidos([lista final];"lista final")[0] //* &TextoDecodificarHTML([lista final]; "lista final")[0] //*
&TextoQtdLinhas([lista final]; "qtd")[0] //*
&Progresso1Iniciar("progresso";[qtd])[0] //*
&Repetir([qtd]) //* a variável _indice terá o número do ciclo atual
&Progresso1Inc(1)[0] //*
[contato] = [lista final*[_indice]]
[retorno] = "sim"
&TextoTem([contato];"data-";"retorno")[0] //* Retorna sim | não
&Se([retorno];igual;"não")
[linha] = ""
&Se([contato];diferente;"")
&TbInserir("contato";"[contato]")[0] //*
.fimse
.fimse
.fimrepetir
&TbExcluirRepetidos("contato")[0] //*
#
#inicializar variáveis
//* Essas informações servem apenas para referência para sabermos o que é usado no código
[mensagem] = ""
[legenda] = ""
[arquivo] = ""
[numero] = ""
[nome] = ""
[definiu_mensagens] = "não"
#
#definir mensagens
&ValorPedirVarios("Mensagens para enviar"; "mensagem1, imagem1, legenda_img1")[0] //*
[definiu_mensagens] = "sim"
#
// Função principal de envio
#efetuar envio
&TextoGerarIdUnico("id_unico")[0] //*
&TextoObterDataHora("hoje")[0] //*
&Se([definiu_mensagens];diferente;"sim")
&Mensagem("Primeiro clique em DEFINIR MENSAGENS")
&ScriptEncerrar()
.fimse
&TbComando("primeiro")[0] //* primeiro, anterior, próximo, último, apagar
&Marcador("loop")
&TbLerLinha("linha")[0] //*
[contato] = [linha*contato]
&Se([linha*ativo];igual;"não")
&StatusInserir("Contato/grupo inativo";"erro")[0]
&VaiPara("continuar")
.fimse
&Se([linha*status];diferente;"")
&StatusInserir("Só envia se status for vazio";"erro")[0]
&VaiPara("continuar")
.fimse
&Se([contato];igual;"")
&VaiPara("continuar")
.fimse
&BlocoExec("abrir telegram web")[1] //*
&Pausar([Tempo para abrir contato])
// Vê se o grupo permite nevio de mensagem
&Se([escala];igual;100)
&MousePosicionar(677;400)[0,5] //*
&MousePosicionar(1032;730)[1] //*
&Pausar([pausa operacional extra])
.senao
&MousePosicionar(869;433)[0,5] //*
&MousePosicionar(794;738)[1] //*
&Pausar([pausa operacional extra])
.fimse
&MouseNomeCursor(20701115622788;"cursor";"Local do campo de mensagens")[0] //*
&Se([cursor];diferente;"texto")
&StatusInserir("Este grupo não permite o envio de mensagens";"erro")[0] //* cor: erro, sucesso, alerta, preto, cinza, importante
&TbValorDefinir("ativo"; "não")[0] //*
&VaiPara("continuar")
.fimse
&BlocoExec("enviar mensagens")[1.5] //*
&TbValorDefinir("status"; [hoje])[0] //*
&TbValorDefinir("status"; [hoje])[0] //*
&Pausar([Tempo antes de abrir o próximo])
&Marcador("continuar")
&TbComando("próximo")[0] //* primeiro, anterior, próximo, último, apagar
&Se([último resultado];"diferente";"FALHA")
&VaiPara("loop")
.senao
&Mensagem("Fim do processamento")
.fimse
#
//* Função que envia as mensagens preenchidas para o contato atual
#enviar mensagens
&NavegadorClicarPerguntar(20231115151639400;"Indique o local do campo onde digita a mensagem")[0.5] //*
[mensagem] = [mensagem1]
&Se([mensagem];"diferente";"")
&StatusInserir("Enviando mensagem 1";"preto")[0]
&ValorProcessar("mensagem")[0] //*
&BlocoExec("enviar texto")[0] //*
.fimse
[arquivo] = [imagem1]
[legenda] = [legenda_img1]
&ValorProcessar("legenda")[0] //*
&Se([arquivo];"diferente";"")
&StatusInserir("Enviando imagem 1";"preto")[0]
&BlocoExec("enviar imagem")[0] //*
.fimse
#
#abrir contato atual
&TbLerCampo("contato")[0] //*
[numero] = [contato]
[telegram_url] = "https://web.telegram.org/k/#[contato]""
&NavegadorIr([telegram_url])[1] //*
#
//* - - - - - - - - - - -
#abrir telegram web
[telegram_url] = "https://web.telegram.org/k/#[contato]"
&NavegadorIr([telegram_url])[1] //*
&NavegadorZoom(0.7)[0] //* ex: 0.5
&MonitorEscala("escala") //* retorna 100, 125, 150 etc.
&Se([escala];igual;100)
&NavegadorPosicionar(5;5;650;500)[0] //* topo, esquerda, largura, altura
.senao
&NavegadorPosicionar(5;5;650;500)[0]
.fimse
#
#configurações
&ValorPedirVarios("Configurações";"Pausa operacional extra, Qtd. rolar lista, Tempo para abrir contato, Tempo antes de abrir o próximo")[0] //*
#
//* funções para envio de tipos de dados específicos
//* Considera que o cursor está ativo no campo de mensagem
#enviar texto
&Se([mensagem];"diferente";"") //* teste -#-/ igual, diferente, contém, não contém, começa, não começa, termina, não termina
&NavegadorClicarPerguntar(20231115151639400;"Indique o local do campo onde digita a mensagem")[0.5] //*
&ColarTexto([mensagem])[1] //* Cola um valor definido no parâmetro
&Pausar([pausa operacional extra])
&NavegadorClicarPerguntar(20231115151639401;"Local do botão para enviar a mensagem")[2] //*
.fimse
#
#enviar imagem
&Se([arquivo];"diferente";"") //* teste -#-/ igual, diferente, contém, não contém, começa, não começa, termina, não termina
&NavegadorClicarPerguntar(20231115151639400;"Indique o local do campo onde digita a mensagem")[0.5] //*
&ColarArquivo([arquivo])[5] //*
&Pausar([pausa operacional extra])
&Se([legenda];"diferente";"")
&NavegadorClicarPerguntar(20231115151639402;"Local do campo de legenda")[1] //*
&ColarTexto([legenda])[1] //* Cola um valor definido no parâmetro
.fimse
//&NavegadorClicarPerguntar(20231115151639403;"Local do botão para enviar a imagem")[2] //*
&DigitarEnter()[1]
&Pausar([pausa operacional extra])
.fimse
#
#enviar arquivo
&Se([arquivo];"diferente";"") //* teste -#-/ igual, diferente, contém, não contém, começa, não começa, termina, não termina
&NavegadorClicarPerguntar(20231116171700903;"Local do botão para anexar o arquivo")[1] //*
&NavegadorClicarPerguntar(20231116171700904;"Opção DOCUMENTO")[5] //*
&Pausar([pausa operacional extra])
&ColarTexto([arquivo])[0.5] //*
&DigitarEnter()[3]
&Pausar([pausa operacional extra])
&Se([legenda];"diferente";"")
&NavegadorClicarPerguntar(20231116171700905;"Local do campo de legenda")[1] //*
&ColarTexto([legenda])[1] //* Cola um valor definido no parâmetro
.fimse
&NavegadorClicarPerguntar(20231116171700906;"Local do botão para enviar o arquivo")[2] //*
.fimse
#
#enviar vídeo
&Se([arquivo];"diferente";"") //* teste -#-/ igual, diferente, contém, não contém, começa, não começa, termina, não termina
&NavegadorClicarPerguntar(20231116171700903;"Local do botão para anexar o arquivo")[1] //*
&NavegadorClicarPerguntar(20231116174620275;"Opção Fotos e Vídeos")[5] //*
&Pausar([pausa operacional extra])
&ColarTexto([arquivo])[0.5] //*
&DigitarEnter()[3]
&Pausar([pausa operacional extra])
&Se([legenda];"diferente";"")
&NavegadorClicarPerguntar(20231116171700905;"Local do campo de legenda")[1] //*
&ColarTexto([legenda])[1] //* Cola um valor definido no parâmetro
.fimse
&NavegadorClicarPerguntar(20231116171700906;"Local do botão para enviar o vídeo")[5] //*
&Pausar([pausa operacional extra])
.fimse
#
// // //
#informações_exibir
&BlocoLer("informações";"informações")[0] //*
&Mensagem([informações])
#