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)!
04/12/2023 | Build: 87
Do pacote: Gestão de grupos Whats
Descrição: Funções para localizar e extrair da web links de convite para grupos do Whatsapp. Possui também funções para validar se os links estão ativos
&CriarBotao("Abrir Whatsapp PC";"abrir whatsapp pc";200) //*
&CriarBotaoPopup("Extração de grupos...";"Configurar extração, Extrair grupos, Validar links dos grupos";"configurar extração, extrair grupos, validar grupos") //*
&CriarBotaoPopup("Grupo...";"Abrir grupo selecionado na tabela, Ir ao próximo grupo da tabela, Ver grupo, ";"abrir grupo, próximo grupo, entrar na conversa") //*
&CriarBotao("Zerar status";"zerar status";200) //*
#zerar status
&TbComando("primeiro")[0]
&marcador("zerar status")
&TbValorDefinir("status"; "")[0] //*
&TbComando("próximo")[0]
&Se([último resultado];igual;"OK")
&VaiPara("zerar status")
.fimse
&TbComando("primeiro")[0]
#
// Abre o próximo grupo ativo
#próximo grupo
&Marcador("próximo_loop")
&TbComando("próximo")[0]
&TbLerCampo("ativo")[0] //*
&Se([ativo];igual;"não")
&VaiPara("próximo_loop")
.fimse
&TbLerCampo("url")[0] //*
&Se([url];igual;"")
&VaiPara("próximo_loop")
.fimse
&BlocoExec("abrir grupo")[0] //*
#
// entra no grupo que estiver em "url"
#abrir grupo
&TbLerCampo("url")[0] //*
&Se([url];igual;"")
&Mensagem("Só pode abrir grupos com links")
.senao
&NavegadorIr([url])[0] //*
&NavegadorPosicionar(0;0;750;650)[0] //* topo, esquerda, largura, altura
.fimse
#
// Precisa do Whatsapp PC instalado. Entra no grupo
#entrar na conversa
&NavegadorClicarPerguntar(11208104440057;"Local do botão 'Entrar na conversa'")[2] //*
[whatsapp_url] = "whatsapp://"
&ExecutarComando([whatsapp_url])[1.5]
&DigitarTab()[2]
&DigitarEnter()[2]
#
// Valida se os grupos da tabela existem
#validar grupos
&TbComando("primeiro")[0] //* primeiro, anterior, próximo, último, apagar
&Marcador("validar_loop")
&TbLerCampo("url")[0] //*
&Se([url];igual;"")
&VaiPara("validar_pular")
.fimse
&Se([ativo];diferente;"")
&VaiPara("validar_pular")
.fimse
&URLBaixar([url];"conteúdo") //*
&TextoTem([conteúdo];"_0dVljceIA5.png";"retorno")[0] //* Retorna sim | não
&Se([retorno];igual;"sim")
&TbValorDefinir("obs"; "inválido")[0] //*
&TbValorDefinir("ativo"; "não")[0] //*
.senao
//&TextoSalvar([conteúdo]; "c:\temp\temp_conteudo.txt")[2] //*
//&ExecutarComando("notepad.exe c:\temp\temp_conteudo.txt")[0]
//&ScriptEncerrar()
&TextoEntre([conteúdo];"og:title";"#-/";"nome")[0] //*
&TextoDecodificarHTML([nome]; "nome")[0] //*
&TextoRemoverEspeciais([nome];"nome")[0] //*
&TextoSubstituir([nome]; "*aspas*"; ""; "nome")[0] //*
&TextoSubstituir([nome]; "content"; ""; "nome")[0] //*
&TextoRemoverFim([nome]; "/"; "nome")[0] //*
//&TextoSubstituir([nome]; " /"; ""; "nome")[0] //*
&TbValorDefinir("ativo"; "sim")[0] //*
&TbValorDefinir("nome"; [nome])[0] //*
.fimse
&Marcador("validar_pular")
&TbComando("próximo")[0] //* primeiro, anterior, próximo, último, apagar
&Se([último resultado];igual;"OK")
&VaiPara("validar_loop")
.fimse
#
#configurar extração
&ValorPedirVarios("Configurações"; "termo de busca,ignorar se tiver")[0] //*
#
#extrair grupos
// definie variáveis de controle para o extrator de dados saber se é para extrair emails ou telefones
[modo extracao] = "grupos"
&BlocoExec("processar extração")[0] //*
#
// Faz a busca para um termo de busca
#processar extração
&TextoQtdLinhas([termo de busca]; "qtd termos")[0] //*
[inseridos] = 0
&TextoObterDataHora("hoje")[0] //*
&TextoDataInfo([hoje]; "secao_data"; "hoje")[0] //* valor -#-/ ano, mês, dia, hora, minuto, segundo, dia_semana, secao_data, secao_hora
&TextoGerarIdUnico("id único")[0] //*
&Progresso2Iniciar("Termos";[qtd termos])[0] //*
&Repetir([qtd termos])
[links] = ""
// Primeiro faz a busca
[termo atual] = [termo de busca*[_indice]]
&Progresso2Inc(1)[0] //*
&StatusInserir("Efetuando busca: [termo atual]";"importante")[0] //* cor: erro, sucesso, alerta, preto, cinza, importante
&BlocoExec("efetuar busca")[0] //* os dados vão para "conteúdo"
&StatusInserirExtra("OK";"sucesso")[0] //* cor: erro, sucesso, alerta, preto, cinza, importante
// Aproveita e extrai e-mails na própria página de busca
&StatusInserir("Obtendo links da página de resultado...";"preto")[0] //* cor: erro, sucesso, alerta, preto, cinza, importante
[link atual] = "Resultado da busca: [termo de busca]"
[dados] = [conteúdo]
&BlocoExec("extrair dados")[0] //* os dados vão para "links"
.fimrepetir
&StatusInserir("Fim do processamento";"importante")[0]
&StatusInserir("Total de links inseridos: [inseridos]";"preto")[0]
#
// - - - - - - - - - - -
// Efetua uma busca e coloca os dados na variável "conteúdo"
#efetuar busca
[conteúdo] = ""
[link de busca] = "https://www.google.com.br/search?num=100&site=&source=hp&q=chat.whatsapp.com [termo atual]"
&URLBaixar([link de busca];"conteúdo") //*
[link de busca] = "https://www.google.com.br/search?num=100&start=100&site=&source=hp&q=chat.whatsapp.com [termo atual]"
&URLBaixar([link de busca];"conteúdo2") //*
[conteúdo] = "conteúdo [conteúdo] [conteúdo2]"
#
// Extrai emails da variável "dados" e insere na tabela os que não existirem
#extrair dados
&TextoExtrairContendo([conteúdo]; "chat.whatsapp.com"; "dados"; "")[0] //*
&TextoQtdLinhas([dados]; "qtd")[0] //*
&Repetir([qtd])
[info] = [dados*[_indice]]
&Se([info];diferente;"")
&TextoTemValorLista([info];[ignorar se tiver];"localizou")[0] //* Retorna sim | não
&Se([localizou];diferente;"sim")
&TbLocalizar("url";[info]; "localizou")[0] //*
&Se([localizou*url];diferente;[info])
[info] = "https:[info]"
&TextoTerminaCom([info];".";"retorno")[0] //* Retorna sim | não
&Se([retorno];igual;"sim")
&VaiPara("saiu")
.fimse
&TextoTem([info];"https://chat.whatsapp.com";"retorno")[0] //* Retorna sim | não
&Se([retorno];diferente;"sim")
&VaiPara("saiu")
.fimse
&Se([info];igual;"https://chat.whatsapp.com")
&VaiPara("saiu")
.fimse
&TbInserir("url,obs,data_cadastro,id_unico";"[info],[termo atual],[hoje],[id único]")[0] //*
&ValorInc("inseridos";1)[0] //*
&StatusInserir("Inserido: [info] (total: [inseridos])";"sucesso")[0]
&Marcador("saiu")
.senao
&StatusInserir("Já tem no banco: [info]";"erro")[0]
.fimse
.senao
&StatusInserir("Lista de exclusão: [info]";"erro")[0]
.fimse
.fimse
.fimrepetir
#
#abrir whatsapp pc
[whatsapp_url] = "whatsapp://"
&ExecutarComando([whatsapp_url])[1]
&JanelaAtivaPosicionar(10;10;900;600)[0] //* topo, esquerda, largura, altura
#