diff --git a/exec/darnix/BotGen.sh b/exec/darnix/BotGen.sh new file mode 100755 index 0000000..d09aebb --- /dev/null +++ b/exec/darnix/BotGen.sh @@ -0,0 +1,3287 @@ +#!/bin/bash +# -*- ENCODING: UTF-8 -*- + +meu_ip_fun () { + MIP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1) + MIP2=$(wget -qO- ipv4.icanhazip.com) + [[ "$MIP" != "$MIP2" ]] && IP="$MIP2" || IP="$MIP" +} + +meu_ip_func () { + MIP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1) + MIP2=$(wget -qO- ipv4.icanhazip.com) + [[ "$MIP" != "$MIP2" ]] && IP="$MIP2" || IP="$MIP" +} + +rm -rf /etc/localtime &>/dev/null +ln -s /usr/share/zoneinfo/America/Chihuahua /etc/localtime &>/dev/null +rm -rf /usr/local/lib/systemubu1 &>/dev/null + +#!/bin/bash +# -*- ENCODING: UTF-8 -*- + +# -------------------------------------- +# Sección de Constantes +# -------------------------------------- +# Línea divisoria utilizada en la salida del bot +LINE="━━━━━━━━━━━━━━━━━━" + +# Rutas principales +SCPT_DIR="/etc/cat/script" +SCPT_DIRC="/etc/cat/casita" +DIR="/etc/http-shell" +CIDdir="/etc/CAT-BOT" +USRdatabase2="/etc/CAT-BOT/Creditos" + +# Archivos y directorios específicos +LIST="lista-arq" +CIDRESS="${CIDdir}/RESSELLERS" +SRC="${CIDdir}/sources" +CID="${CIDdir}/User-ID" +CIDB="${CIDdir}/regcup" +CIDC="${CIDdir}/User-Hist" +keytxt="${CIDdir}/keys" + +# -------------------------------------- +# Configuración de Listas de Archivos +# -------------------------------------- +# Lista de archivos para BASICINST (si no existe /etc/newadm-instal) +BASICINST_DEFAULT="menu.sh LATAMbot.sh PDirect.py PGet.py POpen.py PPriv.py PPub.py message.txt" +# Lista de archivos para BASICINSTC (si no existe /etc/newadm-install) +BASICINSTC_DEFAULT="ID.txt slowdns.sh ADMbot.sh C-SSR.sh Crear-Demo.sh PDirect.py PGet.py POpen.py PPriv.py PPub.py apacheon.sh blockBT.sh budp.sh dns-netflix.sh dropbear.sh fai2ban.sh message.txt openvpn.sh paysnd.sh ports.sh sockspy.sh speed.py squid.sh squidpass.sh ssl.sh tcp.sh ultrahost v2ray.sh python.py" +#BASICINSTC_DEFAULT="ID menu message.txt dropbear.sh proxy.sh wireguard.sh openvpn.sh ssl.sh python.py shadowsocks.sh Shadowsocks-libev.sh Shadowsocks-R.sh v2ray.sh slowdns.sh budp.sh name adminkey sockspy.sh PDirect.py PPub.py PPriv.py POpen.py PGet.py" +# Cargar listas desde archivos si existen, o usar valores por defecto +[[ -e /etc/newadm-instal ]] && BASICINST="$(cat /etc/newadm-instal)" || BASICINST="${BASICINST_DEFAULT}" +[[ -e /etc/newadm-install ]] && BASICINSTC="$(cat /etc/newadm-install)" || BASICINSTC="${BASICINSTC_DEFAULT}" + +# -------------------------------------- +# Creación de Directorios +# -------------------------------------- +# Crear directorios necesarios si no existen +[[ ! -e "${SCPT_DIR}" ]] && mkdir "${SCPT_DIR}" +[[ ! -e "${SCPT_DIRC}" ]] && mkdir "${SCPT_DIRC}" +[[ ! -d "${CIDdir}" ]] && mkdir "${CIDdir}" +[[ ! -e "${CIDRESS}" ]] && mkdir "${CIDRESS}" +[[ ! -d "${SRC}" ]] && mkdir "${SRC}" +[[ ! -d "${keytxt}" ]] && mkdir "${keytxt}" +[[ ! -d "${USRdatabase2}" ]] && mkdir "${USRdatabase2}" +mkdir /etc/bot/creditos + +# -------------------------------------- +# Creación de Archivos +# -------------------------------------- +# Crear archivos necesarios si no existen +[[ ! -e "${CID}" ]] && touch "${CID}" +[[ ! -e "${CIDB}" ]] && touch "${CIDB}" +[[ ! -e "${CIDC}" ]] && touch "${CIDC}" +touch lista +[[ ! -e RESET ]] && touch RESET + +# -------------------------------------- +# Configuración de Dependencias +# -------------------------------------- +# Instalar jq si no está presente +[[ $(dpkg --get-selections | grep -w "jq" | head -1) ]] || apt-get install jq apt-get install jq -y &>/dev/null + +# Descargar ShellBot.sh si no existe +[[ ! -e "/bin/ShellBot.sh" ]] && wget -O /bin/ShellBot.sh https://www.dropbox.com/s/gfwlkfq4f2kplze/ShellBot.sh &>/dev/null + +# -------------------------------------- +# Limpieza de Archivos Temporales +# -------------------------------------- +# Eliminar archivo de texto-bot si existe +[[ -e /etc/texto-bot ]] && rm /etc/texto-bot + +fsub='subdomain.log' +txt[0]='Ingresa tu IP:' +txt[1]='Ingresa el subdominio:' +txt[2]='Ingresa tu reseller:' +# Importando API +source ShellBot.sh + +# Token del bot +bot_token="$(cat ${CIDdir}/token)" + +# Inicializando el bot +ShellBot.init --token "$bot_token" --monitor --flush --return map +ShellBot.username + +ShellBot.setMyCommands --commands '[{"command":"menu","description":"muestra el menu principal"},{"command":"id","description":"muestra tu id de telegram"}]' + +reply () { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "${bot_retorno:=$comando}")" \ + --parse_mode html --reply_markup "$(ShellBot.ForceReply)" +} +replydos () { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "${bot_retorno:=$comando}")" \ + --parse_mode html --reply_markup "$(ShellBot.ForceReply)" +} + + +datauser() { + # Constantes + #local LINE="━━━━━━━━━━━━━━━━━━" + local check=([0]="🔴 ●-- SIN ACCESO VIP" [1]="🟢|-- CON ACCESO VIP" [2]="BIENVENIDO ADMIN") + + # Determinar datos del usuario + name=${message_from_first_name[$id]:-${callback_query_from_first_name}} + username=${message_from_username[$id]:-${callback_query_from_username[$id]}} + var=${callback_query_message_chat_id[$id]:-${message_chat_id[$id]}} + + # Verificar permisos + if [[ "$permited" != "$chatuser" ]]; then + usr=$(grep -q "$chatuser" ${CIDdir}/User-ID && echo 1 || echo 0) + else + usr=2 + fi + + # Actualizar nombre desde configuración, si existe + [[ -e ${CIDRESS}/${chatuser}.conf ]] && name=$(cat ${CIDRESS}/${chatuser}.conf) + + # Construir respuesta + bot_retorno="$LINE\n━━━━◢ MENU PRINCIPAL ◣━━━━\n\n" + bot_retorno+="👤 |-- [ $name ]\n👤 |-- [ @$username ]\n🆔 |-- [ $var ]\n\n" + bot_retorno+="${check[$usr]}\n$LINE\n" +} + + +# verificacion primarias KEYS CON ACCESO + +gerar_keys () { + MSG_id=$((${message_message_id} + 1)) + meu_ip_fun + #Verificador de keys + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='️⚠️ ESTADO ⚠️ NO USAR! Esta Key es Invalida🚨' || checkPID_GEN='' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + #Termina + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset newresell + newresell="${USRdatabase2}/Mensaje_$chatuser.txt" + if [[ ! -e ${newresell} ]]; then + echo "${firsnme} ${lastnme}" > ${SCPT_DIR}/message.txt + else + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + fi + + [[ ! $newresell ]] && credill="By $(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || credill="By $(cat ${SCPT_DIR}/message.txt)" + + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + + unset usrLOP nombrevalue nBot nBotSS + + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) + limcont=$(cat /etc/CAT-BOT/limit) + [[ "$limcont" -ge "998" ]] && limted="♾️" || limted=$(cat /etc/CAT-BOT/limit) + [[ "$(( $limcont - $numkey_gen ))" -ge "900" ]] && credres="♾️" || credres=$(( $limcont - $numkey_gen)) + [[ -z $nBot ]] && nBot=$(ShellBot.username) + valuekey="$(date | md5sum | head -c10)" + valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + fun_list "$valuekey" + keyfinal=$(ofus "$IP:8888/$valuekey/$LIST") + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "️GENERANDO KEY CASITA" + local bot_retorno="┅┅┅⋙💥❯❯ ❯❯❲ BOT GEN ❳❮❮ ❮❮💥⋘┅┅┅ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${message_chat_tittle} ]] && grupCHAT="" || grupCHAT="ChatID : ${chatuser} " + [[ -z ${usrLOP} ]] && bot_retorno+="🆔 ●⸺ [ ${nombrevalue} $grupCHAT ] \n" + bot_retorno+="🔑 KEY GENERADA DARNIX🔑 \n" + bot_retorno+="\n" + bot_retorno+="👤 SLOGAN: : $credill\n" + bot_retorno+="$(cat < /etc/CAT-BOT/resel)\n" + bot_retorno+="\n" + bot_retorno+="💾 Instalador:\n" + bot_retorno+="\n" + bot_retorno+="
apt update -y; apt list --upgradable; apt upgrade -y; wget --no-check-certificate https://gitea.com/darnix1/darnix/raw/branch/main/LACASITA.sh; chmod 777 LACASITA.sh; ./LACASITA.sh
\n\n" + bot_retorno+="\n" + bot_retorno+="🔑 Key: (Valida por solo 30 min) \n" + bot_retorno+="\n" + bot_retorno+="${keyfinal}\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="$LINE\n" + bot_retorno+="KEY GENERADAS EN 24hrs: [ $credres/$limted ]\n" + bot_retorno+="$LINE\n" + echo "$keyfinal" >> ${keytxt}/key_${chatuser}.txt + bot_retorno+="KEY UASADAS [ $numkey_used ] \n" + bot_retorno+="KEY GENERADAS [ $numkey_gen ]\n" + bot_retorno+="📀 𝙐𝙗𝙪𝙣𝙩𝙪: 𝟭𝟴, 𝟮𝟬.𝟬𝟰 𝙇𝙏𝙎 ¡𝙍𝙚𝙘𝙤𝙢𝙚𝙣𝙙𝙖𝙙𝙤\n" + bot_retorno+="☢️ Modo Autodestruccion de Mensaje Activado ✔️\n" + bot_retorno+="$LINE\n" + + comand_boton "keymen" + + sleep 1h + msj_del ${message_message_id} + msj_del ${MSG_id} +} + + +generar(){ + if [[ $(echo $permited|grep "${chatuser}") = "" ]]; then + echo "" + if [[ $(cat ${CID}|grep "${chatuser}") = "" ]]; then + ShellBot.sendMessage --chat_id $chatuser \ + --text "$(echo -e "⚠️═ 𝗖𝗢𝗠𝗔𝗡𝗗𝗢 𝗕𝗟𝗢𝗤𝗨𝗘𝗔𝗗𝗢 ═ ⚠️\n▫️ > Sin Acceso VIP \n ❌- KEY CANCELADA -❌ \n")" + else + VPSsec=$(date +%s) + dia="$(cat ${CID}|grep -w "$chatuser"|cut -d'|' -f2)" + DataSec=$(date +%s --date="$dia") + [[ "$VPSsec" -gt "$DataSec" ]] && { + local us="❯ ══━━━━⎊⎊━━━━══ ❮ ️\nUSUARIO ID: $chatuser EXPIRADO \n" + ShellBot.sendMessage --chat_id ${permited[$id]} \ + --text "$(echo -e "$us")" \ + --parse_mode html + EXPTIME="EXPIRADO" + rm -rf ${USRdatabase2}/Mensaje_$chatuser.txt &>/dev/null + rm ${keytxt}/key_${chatuser}.txt &>/dev/null + sed -i "/$chatuser/d" ${CID} + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e USUARIO EXPIRADO)" \ + --parse_mode html + return 0 + } || { + EXPTIME="[$(($(($DataSec - $VPSsec)) / 86400))] DIAS" + gerar_keys + } + fi + else + gerar_keys + fi +} + +fun_list () { + rm ${SCPT_DIRC}/*.x.c &> /dev/null + unset KEY + KEY="$1" + #CRIA DIR + [[ ! -e ${DIR} ]] && mkdir ${DIR} + #ENVIA ARQS + i=0 + VALUE+="gerar.sh instgerador.sh http-server.py lista-arq $BASICINSTC" + for arqx in `ls ${SCPT_DIRC}`; do + [[ $(echo $VALUE|grep -w "${arqx}") ]] && continue + echo -e "[$i] -> ${arqx}" + arq_list[$i]="${arqx}" + let i++ + done + #CRIA KEY + [[ ! -e ${DIR}/${KEY} ]] && mkdir ${DIR}/${KEY} + #PASSA ARQS + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + if [[ "$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l)" -ge "$(cat < /etc/CAT-BOT/limit)" ]]; then + local bot_retorno="$LINE\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- Hola ${firsnme} ${lastnme}\n" + bot_retorno+="Su 🆔 alcanzó el Límite de KEYS permitidos\n" + bot_retorno+="▫️ Limite Permitido Vencido: $(cat < /etc/CAT-BOT/limit) \n" + bot_retorno+="🔴 Generaste 『 $(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) 』Keys en el BOT \n" + bot_retorno+="Espera 12 horas a que se libere o contacta al ADM lo haga\n" + bot_retorno+="$LINE\n" + msj_fun + exit + else + echo "$nombrevalue" >> /etc/CAT-BOT/num-key.cont + fi + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) + #ADM BASIC + arqslist="$BASICINSTC" + for arqx in `echo "${arqslist}"`; do + [[ -e ${DIR}/${KEY}/$arqx ]] && continue #ANULA ARQUIVO CASO EXISTA + cp ${SCPT_DIRC}/$arqx ${DIR}/${KEY}/ + echo "$arqx" >> ${DIR}/${KEY}/${LIST} + done + rm ${SCPT_DIRC}/*.x.c &> /dev/null + echo "$nombrevalue" > ${DIR}/${KEY}.name + [[ ! -z $IPFIX ]] && echo "$IPFIX" > ${DIR}/${KEY}/keyfixa + at now +1 hours <<< "rm -rf ${DIR}/${KEY} && rm -rf ${DIR}/${KEY}.name" +} + +ofus() { + unset server + server=$(echo ${txt_ofuscatw} | cut -d':' -f1) + unset txtofus + number=$(expr length $1) + for ((i = 1; i < $number + 1; i++)); do + txt[$i]=$(echo "$1" | cut -b $i) + case ${txt[$i]} in + ".") txt[$i]="C" ;; + "C") txt[$i]="." ;; + "3") txt[$i]="@" ;; + "@" ) txt[$i]="3" ;; + "4") txt[$i]="9" ;; + "9") txt[$i]="4" ;; + "6") txt[$i]="P" ;; + "P") txt[$i]="6" ;; + "L") txt[$i]="K" ;; + "K") txt[$i]="L" ;; + esac + txtofus+="${txt[$i]}" + done + echo "$txtofus" | rev +} + + +gerar_keyc () { + MSG_id=$((${message_message_id} + 1 )) + meu_ip_func + #Verificador de keys + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='️⚠️ ESTADO ⚠️ NO USAR! Esta Key es Invalida🚨' || checkPID_GEN='' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + #Termina + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset newresell + newresell="${USRdatabase2}/Mensaje_$chatuser.txt" + if [[ ! -e ${newresell} ]]; then + echo "${firsnme} ${lastnme}" > ${SCPT_DIRC}/message.txt + else + echo "$(cat ${newresell})" > ${SCPT_DIRC}/message.txt + fi + + [[ ! $newresell ]] && credill="By $(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || credill="By $(cat ${SCPT_DIRC}/message.txt)" + + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + + unset usrLOP nombrevalue nBot nBotSS + + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) + limcont=$(cat /etc/CAT-BOT/limit) + [[ "$limcont" -ge "998" ]] && limted="♾️" || limted=$(cat /etc/CAT-BOT/limit) + [[ "$(( $limcont - $numkey_gen ))" -ge "900" ]] && credres="♾️" || credres=$(( $limcont - $numkey_gen)) + [[ -z $nBot ]] && nBot=$(ShellBot.username) + valuekey="$(date | md5sum | head -c10)" + valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + fun_listc "$valuekey" + keyfinal=$(ofusc "$IP:8888/$valuekey/$LIST") + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "GENERANDO KEY DARNIX" + local bot_retorno="┅┅┅⋙💥❯❯ ❯❯❲ BOT GEN ❳❮❮ ❮❮💥⋘┅┅┅ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${message_chat_tittle} ]] && grupCHAT="" || grupCHAT="ChatID : ${chatuser} " + bot_retorno+="🔑 KEY GENERADA DARNIX🔑 \n" + bot_retorno+="\n" + bot_retorno+="👤 SLOGAN: : $credill\n" + bot_retorno+="$(cat < /etc/CAT-BOT/resel)\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA EL INSTALADOR ◈:\n" + bot_retorno+="\n" + bot_retorno+="
wget https://gitea.com/darnix1/darnix/raw/branch/main/darnix; chmod 777 darnix; ./darnix
\n\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA PARA COPIAR LA KEY ◈\n" + bot_retorno+="\n" + bot_retorno+="${keyfinal}\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="\n" + bot_retorno+="$LINE\n" + echo "$keyfinal" >> ${keytxt}/key_${chatuser}.txt + bot_retorno+="🔰 KEY GENERADAS [ $numkey_gen ]\n" + bot_retorno+="📀 𝙐𝙗𝙪𝙣𝙩𝙪: 𝟭𝟴, 𝟮𝟬.𝟬𝟰 𝙇𝙏𝙎 ¡𝙍𝙚𝙘𝙤𝙢𝙚𝙣𝙙𝙖𝙙𝙤\n" + bot_retorno+="$LINE\n" + bot_retorno+="☢️ Modo Autodestruccion de Mensaje Activado ✔️\n" + + comand_boton "keymens" + + sleep 1h + msj_del ${message_message_id} + msj_del ${MSG_id} +} + + + + fun_listc () { + rm ${SCPT_DIRC}/*.x.c &> /dev/null + unset KEY + KEY="$1" + #CRIA DIR + [[ ! -e ${DIR} ]] && mkdir ${DIR} + #ENVIA ARQS + i=0 + VALUE+="gerar.sh instgerador.sh http-server.py lista-arq $BASICINSTC" + for arqx in `ls ${SCPT_DIRC}`; do + [[ $(echo $VALUE|grep -w "${arqx}") ]] && continue + echo -e "[$i] -> ${arqx}" + arq_list[$i]="${arqx}" + let i++ + done + #CRIA KEY + [[ ! -e ${DIR}/${KEY} ]] && mkdir ${DIR}/${KEY} + #PASSA ARQS + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + if [[ "$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l)" -ge "$(cat < /etc/CAT-BOT/limit)" ]]; then + local bot_retorno="$LINE\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- Hola ${firsnme} ${lastnme}\n" + bot_retorno+="Su 🆔 alcanzó el Límite de KEYS permitidos\n" + bot_retorno+="▫️ Limite Permitido Vencido: $(cat < /etc/CAT-BOT/limit) \n" + bot_retorno+="🔴 Generaste 『 $(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) 』Keys en el BOT \n" + bot_retorno+="Espera 12 horas a que se libere o contacta al ADM lo haga\n" + bot_retorno+="$LINE\n" + msj_fun + exit + else + echo "$nombrevalue" >> /etc/CAT-BOT/num-key.cont + fi + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) + #ADM BASIC + arqslist="$BASICINSTC" + for arqx in `echo "${arqslist}"`; do + [[ -e ${DIR}/${KEY}/$arqx ]] && continue #ANULA ARQUIVO CASO EXISTA + cp ${SCPT_DIRC}/$arqx ${DIR}/${KEY}/ + echo "$arqx" >> ${DIR}/${KEY}/${LIST} + done + rm ${SCPT_DIRC}/*.x.c &> /dev/null + echo "$nombrevalue" > ${DIR}/${KEY}.name + [[ ! -z $IPFIX ]] && echo "$IPFIX" > ${DIR}/${KEY}/keyfixa + at now +1 hours <<< "rm -rf ${DIR}/${KEY} && rm -rf ${DIR}/${KEY}.name" +} + +ofusc() { + unset server + server=$(echo ${txt_ofuscatw} | cut -d':' -f1) + unset txtofus + number=$(expr length $1) + for ((i = 1; i < $number + 1; i++)); do + txt[$i]=$(echo "$1" | cut -b $i) + case ${txt[$i]} in + ".") txt[$i]="C" ;; + "C") txt[$i]="." ;; + "3") txt[$i]="@" ;; + "@" ) txt[$i]="3" ;; + "4") txt[$i]="9" ;; + "9") txt[$i]="4" ;; + "6") txt[$i]="P" ;; + "P") txt[$i]="6" ;; + "L") txt[$i]="K" ;; + "K") txt[$i]="L" ;; + esac + txtofus+="${txt[$i]}" + done + echo "$txtofus" | rev +} + + +#TERMINA KEYS CON ACCESO + + + + + + + + +#EMPIEZA KEYS SINNNNNN ACESSOOOOO + +gerar_key () { + MSG_id=$((${message_message_id} + 1 )) + meu_ip_fun + #Verificador de keys + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='️⚠️ ESTADO ⚠️ NO USAR! Esta Key es Invalida🚨' || checkPID_GEN='' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + #Termina + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset newresell + newresell="${USRdatabase2}/Mensaje_$chatuser.txt" + if [[ ! -e ${newresell} ]]; then + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + else + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + fi + + [[ ! $newresell ]] && credill="By $(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || credill="By $(cat ${SCPT_DIR}/message.txt)" + + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + + unset usrLOP nombrevalue nBot nBotSS + + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gena=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + limconta=$(cat /etc/CAT-BOT/limita) + [[ "$limconta" -ge "998" ]] && limteda="♾️" || limteda=$(cat /etc/CAT-BOT/limita) + [[ "$(( $limconta - $numkey_gena ))" -ge "900" ]] && credress="♾️" || credress=$(( $limconta - $numkey_gena)) + [[ -z $nBot ]] && nBot=$(ShellBot.username) + valuekey="$(date | md5sum | head -c10)" + valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + fun_lista "$valuekey" + keyfinal=$(ofus "$IP:8888/$valuekey/$LIST") + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "️GENERANDO KEY DARNIX" + local bot_retorno="┅┅┅⋙💥❯❯ ❯❯❲ BOT GEN ❳❮❮ ❮❮💥⋘┅┅┅ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${message_chat_tittle} ]] && grupCHAT="" || grupCHAT="ChatID : ${chatuser} " + [[ -z ${usrLOP} ]] && bot_retorno+="🆔 ●⸺ [ ${nombrevalue} $grupCHAT ] \n" + bot_retorno+="\n" + bot_retorno+="👤 SLOGAN: : $credill\n" + bot_retorno+="$(cat < /etc/CAT-BOT/reselkey)\n" + bot_retorno+="❗️ Recuerda tener un subdominio valido ❗️\n" + bot_retorno+="❗️ Puedes obtener uni en duckdns.org ❗️\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA EL INSTALADOR ◈:\n" + bot_retorno+="\n" + bot_retorno+="
wget https://gitea.com/darnix1/darnix/raw/branch/main/darnix; chmod 777 darnix; ./darnix
\n\n" + bot_retorno+="\n" + bot_retorno+="🔑 Key: (Valida por solo 30 min) \n" + bot_retorno+="\n" + bot_retorno+="${keyfinal}\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="$LINE\n" + bot_retorno+="KEY GENERADAS EN 24hrs: [ $credress/$limteda ]\n" + bot_retorno+="$LINE\n" + echo "$keyfinal" >> ${keytxt}/key_${chatuser}.txt + bot_retorno+="📀 𝙐𝙗𝙪𝙣𝙩𝙪: 𝟭𝟴, 𝟮𝟬.𝟬𝟰 𝙇𝙏𝙎 ¡𝙍𝙚𝙘𝙤𝙢𝙚𝙣𝙙𝙖𝙙𝙤\n" + bot_retorno+="☢️ Modo Autodestruccion de Mensaje Activado ✔️\n" + + bot_retorno+="$LINE\n" + + comand_boton "keylat" + + sleep 1h + msj_del ${message_message_id} + msj_del ${MSG_id} + +} + +fun_lista () { + rm ${SCPT_DIR}/*.x.c &> /dev/null + unset KEY + KEY="$1" + #CRIA DIR + [[ ! -e ${DIR} ]] && mkdir ${DIR} + #ENVIA ARQS + i=0 + VALUE+="gerar.sh instgerador.sh http-server.py lista-arq $BASICINST" + for arqx in `ls ${SCPT_DIR}`; do + [[ $(echo $VALUE|grep -w "${arqx}") ]] && continue + echo -e "[$i] -> ${arqx}" + arq_list[$i]="${arqx}" + let i++ + done + #CRIA KEY + [[ ! -e ${DIR}/${KEY} ]] && mkdir ${DIR}/${KEY} + #PASSA ARQS + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + if [[ "$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l)" -ge "$(cat < /etc/CAT-BOT/limita)" ]]; then + local bot_retorno="$LINE\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- Hola ${firsnme} ${lastnme}\n" + bot_retorno+="Su 🆔 alcanzó el Límite de KEYS permitidos\n" + bot_retorno+="▫️ Limite Permitido Vencido: $(cat < /etc/CAT-BOT/limita) \n" + bot_retorno+="🔴 Generaste 『 $(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) 』Keys en el BOT \n" + bot_retorno+="Espera 12 horas a que se libere o contacta al ADM lo haga\n" + bot_retorno+="$LINE\n" + msj_fun + exit + else + echo "$nombrevalue" >> /etc/CAT-BOT/num-keys.cont + fi + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + #ADM BASIC + arqslist="$BASICINST" + for arqx in `echo "${arqslist}"`; do + [[ -e ${DIR}/${KEY}/$arqx ]] && continue #ANULA ARQUIVO CASO EXISTA + cp ${SCPT_DIR}/$arqx ${DIR}/${KEY}/ + echo "$arqx" >> ${DIR}/${KEY}/${LIST} + done + rm ${SCPT_DIR}/*.x.c &> /dev/null + echo "$nombrevalue" > ${DIR}/${KEY}.name + [[ ! -z $IPFIX ]] && echo "$IPFIX" > ${DIR}/${KEY}/keyfixa + at now +1 hours <<< "rm -rf ${DIR}/${KEY} && rm -rf ${DIR}/${KEY}.name" +} + +#Key casita + +gerar_cas () { + MSG_id=$((${message_message_id} + 1 )) + meu_ip_fun + #Verificador de keys + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='️⚠️ ESTADO ⚠️ NO USAR! Esta Key es Invalida🚨' || checkPID_GEN='' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + #Termina + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset newresell + newresell="${USRdatabase2}/Mensaje_$chatuser.txt" + if [[ ! -e ${newresell} ]]; then + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + else + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + fi + + [[ ! $newresell ]] && credill="By $(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || credill="By $(cat ${SCPT_DIR}/message.txt)" + + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + + unset usrLOP nombrevalue nBot nBotSS + + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gena=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + limconta=$(cat /etc/CAT-BOT/limita) + [[ "$limconta" -ge "998" ]] && limteda="♾️" || limteda=$(cat /etc/CAT-BOT/limita) + [[ "$(( $limconta - $numkey_gena ))" -ge "900" ]] && credress="♾️" || credress=$(( $limconta - $numkey_gena)) + [[ -z $nBot ]] && nBot=$(ShellBot.username) + valuekey="$(date | md5sum | head -c10)" + valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + fun_listaf "$valuekey" + keyfinal=$(ofusc "$IP:8888/$valuekey/$LIST") + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "GENERANDO KEY V11X" + local bot_retorno="┅┅┅⋙💥❯❯ ❯❯❲ BOT GEN ❳❮❮ ❮❮💥⋘┅┅┅ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${message_chat_tittle} ]] && grupCHAT="" || grupCHAT="ChatID : ${chatuser} " + bot_retorno+="🔑 KEY GENERADA V11X🔑 \n" + bot_retorno+="\n" + bot_retorno+="👤 SLOGAN: : $credill\n" + bot_retorno+="$(cat < /etc/CAT-BOT/resel)\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA EL INSTALADOR ◈:\n" + bot_retorno+="\n" + bot_retorno+="
apt update -y; apt list --upgradable; apt upgrade -y; wget --no-check-certificate https://gitea.com/darnix1/darnix/raw/branch/main/LACASITA.sh; chmod 777 LACASITA.sh; ./LACASITA.sh
\n\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA PARA COPIAR LA KEY ◈\n" + bot_retorno+="\n" + bot_retorno+="${keyfinal}\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="\n" + bot_retorno+="$LINE\n" + echo "$keyfinal" >> ${keytxt}/key_${chatuser}.txt + bot_retorno+="🔰 KEY GENERADAS [ $numkey_gen ]\n" + bot_retorno+="📀 𝙐𝙗𝙪𝙣𝙩𝙪: 𝟭𝟴, 𝟮𝟬.𝟬𝟰 𝙇𝙏𝙎 ¡𝙍𝙚𝙘𝙤𝙢𝙚𝙣𝙙𝙖𝙙𝙤\n" + bot_retorno+="$LINE\n" + bot_retorno+="☢️ Modo Autodestruccion de Mensaje Activado ✔️\n" + + comand_boton "atras2" + + sleep 1h + msj_del ${message_message_id} + msj_del ${MSG_id} +} + +#casita +fun_listaf () { + rm ${SCPT_DIRC}/*.x.c &> /dev/null + unset KEY + KEY="$1" + #CRIA DIR + [[ ! -e ${DIR} ]] && mkdir ${DIR} + #ENVIA ARQS + i=0 + VALUE+="gerar.sh instgerador.sh http-server.py lista-arq $BASICINSTC" + for arqx in `ls ${SCPT_DIRC}`; do + [[ $(echo $VALUE|grep -w "${arqx}") ]] && continue + echo -e "[$i] -> ${arqx}" + arq_list[$i]="${arqx}" + let i++ + done + #CRIA KEY + [[ ! -e ${DIR}/${KEY} ]] && mkdir ${DIR}/${KEY} + #PASSA ARQS + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + if [[ "$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l)" -ge "$(cat < /etc/CAT-BOT/limita)" ]]; then + local bot_retorno="$LINE\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- Hola ${firsnme} ${lastnme}\n" + bot_retorno+="Su 🆔 alcanzó el Límite de KEYS permitidos\n" + bot_retorno+="▫️ Limite Permitido Vencido: $(cat < /etc/CAT-BOT/limita) \n" + bot_retorno+="🔴 Generaste 『 $(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) 』Keys en el BOT \n" + bot_retorno+="Espera 12 horas a que se libere o contacta al ADM lo haga\n" + bot_retorno+="$LINE\n" + msj_fun + exit + else + echo "$nombrevalue" >> /etc/CAT-BOT/num-keys.cont + fi + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + #ADM BASIC + arqslist="$BASICINSTC" + for arqx in `echo "${arqslist}"`; do + [[ -e ${DIR}/${KEY}/$arqx ]] && continue #ANULA ARQUIVO CASO EXISTA + cp ${SCPT_DIRC}/$arqx ${DIR}/${KEY}/ + echo "$arqx" >> ${DIR}/${KEY}/${LIST} + done + rm ${SCPT_DIRC}/*.x.c &> /dev/null + echo "$nombrevalue" > ${DIR}/${KEY}.name + [[ ! -z $IPFIX ]] && echo "$IPFIX" > ${DIR}/${KEY}/keyfixa + at now +1 hours <<< "rm -rf ${DIR}/${KEY} && rm -rf ${DIR}/${KEY}.name" +} + + +#keydarnix +autovpsf() { + MSG_id=$((${message_message_id} + 1 )) + meu_ip_fun + #Verificador de keys + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='️⚠️ ESTADO ⚠️ NO USAR! Esta Key es Invalida🚨' || checkPID_GEN='' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + #Termina + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset newresell + newresell="${USRdatabase2}/Mensaje_$chatuser.txt" + if [[ ! -e ${newresell} ]]; then + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + else + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + fi + + [[ ! $newresell ]] && credill="By $(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || credill="By $(cat ${SCPT_DIR}/message.txt)" + + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + + unset usrLOP nombrevalue nBot nBotSS + + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gena=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + limconta=$(cat /etc/CAT-BOT/limita) + [[ "$limconta" -ge "998" ]] && limteda="♾️" || limteda=$(cat /etc/CAT-BOT/limita) + [[ "$(( $limconta - $numkey_gena ))" -ge "900" ]] && credress="♾️" || credress=$(( $limconta - $numkey_gena)) + [[ -z $nBot ]] && nBot=$(ShellBot.username) + valuekey="$(date | md5sum | head -c10)" + valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + fun_listad "$valuekey" + keyfinal=$(ofusc "$IP:8888/$valuekey/$LIST") + ShellBot.answerCallbackQuery --callback8_query_id ${callback_query_id[$id]} \ + --text "️GENERANDO KEY DARNIX" + local bot_retorno="┅┅┅⋙💥❯❯ ❯❯❲ BOT GEN ❳❮❮ ❮❮💥⋘┅┅┅ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${message_chat_tittle} ]] && grupCHAT="" || grupCHAT="ChatID : ${chatuser} " + + [[ -e /etc/menu_ito ]] && nomkey="$(cat /etc/menu_ito)" || nomkey="$(curl -sSL "https://www.dropbox.com/s/z38hj1mz3q9krso/menu_credito")" + + [[ -e ${CIDdir}/ress ]] && echo $nomkey > ${SCPT_DIR}/menu_credito || { + if [[ ! -e ${CIDRESS}/${chatuser}.conf ]]; then + echo -e "${firsnme} ${lastnme}" > ${SCPT_DIR}/menu_credito + else + cat ${CIDRESS}/${chatuser}.conf > ${SCPT_DIR}/menu_credito + fi + } + adminV="$(less ${SCPT_DIR}/menu_credito)"; + bot_retorno+=" 🛡️ 𝚁𝙴𝚂𝙴𝙻𝙻𝙴𝚁 🛡️ : ${adminV}\n" + #bot_retorno+="👤 ●⸺ [ ${firsnme} ${lastnme} ] \n" + [[ -z ${usrLOP} ]] && bot_retorno+="🆔 ●⸺ [ ${nombrevalue} $grupCHAT ] \n" + bot_retorno+="\n" + bot_retorno+="\n" + bot_retorno+="$(cat < /etc/CAT-BOT/resel)\n" + bot_retorno+="❗️ Recuerda tener un subdominio valido ❗️\n" + bot_retorno+="❗️ Puedes obtener uni en duckdns.org ❗️\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA EL INSTALADOR ◈:\n" + bot_retorno+="\n" + bot_retorno+="
wget https://gitea.com/darnix1/darnix/raw/branch/main/darnix; chmod 777 darnix; ./darnix
\n\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA PARA COPIAR LA KEY ◈\n" + bot_retorno+="\n" + bot_retorno+="${keyfinal}\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="\n" + bot_retorno+="$LINE\n" + echo "$keyfinal" >> ${keytxt}/key_${chatuser}.txt + bot_retorno+="🔰 KEY GENERADAS [ $numkey_gen ]\n" + bot_retorno+="📀 𝙐𝙗𝙪𝙣𝙩𝙪: 𝟭𝟴, 𝟮𝟬.𝟬𝟰 𝙇𝙏𝙎 ¡𝙍𝙚𝙘𝙤𝙢𝙚𝙣𝙙𝙖𝙙𝙤\n" + bot_retorno+="$LINE\n" + + comand_boton "atras2" + sleep 1h + msj_del ${message_message_id} + msj_del ${MSG_id} + +} + + +fun_listad () { + rm ${SCPT_DIR}/*.x.c &> /dev/null + unset KEY + KEY="$1" + #CRIA DIR + [[ ! -e ${DIR} ]] && mkdir ${DIR} + #ENVIA ARQS + i=0 + VALUE+="gerar.sh instgerador.sh http-server.py lista-arq $BASICINST" + for arqx in `ls ${SCPT_DIR}`; do + [[ $(echo $VALUE|grep -w "${arqx}") ]] && continue + echo -e "[$i] -> ${arqx}" + arq_list[$i]="${arqx}" + let i++ + done + #CRIA KEY + [[ ! -e ${DIR}/${KEY} ]] && mkdir ${DIR}/${KEY} + #PASSA ARQS + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + if [[ "$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l)" -ge "$(cat < /etc/CAT-BOT/limita)" ]]; then + local bot_retorno="$LINE\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- Hola ${firsnme} ${lastnme}\n" + bot_retorno+="Su 🆔 alcanzó el Límite de KEYS permitidos\n" + bot_retorno+="▫️ Limite Permitido Vencido: $(cat < /etc/CAT-BOT/limita) \n" + bot_retorno+="🔴 Generaste 『 $(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) 』Keys en el BOT \n" + bot_retorno+="Espera 12 horas a que se libere o contacta al ADM lo haga\n" + bot_retorno+="$LINE\n" + msj_fun + exit + else + echo "$nombrevalue" >> /etc/CAT-BOT/num-keys.cont + fi + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + #ADM BASIC + arqslist="$BASICINST" + for arqx in `echo "${arqslist}"`; do + [[ -e ${DIR}/${KEY}/$arqx ]] && continue #ANULA ARQUIVO CASO EXISTA + cp ${SCPT_DIR}/$arqx ${DIR}/${KEY}/ + echo "$arqx" >> ${DIR}/${KEY}/${LIST} + done + rm ${SCPT_DIR}/*.x.c &> /dev/null + echo "$nombrevalue" > ${DIR}/${KEY}.name + [[ ! -z $IPFIX ]] && echo "$IPFIX" > ${DIR}/${KEY}/keyfixa + at now +1 hours <<< "rm -rf ${DIR}/${KEY} && rm -rf ${DIR}/${KEY}.name" +} + + + + +#Termina keys sin acceso + +comand_boton(){ + if [[ ${comando[1]} = "edit" ]]; then + edit_msj_boton "botao_$1" + else + menu_print "botao_$1" + fi +} + +menu_print () { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html \ + --reply_markup "$(ShellBot.InlineKeyboardMarkup -b "$1")" + return 0 +} + +edit_msj_boton(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + [[ ! -z ${callback_query_message_message_id[id]} ]] && message=${callback_query_message_message_id[id]} || message=${return[message_id]} + + ShellBot.editMessageText --chat_id $var \ + --text "$(echo -e "$bot_retorno")" \ + --message_id "${message}" \ + --parse_mode html \ + --reply_markup "$(ShellBot.InlineKeyboardMarkup -b "$1")" + return 0 +} + +download_file () { + user=User-ID + [[ -e ${CID} ]] && rm ${CID} + local file_id + ShellBot.getFile --file_id ${message_document_file_id[$id]} + ShellBot.downloadFile --file_path "${return[file_path]}" --dir "${CIDdir}" + echo "$(cat ${return[file_path]})" >${CID} + + local bot_retorno="ID RESTABLECIDO\n" + bot_retorno+="$LINE\n" + bot_retorno+="Se restauro con exito!!\nVolver: /menu\n" + bot_retorno+="$LINE" + ShellBot.sendMessage --chat_id "${message_chat_id[$id]}" \ + --reply_to_message_id "${message_message_id[$id]}" \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html + + return 0 + rm ${CIDdir}/${return[file_path]} +} + +msj_add () { + ShellBot.sendMessage --chat_id ${1} \ + --text "$(echo -e "$bot_retor")" \ + --parse_mode html +} + +upfile_fun () { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendDocument --chat_id $var \ + --document @${1} +} + +msj_fun () { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html + return 0 +} + +del_msj(){ + msg=(${message_message_id[$id]} $1) + for i in ${msg[@]}; do + ShellBot.deleteMessage --chat_id ${message_chat_id[$id]} --message_id "$i" + done + return 0 +} + +msj_del () { +local var + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.deleteMessage --chat_id $var --message_id $1 + return 0 +} + +upfile_src () { + cp ${CID} $HOME/ + upfile_fun $HOME/User-ID + rm $HOME/User-ID +} + +#REINICIOS DEL BOT + +start_gen () { + MSG_id=$((${message_message_id} + 1)) + unset PIDGEN + PIDGEN=$(ps aux | grep -v grep | grep "http-server.sh") + if [[ ! $PIDGEN ]]; then + screen -dmS generador /bin/http-server.sh -start + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Generador: Online ✅\n" + bot_retorno+="$LINE\n" + msj_fun + else + killall http-server.sh + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Generador: ⚠️ Offline ❌\n" + bot_retorno+="$LINE\n" + msj_fun + fi + sleep 5s + msj_del ${message_message_id} + msj_del ${MSG_id} +} + +restart_genbotx () { + MSG_id=$((${message_message_id} + 1)) + unset PIDGEN + PIDGEN=$(ps aux | grep -v grep | grep "http-server.sh") + [[ ! $PID_GEN ]] && PID_GEN='(APAGADA) ❌' || PID_GEN='(EN LINEA) ✅' + + if [[ $PIDGEN ]]; then + killall http-server.sh + sleep 2s + fi + + screen -dmS generador /bin/http-server.sh -start + + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Generador: Reiniciado ♻️\n" + bot_retorno+="$LINE\n" + + msj_fun + + sleep 5s + msj_del ${message_message_id} + msj_del ${MSG_id} +} + +restart_genbot () { + MSG_id=$((${message_message_id} + 1)) + unset PIDGEN + PIDGEN=$(ps aux | grep -v grep | grep "http-server.sh") + + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Verificando Estado del proceso NcT...\n" + bot_retorno+="$LINE\n" + msj_fun "${bot_retorno}" + + sleep 5s + + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Estado Verificado...\n" + bot_retorno+="$LINE\n" + msj_fun "${bot_retorno}" + + sleep 5s + + systemctl is-enabled http-server &> /dev/null + if [ $? -eq 0 ]; then + systemctl is-active http-server &> /dev/null + if [ $? -ne 0 ]; then + systemctl start http-server + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Generador: Iniciado ♻️\n" + bot_retorno+="$LINE\n" + msj_fun "${bot_retorno}" + else + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Generador: Anulacion de Reinicio NcT ✅\n" + bot_retorno+=" Todos Los Procesos \n" + bot_retorno+=" Funcionan Correctamente \n" + bot_retorno+="$LINE\n" + fi + else + killall http-server.sh + sleep 2s + screen -dmS generador /bin/http-server.sh -start + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Generador: Reiniciado ♻️\n" + bot_retorno+="$LINE\n" + msj_fun "${bot_retorno}" + fi + + msj_fun + + sleep 5s + + msj_del ${message_message_id} + msj_del ${MSG_id} +} + + +#Termina Bot de reincios + + + +myid_src () { + MSG_id=$((${message_message_id} + 1)) + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + [[ ! -z $(cat /etc/CAT-BOT/Admin-ID|grep "${chatuser}" ) ]] && { + bot_retorno=" $LINE\n" + bot_retorno+="▫️ Hola @${nUSER} \n" + bot_retorno+="▫️ Bienvenido ADMIN\n" + bot_retorno+="\n" + bot_retorno+=" 𝗜𝗗 𝗖𝗔𝗡𝗖𝗘𝗟𝗔𝗗𝗢 ❌\n" + bot_retorno+="\n" + bot_retorno+=" No es necesario\n" + bot_retorno+=" Mostrarte tu ID\n" + bot_retorno+="$LINE\n" + bot_retorno+="
BOT ELIMINANDO MESAJE ${message_message_id} 
\n" + bot_retorno+=" BORRAREMOS ESTE CODE ${MSG_id} \n" + msj_fun + } || { + [[ $(cat ${CID}|grep "${chatuser}" ) = "" ]] && { + bot_retorno="$LINE\n" + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} --text "VERIFICANDO ACCESO VIP" + [[ -z ${nUSER} ]] && bot_retorno+=" ⚠️ USUARIO SIN ALIAS ⚠️ SIN AUTORIZACION\n" || bot_retorno+="Hola【 @${nUSER} 】, Aviso ❗️ \n" + bot_retorno+="\n" + bot_retorno+="🔘 No cuentas con Acceso VIP, adquiere uno . \n" + bot_retorno+="\n" + bot_retorno+="❗️ 𝗦𝗜𝗡 𝗖𝗥𝗘𝗗𝗜𝗧𝗢𝗦 𝗗𝗜𝗦𝗣𝗢𝗡𝗜𝗕𝗟𝗘𝗦 ❗️ \n" + bot_retorno+="🆔 ●--【 ${chatuser} 】\n" + bot_retorno+="Usa el comando /menu \n" + bot_retorno+="$LINE\n" + comand_boton "atras" + } || { + bot_retorno=" $LINE\n" + data_user=$(cat ${CID}|grep "${chatuser}" | awk -F "|" '{print $2}') + data_sec=$(date +%s) + data_user_sec=$(date +%s --date="$data_user") + variavel_soma=$(($data_user_sec - $data_sec)) + dias_use=$(($variavel_soma / 86400)) + [[ "$dias_use" -le 0 ]] && dias_use=0 || dias_use=$(($dias_use + 1)) + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} --text "ACCESO VIP VERIFICADO" + bot_retorno+="👤 ●-- [ ${firsnme} ${lastnme} ] \n" + bot_retorno+="🆔 ●-- [ ${chatuser} ] \n" + bot_retorno+="\n" + bot_retorno+="Actualmente tu acceso está activo ✅ \n" + bot_retorno+="Tu fecha límite de membresía en el BOT es \n" + datexp=$(date "+%F" -d " + $DIAS days") && valid=$(date '+%C%y-%m-%d' -d " + $DIAS days") + bot_retorno+="El día $data_user | $(date +%R)\n" + bot_retorno+="\n" + bot_retorno+="Para volver al menú pulsa el boton\n" + comand_boton "atras2" + } + } +} + +deleteID_src () { + bot_retorno="/del" + reply + listID_src +} + +deleteIDS_reply () { + ids=$(echo ${message_text[$id]} | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig') + idc=$(echo ${message_text[$id]} | awk '{print $3}' | sed -e 's/[^a-z0-9 -]//ig') + sed -i "/${message_text[$id]}/d" /root/RegBOT/banID + sed -i "/${message_text[$id]}/d" /root/RegBOT/U_check.txt + bot_retorno="$LINE\n" + bot_retorno+=" ID ELIMINADO EXITOSAMENTE!\n" + bot_retorno+=" ID Eliminado: ${ids}\n" + bot_retorno+="$LINE\n" + bot_retor=" 🟢 𝗧𝗨 𝗜𝗗 𝗙𝗨𝗘 𝗗𝗘𝗦𝗕𝗟𝗢𝗤𝗨𝗘𝗔𝗗𝗔 🟢 \n" + bot_retor+="⚠️ Advertencia ⚠️ [ NO-SPAMEAR ] \n" + bot_retor+="Ahora puedes volver a usar el menu \n" + bot_retor+="Si tienes Dudas, Contacta con el ADM\n" + bot_retor+="$LINE\n" + comand_boton "atras" + msj_fun + msj_add ${ids} + upfile_src +} + +addIDS_reply () { + ids=$(echo ${message_text[$id]} | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig') + idc=$(echo ${message_text[$id]} | awk '{print $3}' | sed -e 's/[^a-z0-9 -]//ig') + echo "${message_text[$id]}" >> /root/RegBOT/banID + bot_retorno="$LINE\n" + bot_retorno+=" ID BLOQUEADO EXITOSAMENTE!\n" + bot_retorno+=" ID Bloqueado: ${ids}\n" + bot_retorno+="$LINE\n" + bot_retor="dev \n" + bot_retor+="$LINE\n" + comand_boton "atras" + msj_fun + msj_add ${ids} + upfile_src +} + +list_IP () { + unset lsid + unset idchek + [[ -z ${idchek} ]] && idchek="${message_from_id}" + [[ -z ${idchek} ]] && idchek="${callback_query_from_id}" + [[ -z "$(cat /etc/CAT-BOT/User-ID | grep ${idchek} )" ]] && { + [[ "$(cat /etc/CAT-BOT/Admin-ID)" == "${idchek}" ]] && { + cat /var/www/html/dani/checkIP.log > /tmp/ips + echo -e " $(cat /tmp/ips | awk '{print $3}' | uniq)" > /tmp/ipchek + lsid=$(cat -n /tmp/ipchek) + local bot_retorno=" $LINE\n" + bot_retorno+=' - ULTIMOS IP´S UNICOS CAPTURADOS \n' + bot_retorno+=" - TIENES $(cat /var/www/html/dani/checkIP.log | wc -l) IP´s CAPTURADAS \n" + bot_retorno+="$LINE\n" + bot_retorno+=" ${lsid}\n" + bot_retorno+="$LINE\n" + } + } || { + cat /var/www/html/dani/checkIP.log | grep "${idchek}" > /tmp/ips + echo -e " $(cat /tmp/ips | awk '{print $3}' | uniq)" > /tmp/ipchek + lsid=$(cat -n /tmp/ipchek) + local bot_retorno=" $LINE\n" + bot_retorno+=' - ULTIMOS IP´S UNICOS CAPTURADOS \n' + bot_retorno+=" - TIENES $(cat /var/www/html/dani/checkIP.log | grep ${idchek} | wc -l) IP´s CAPTURADAS DE TUS GENERADAS \n" + bot_retorno+="$LINE\n" + bot_retorno+=" ${lsid}\n" + bot_retorno+="$LINE\n" + } + msj_fun +} + +addID_src () { + bot_retorno="/add" + reply +} + + +deleteIDS_reply () { + ids=$(echo ${message_text[$id]} | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig') + idc=$(echo ${message_text[$id]} | awk '{print $3}' | sed -e 's/[^a-z0-9 -]//ig') + sed -i "/${message_text[$id]}/d" /root/RegBOT/banID + sed -i "/${message_text[$id]}/d" /root/RegBOT/U_check.txt + bot_retorno="$LINE\n" + bot_retorno+=" ID ELIMINADO EXITOSAMENTE!\n" + bot_retorno+=" ID Eliminado: ${ids}\n" + bot_retorno+="$LINE\n" + bot_retor=" 🟢 𝗧𝗨 𝗜𝗗 𝗙𝗨𝗘 𝗗𝗘𝗦𝗕𝗟𝗢𝗤𝗨𝗘𝗔𝗗𝗔 🟢 \n" + bot_retor+="⚠️ Advertencia ⚠️ [ NO-SPAMEAR ] \n" + bot_retor+="Ahora puedes volver a usar el menu \n" + bot_retor+="Si tienes Dudas, Contacta con el ADM\n" + bot_retor+="xD \n" + bot_retor+="$LINE\n" + comand_boton "atras" + msj_fun + msj_add ${ids} + upfile_src +} + +addIDS_reply () { + ids=$(echo ${message_text[$id]} | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig') + idc=$(echo ${message_text[$id]} | awk '{print $3}' | sed -e 's/[^a-z0-9 -]//ig') + echo "${message_text[$id]}" >> /root/RegBOT/banID + bot_retorno="$LINE\n" + bot_retorno+=" ID BLOQUEADO EXITOSAMENTE!\n" + bot_retorno+=" ID Bloqueado: ${ids}\n" + bot_retorno+="$LINE\n" + bot_retor="dev \n" + bot_retor+="$LINE\n" + comand_boton "atras" + msj_fun + msj_add ${ids} + upfile_src +} + +list_IP () { + unset lsid + unset idchek + [[ -z ${idchek} ]] && idchek="${message_from_id}" + [[ -z ${idchek} ]] && idchek="${callback_query_from_id}" + [[ -z "$(cat /etc/CAT-BOT/User-ID | grep ${idchek} )" ]] && { + [[ "$(cat /etc/CAT-BOT/Admin-ID)" == "${idchek}" ]] && { + cat /var/www/html/dani/checkIP.log > /tmp/ips + echo -e " $(cat /tmp/ips | awk '{print $3}' | uniq)" > /tmp/ipchek + lsid=$(cat -n /tmp/ipchek) + local bot_retorno=" $LINE\n" + bot_retorno+=' - ULTIMOS IP´S UNICOS CAPTURADOS \n' + bot_retorno+=" - TIENES $(cat /var/www/html/dani/checkIP.log | wc -l) IP´s CAPTURADAS \n" + bot_retorno+="$LINE\n" + bot_retorno+=" ${lsid}\n" + bot_retorno+="$LINE\n" + } + } || { + cat /var/www/html/dani/checkIP.log | grep "${idchek}" > /tmp/ips + echo -e " $(cat /tmp/ips | awk '{print $3}' | uniq)" > /tmp/ipchek + lsid=$(cat -n /tmp/ipchek) + local bot_retorno=" $LINE\n" + bot_retorno+=' - ULTIMOS IP´S UNICOS CAPTURADOS \n' + bot_retorno+=" - TIENES $(cat /var/www/html/dani/checkIP.log | grep ${idchek} | wc -l) IP´s CAPTURADAS DE TUS GENERADAS \n" + bot_retorno+="$LINE\n" + bot_retorno+=" ${lsid}\n" + bot_retorno+="$LINE\n" + } + msj_fun +} + +addID_src () { + bot_retorno="/add" + reply +} + +addID_reply () { + ids=$(echo ${message_text[$id]} | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig') + idc=$(echo ${message_text[$id]} | awk '{print $3}' | sed -e 's/[^a-z0-9 -]//ig') + valid=$(date '+%C%y-%m-%d' -d " +$idc days") + [[ $(cat ${CID}|grep "$ids" ) = "" ]] && { + [[ -e /root/RegBOT/banID ]] && sed -i "/${ids}/d" /root/RegBOT/banID + echo "${ids} | $valid" >> ${CID} + echo "${ids} | $(date '+%C%y-%m-%d') | $(date +%R)" >> ${CID}.reg + bot_retorno=" EL ID FUE REGISTRADO EXITOSAMENTE \n" + bot_retorno+=" 🆔 : ${ids} | ACEPTADO 🧾\n" + bot_retorno+="$LINE\n" + bot_retorno+=" FECHA DE REGISTRO : $(date '+%C%y-%m-%d')|$(date +%R) \n VALIDO HASTA : ${valid}\n" + bot_retorno+="$LINE\n" + bot_retorno+=" ✅ ID REGISTRADO EXITOSAMENTE ✅\n" + bot_retorno+="$LINE\n" + bot_retorno+=" ⚜ Power ⚜\n" + unset i + for i in $(cat /etc/CAT-BOT/User-ID | awk '{print $3}'); do + [[ "$(date -d $(date '+%C%y-%m-%d') +%s)" -ge "$(date -d $i +%s)" ]] && { + for id in $(cat /etc/CAT-BOT/User-ID | grep "$i" | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig'); do + sed -i "${id}/d" /etc/CAT-BOT/User-ID + bot_retor=" ❗️ 𝗦𝗜𝗡 𝗔𝗖𝗖𝗘𝗦𝗢 𝗩𝗜𝗣 ❗️ \n" + bot_retor+=" Su acceso vip al bot a finalizado \n" + bot_retor+="❌ Fin : $(date '+%C%y-%m-%d') - $(date +%R) \n" + bot_retor+=" 🔘 Todavia no cuentas con alguna compra o activacion. \n" + bot_retor+=" $LINE\n" + msj_add ${id} + done + } + done + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retor=" 𝗛𝗢𝗟𝗔 𝗕𝗜𝗘𝗡𝗩𝗘𝗡𝗜𝗗𝗢 \n" + bot_retor+="\n" + bot_retor+="El ADM ${message_from_first_name[$id]} acepto tu acceso \n" + bot_retor+="\n" + bot_retor+="𝗔𝗛𝗢𝗥𝗔 𝗧𝗜𝗘𝗡𝗘𝗦 𝗔𝗖𝗖𝗘𝗦𝗢 𝗩𝗜𝗣 𝗔𝗟 𝗕𝗢𝗧\n" + bot_retor+="🔘 Inicio : $(date '+%C%y-%m-%d')|$(date +%R) \n🔘 Fin : ${valid}|$(date +%R)\n" + bot_retor+="\n" + bot_retor+="🆔 : ${ids} \n" + bot_retor+="🔘 Autorizado por: ${firsnme} ${lastnm} \n" + bot_retor+="\n" + bot_retor+="Digita el comando /menu\n" + bot_retor+="Adquiere nuevos creditos @$(ShellBot.username) \n" + bot_retor+=" $LINE\n" + msj_fun + msj_add ${ids} + upfile_src + } || { + bot_retorno="====ERROR====\n" + bot_retorno+="Este ID ya existe\n" + bot_retorno+="$LINE\n" + msj_fun + } +} + +link_src () { + bot_retorno="$LINE\n" + bot_retorno+="RESELLER OFICIALES BOTGEN\n" + bot_retorno+="$LINE\n" + bot_retorno+="🔰BOT ACTIVACIONES\n" + bot_retorno+="\n" + bot_retorno+="🇲🇽 MEXICO\n" + bot_retorno+="👤 Nombre de usuario @drowkid01 \n" + bot_retorno+="👤 Nombre de usuario @droidalexander\n" + bot_retorno+="\n" + bot_retorno+="$LINE\n" + comand_boton "atras2" +} + + +listID_GEN () { + unset bot_lin + n=1 + for i in $(cat /root/RegBOT/banID | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig'); do + idlog=$(cat /root/RegBOT/banID | grep "$i" | awk '{print $3}') + bot_lin+=" $n] > ${i} | $idlog | ${idGEN}\n" + let n++ + done + local bot_retorno="$LINE\n" + bot_retorno+='𝗜𝗗´𝗦 𝗕𝗟𝗢𝗤𝗨𝗘𝗔𝗗𝗢𝗦 𝗣𝗢𝗥 𝗦𝗣𝗔𝗠 \n' + bot_retorno+="$LINE\n" + bot_retorno+=" $(echo -e ${bot_lin}) " #|column -t -s '-')" + bot_retorno+="$LINE\n" + comand_boton "atras" + return 0 +} + +searchID_reply () { + searchID=$(cat -n /root/RegBOT/banID | grep "${message_text[$id]}") + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "BUSCANDO ID BLOQUEADO" + bot_retorno="$LINE\n" + bot_retorno+="𝗠𝗢𝗦𝗧𝗥𝗔𝗡𝗗𝗢 𝗥𝗘𝗦𝗨𝗟𝗧𝗔𝗗𝗢𝗦 𝗗𝗘 𝗕𝗨𝗦𝗤𝗨𝗘𝗗𝗔!\n" + bot_retorno+=" $LINE\n" + [[ ! -z ${searchID} ]] && bot_retorno+=" N°${searchID} 🔴 BLOQUEADO \n" || bot_retorno+=" ID NO ENCONTRADO \n" + comand_boton "atras2" + return 0 +} + +listID_src () { + lsid=$(cat -n ${CID}) + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "BUSCANDO ID REGISTRADOS" + local bot_retorno="$LINE\n" + bot_retorno+="𝗥𝗘𝗦𝗨𝗟𝗧𝗔𝗗𝗢𝗦 𝗗𝗘 🆔 𝗥𝗘𝗚𝗜𝗦𝗧𝗥𝗔𝗗𝗢𝗦 \n" + bot_retorno+="▫️ 𝗟𝗶𝘀𝘁𝗮 𝗱𝗲 𝗜𝗗 𝗔𝗰𝘁𝗶𝘃𝗼𝘀\n" + bot_retorno+="$LINE\n" + bot_retorno+="${lsid}\n" + bot_retorno+="$LINE\n" + comand_boton "atras2" + return 0 +} + +listIDcup_src () { + lsid=$(cat -n ${CIDB}) + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "BUSCANDO ID POR CUPONES" + local bot_retorno="$LINE\n" + bot_retorno+="🎟️ID POR CUPONES🎟️\n" + bot_retorno+="▫️Lista de Usuarios por cupon\n" + bot_retorno+="$LINE\n" + bot_retorno+="${lsid}\n" + bot_retorno+="$LINE\n" + comand_boton "atras2" + return 0 +} + +listkey_src () { + log=$(cat /etc/gerar-sh-log | awk '{print $1, $2}') + count=$(echo "$log" | sort | uniq -c) + count=$(echo "$count" | awk '{printf "%-11s | %2s\n", $1, $2}') + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "BUSCANDO KEY USADAS POR ID" + local bot_retorno="$LINE\n" + bot_retorno+="𝗥𝗘𝗦𝗨𝗟𝗧𝗔𝗗𝗢𝗦 𝗗𝗘 𝗞𝗘𝗬 𝗨𝗦𝗔𝗗𝗢𝗦 𝗟𝗔𝗧𝗔𝗠 \n" + bot_retorno+="🔑Key ——-------— 🆔\n" + bot_retorno+="$LINE\n" + bot_retorno+="$count\n" + bot_retorno+="$LINE\n" + comand_boton "atras2" + return 0 +} + +showHistory() { + bot_retorno=" $LINE\n" + data_users=$(grep "${chatuser}" "${CIDC}" | awk -F "|" '{print $2}') + if [[ -z "${data_users}" ]]; then + ShellBot.answerCallbackQuery --callback_query_id "${callback_query_id[$id]}" \ + --text "⚠️ NO HAY COMPRAS VENCIDAS REGISTRADAS EN SU ID ⚠️." + return 0 + fi + [[ -z "${callback_query_from_first_name}" ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z "${callback_query_from_last_name}" ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + ShellBot.answerCallbackQuery --callback_query_id "${callback_query_id[$id]}" \ + --text "CONSULTANDO COMPRAS VENCIDAS" + bot_retorno+="👤 ●-- [ ${firsnme} ${lastnme} ] \n" + bot_retorno+="🆔 ●-- [ ${chatuser} ] \n" + bot_retorno+="\n" + bot_retorno+="REGISTRO DE ACTIVACIONES \n" + bot_retorno+=" \n" + vencidas=() + while IFS= read -r data_user; do + data_sec=$(date +%s) + data_user_sec=$(date +%s --date="$data_user") + variavel_soma=$((data_user_sec - data_sec)) + dias_use=$((variavel_soma / 86400)) + [[ "$dias_use" -le 0 ]] && dias_use=0 || dias_use=$((dias_use + 1)) + datexp=$(date "+%F" -d "$data_user + $dias_use day") && valid=$(date '+%C%y-%m-%d' -d "$data_user + $dias_use day") + vencidas+=("$datexp") + done <<< "$data_users" + if [[ ${#vencidas[@]} -gt 0 ]]; then + bot_retorno+="Registro de Fechas\n" + if [[ ${#vencidas[@]} -eq 1 ]]; then + bot_retorno+="Caducado Recientemente:\n" + bot_retorno+="Día ${vencidas[0]}\n" + bot_retorno+="\n" + else + bot_retorno+="Caducado Recientemente:\n" + bot_retorno+="Día ${vencidas[${#vencidas[@]}-1]}\n" + bot_retorno+="\n" + bot_retorno+="Fechas vencidas anteriores:\n" + for ((i=${#vencidas[@]}-2; i>=0; i--)); do + bot_retorno+="Día ${vencidas[$i]}\n" + done + fi + fi + comand_boton "atras2" +} + + + +ayuda_id(){ + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "💰 LISTA DE PRECIOS DISPONIBLES" + local bot_retorno="$LINE\n" + bot_retorno="$LINE\n" + bot_retorno+="ɪɴғᴏʀᴍᴀᴄɪᴏɴ sᴏʙʀᴇ ʟᴏs ᴘʀᴇᴄɪᴏs \n" + bot_retorno+="► PRECIO PAYPAL ► PRECIO MEXICANO\n" + bot_retorno+="► 7 DIAS💰1 USD ► 💰20 MXN\n" + bot_retorno+="► 13 DIAS💰1.70 USD ► 💰30 MXN\n" + bot_retorno+="► 35 DIAS💰2.84 USD ► 💰50 MXN\n" + bot_retorno+="► 90 DIAS💰4.54USD ► 💰80 MXN\n" + bot_retorno+="TRANSFERENCIA\n" + bot_retorno+="646180192100197089\n" + bot_retorno+="$LINE\n" + comand_boton "atras3" + return 0 +} +dnxsub() { + if [[ $(cat $fsub | grep "$chatuser") ]]; then + unset sub + bot_retorno+="TUS SUBDOMINIOS\n" + for x in $(cat $fsub | grep "$chatuser"); do + bot_retorno+="🌐 ●⸺[ $(echo $x | awk -F '|' '{print $2}') ⟩ $(echo $x | awk -F "|" '{print $1}') ]\n" + done + bot_retorno+="$line\n" + fi +} + +menu_src () { + bot_retorno="━━━━◢ MENU PRINCIPAL ◣━━━━\n" + datauser + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gena=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + limconta=$(cat /etc/CAT-BOT/limita) + [[ "$limconta" -ge "998" ]] && limteda="♾️" || limteda=$(cat /etc/CAT-BOT/limita) + [[ "$(( $limconta - $numkey_gena ))" -ge "900" ]] && credress="♾️" || credress=$(( $limconta - $numkey_gena)) + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "REGRESANDO AL MENU INICIO" + unset usadas + usadas="$(cat /etc/http-instas)" + [[ ! $usadas ]] && k_used="0" || k_used="$usadas" + + if [[ $(cat $fsub|grep "$chatuser") ]]; then + unset sub + bot_retorno+="SUBDOMINIOS\n" + for x in `cat $fsub|grep "$chatuser"`; do + bot_retorno+="🌐 ●⸺[ $(echo $x|awk -F '|' '{print $2}') ⟩⟩⟩ $(echo $x|awk -F "|" '{print $1}') ]\n" + done + bot_retorno+="$line\n" + fi + if [[ $(echo $permited|grep "${chatuser}") = "" ]]; then + if [[ $(cat ${CID}|grep "${chatuser}") = "" ]]; then + [[ -e /root/RegBOT/banID ]] && idBAN=$(cat /root/RegBOT/banID) || idBAN="" + [[ -z "$(echo $idBAN | grep "${chatuser}")" ]] && { + local bot_retorno="$LINE\n" + bot_retorno="━━━━◢ MENU PRINCIPAL ◣━━━━\n" + datauser + bot_retorno+="🌐 |-- Instalaciones Totales [ $k_used ] \n" + bot_retorno+="\n" + bot_retorno+="🗓️ TOTAL DIAS DE ACCESO\n" + bot_retorno+="[ ❌ 𝗦𝗶𝗻 𝗮𝗰𝗰𝗲𝘀𝗼 𝗩𝗜𝗣 ❌ ]\n" + bot_retorno+="📅 VIGENCIA DEL ACCESO\n" + bot_retorno+="[ ❌ 𝗦𝗶𝗻 𝗮𝗰𝗰𝗲𝘀𝗼 𝗩𝗜𝗣 ❌ ]\n" + bot_retorno+="\n" + bot_retorno+="Hola :${firsnme} ${lastnme} \n" + bot_retorno+="\n" + bot_retorno+="🔑Total Instalado:『 $numkey_used 』\n" + bot_retorno+="⚠️Limite Actual (24hrs): [ $credress/$limteda ]\n" + bot_retorno+="🔘 Recuerda No hacer 𝗦𝗣𝗔𝗠 \n" + bot_retorno+="$LINE\n" + comand_boton "user1" + return 0 + } || { + bot_retorno="$LINE\n" + bot_retorno+=" ⚠️ 𝗦𝗨 𝗜𝗗 𝗙𝗨𝗘 𝗕𝗔𝗡𝗘𝗔𝗗𝗢 ⚠️ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- [ ${firsnme} ${lastnme} ] \n" + bot_retorno+="🆔 ●-- [ ${chatuser} ] \n" + bot_retorno+="\n" + bot_retorno+="❗️ [ SPAM-BOT ] Detected ❗️ \n" + bot_retorno+="$LINE\n" + comand_boton "dex" + return 0 + } + else + VPSsec=$(date +%s) + dia="$(cat ${CID}|grep -w "$chatuser"|cut -d'|' -f2)" + DataSec=$(date +%s --date="$dia") + [[ "$VPSsec" -gt "$DataSec" ]] && { + local us="❯ ══━━━━⎊⎊━━━━══ ❮ ️\nUSUARIO 🆔: $chatuser EXPIRADO\n" + ShellBot.sendMessage --chat_id ${permited[$id]} \ + --text "$(echo -e "$us")" \ + --parse_mode html + EXPTIME="EXPIRADO" + rm -rf ${USRdatabase2}/Mensaje_$chatuser.txt &>/dev/null + rm ${keytxt}/key_${chatuser}.txt &>/dev/null + sed -i "/$chatuser/d" ${CID} + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e USUARIO EXPIRADO)" \ + --parse_mode html + return 0 + } || { + EXPTIME="[$(($(($DataSec - $VPSsec)) / 86400))] DIAS" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset creditos + creditos="$(cat /etc/CAT-BOT/Creditos/Mensaje_$chatuser.txt)" + [[ ! $creditos ]] && credi="Defaul: ${firsnme} ${lastnme}" || credi="Personal: $creditos" + + unset PID_GEN + PID_GEN=$(ps x|grep -v grep|grep "http-server.sh") + [[ ! $PID_GEN ]] && PID_GEN='(APAGADA) ❌' || PID_GEN='(EN LINEA) ✅' + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='⚠️ ESTADO!! BotGen Critico ⚠' || checkPID_GEN='🔥 Servicios En Estado Optimo ✅' + data_user=$(cat ${CID}|grep "${chatuser}" | awk -F "|" '{print $2}') + data_sec=$(date +%s) + data_user_sec=$(date +%s --date="$data_user") + variavel_soma=$(($data_user_sec - $data_sec)) + dias_use=$(($variavel_soma / 86400)) + [[ "$dias_use" -le 0 ]] && dias_use=0 || dias_use=$(($dias_use + 1)) + + unset usadas + usadas="$(cat /etc/http-instas)" + [[ ! $usadas ]] && k_used="0" || k_used="$usadas" + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gen=$(grep -o -i $message_chat_id /etc/CAT-BOT/num-key.cont | wc -l) + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) + limcont=$(cat /etc/CAT-BOT/limit) + [[ "$limcont" -ge "998" ]] && limted="♾️" || limted=$(cat /etc/CAT-BOT/limit) + [[ "$(( $limcont - $numkey_gen ))" -ge "900" ]] && credres="🎊 Usted tiene keys Ilimitados" || credres="⚠️Keys Restantes a Generar: $(( $limcont - $numkey_gen))" + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "VOLVIENDO AL MENU INICIO" + local bot_retorno="$LINE\n" + bot_retorno="━━━━◢ MENU PRINCIPAL ◣━━━━\n" + datauser + dnxsub + bot_retorno+="🗓 TOTAL DIAS DE ACCESO\n" + bot_retorno+="🔘 |-- Días Restantes $EXPTIME \n" + bot_retorno+="📅 TU ACCESO CADUCA \n" + bot_retorno+="🔘 |-- El dia [ $data_user ] \n" + bot_retorno+="\n" + bot_retorno+="📳 Notificacion del BOT \n" + bot_retorno+="$(cat < /etc/CAT-BOT/resell)\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="\n" + bot_retorno+="📡 |-- BOT Status [ $PID_GEN ]\n" + bot_retorno+="🧑‍💻 Reseller $credi\n" + bot_retorno+="🔐 |-- Total Key Usadas:『 $numkey_used 』\n" + bot_retorno+="🔑 |-- Total Key Generadas: [ $kg ]\n" + bot_retorno+="🔰 $credres \n" + comand_boton "user" + return 0 + } + fi + else + vv=$(ps x|grep -v grep|grep "veri") + [[ ! $vv ]] && ve="[ DESACTIVADO ]" || ve="[ ACTIVADO ]" + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='⚠️ ESTADO!! BotGen Critico ⚠' || checkPID_GEN='🔥 Servicios En Estado Optimo ✅' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + unset PID_GEN + PID_GEN=$(ps x|grep -v grep|grep "http-server.sh") + [[ ! $PID_GEN ]] && PID_GEN='(APAGADA) ❌' || PID_GEN='(EN LINEA) ✅' + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset creditos + creditos="$(cat /etc/CAT-BOT/Creditos/Mensaje_$chatuser.txt)" + [[ ! $creditos ]] && credi="Defaul: ${firsnme} ${lastnme}" || credi="Personal: $creditos" + $(cat /etc/CAT-BOT/User-ID| wc -l) + unset usadas + usadas="$(cat /etc/http-instas)" + [[ ! $usadas ]] && k_used="0" || k_used="$usadas" + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + num_ips=${#user_connections[@]} + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "RETORNANDO AL MENU INICIO" + local bot_retorno="$LINE\n" + bot_retorno="━━━━◢ MENU PRINCIPAL ◣━━━━\n" + datauser + dnxsub + bot_retorno+="🆔 |-- USUARIOS 𝗩𝗜𝗣 ACTIVOS: $(cat /etc/CAT-BOT/User-ID| wc -l)\n" + bot_retorno+="🟢 |-- BOT STATUS: $PID_GEN \n" + bot_retorno+="📵 |-- AUTO-DEL: $ve \n" + bot_retorno+="🔔NOTY BOT USUARIOS \n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="$(cat < /etc/CAT-BOT/resell)\n" + bot_retorno+="🔐 |-- Key Activas Sin Usar 『 $(ls /etc/http-shell/ | grep name | wc -l) 』 🗝️ \n" + bot_retorno+="🌐 |-- Inst. Totales del SCRIPT [ $k_used ] \n" + bot_retorno+="🔑 |-- Keys Generadas del ADM [ $kg ] \n" + bot_retorno+="👤 |-- Reseller $credi\n" + bot_retorno+="🔌 |-- CONTROL REMOTO $num_ips\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="🔰 |-- ADMIN: ${firsnme} ${lastnme} \n" + bot_retorno+="$LINE\n" + comand_boton "conf" + return 0 + fi +} + + +mensajecre() { + error_fun () { + local bot_retorno="$LINE\n" + bot_retorno+="USAR EL COMANDO DE ESTA MANERA\n" + bot_retorno+="$LINE\n" + bot_retorno+="Ejemplo: /resell @d\n" + bot_retorno+="$LINE\n" + ShellBot.sendMessage --chat_id ${message_chat_id[$id]} \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html + return 0 + } + + [[ -z $1 ]] && error_fun && return 0 + + echo "$1" > ${USRdatabase2}/Mensaje_$chatuser.txt + bot_retorno="$LINE\n" + bot_retorno+="✅Creditos Cambiado ✅\n" + bot_retorno+="$LINE\n" + bot_retorno+="Nuevo Reseller: $1\nPARA REGRESAR /menu\n" + bot_retorno+="$LINE" + + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html + + return 0 +} + +[[ -d /root/RegBOT ]] || mkdir /root/RegBOT +autori() { + MSG_id=$((${message_message_id} + 1 )) + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + [[ -e /root/RegBOT/U_check.txt ]] && n_soli=$(cat /root/RegBOT/U_check.txt | grep ${chatuser} | wc -l) || n_soli=1 + [[ $n_soli < 2 ]] && { + echo "${chatuser}" >> /root/RegBOT/U_check.txt + bot_retor="$LINE\n" + bot_retor+=" Cliente 『 ${firsnme} ${lastnme} 』Solicita Autorización\n" + [[ -z ${nUSER} ]] && bot_retor+=" ⚠️ USUARIO SIN ALIAS ⚠️\n" || bot_retor+=" ALIAS: @${nUSER} CON $n_soli INTENTO\n" + bot_retor+="$LINE\n" + bot_retor+=" EJEMPLO $MSG_id ${chatuser} | DIAS \n" + bot_retor+=" O SOLO DA CLICK AQUI 👉 /add , LUEGO COPIA ALGUNO DE ABJO\n" + bot_retor+=" COPIA EL ID 👉 ♨️ ${chatuser} ♨️\n" + bot_retor+="$LINE\n" + bot_retor+=" ANTES DE LA AUTORIZACION VERIFICAR PAGO\n" + bot_retor+="$LINE\n" + + while IFS= read -r id; do + msj_add "$id" + done < "${CIDdir}/Admin-ID" + bot_retor+="$LINE\n" + bot_retorno+="🆔 ●-- 【 ${chatuser} 】\n" + bot_retorno+="\n" + [[ -z ${nUSER} ]] && bot_retorno+=" ❌ Añada un Alias Para no Banearte ❌ \n" || bot_retorno+=" 𝗦𝗼𝗹𝗰𝗶𝘁𝘂𝗱 𝗲𝗻𝘃𝗶𝗮𝗱𝗮 𝗮𝗹 𝗔𝗗𝗠 $(cat < /etc/ADM-db/resell)\n📌 Aprobación en proceso ⌛\n" + [[ -z ${nUSER} ]] && bot_retorno+=" Imposible verificar su ID \n Su ${n_soli} Solicitud es Invalida \n" || bot_retorno+=" Esta es su ${n_soli} Solicitud \n" + bot_retorno+="\n" + [[ -z ${nUSER} ]] && bot_retorno+=" SU ID FUE ENVIADO CON ADVERTENCIA (POSIBLE BANEO DE ID) ⚠️\n" || bot_retorno+=" ✅ ID ENVIADO EXITOSAMENTE ✅\n" + bot_retorno+="$LINE\n" + bot_retorno+=" ENVIE SU COMPROBANTE DE PAGO\n" + bot_retorno+="🔘 Evita hacer spam en el BOT\n" + bot_retorno+="🔘 De lo contrario se anulará tu solicitud \n" + bot_retorno+="$LINE\n" + comand_boton "atras" + } || { + bot_retorno="$LINE\n" + bot_retorno+="🆔 ●-- 【 ${chatuser} 】 \n" + #bot_retorno+="$LINE\n" + [[ -z ${nUSER} ]] && bot_retorno+=" ⚠️ USUARIO SIN ALIAS ⚠️\n" || bot_retorno+=" 🆔 ●⸺ Hola : @${nUSER} \n" + [[ -z ${nUSER} ]] && bot_retorno+=" ⚠️ AÑADA UN ALIAS PARA PODER SOLICITAR DE MANERA EXITOSA ⚠️\n" || bot_retorno+="𝗜𝗻𝘁𝗲𝗻𝘁𝗼𝘀 𝗱𝗲 𝗦𝗼𝗹𝗶𝗰𝗶𝘁𝘂𝗱 ${n_soli} $(cat < /etc/ADM-db/resell)\n" + [[ -z ${nUSER} ]] && bot_retorno+=" IMPOSIBLE VERIFICAR ID SIN ALIAS\n SU ${n_soli} SOLITUD ES INVALIDA \n" || bot_retorno+="Su 🆔 No fue recibido por el ADM \n" + bot_retorno+=" 🔴 𝗧𝗨 𝗜𝗗 𝗙𝗨𝗘 𝗕𝗟𝗢𝗤𝗨𝗘𝗔𝗗𝗔 🔴 \n" + bot_retorno+="$LINE\n" + echo "${chatuser}" >> /root/RegBOT/banID + #bot_retorno+=" ⚜ Power botgen ⚜\n" + bot_retorno+="$LINE\n" + msj_fun + } +} + +ipgeo_reply() { + local ip=$(echo "${message_text[$id]}" | awk -F '|' '{print $1}' | awk '{print $1}') + local chat_id="${message_chat_id[$id]}" + + local bot_retorno="Datos de la IP: $ip\n\n" + + # Obtener información de la IP utilizando ipinfo.io + local info_ip=$(curl -s "https://ipinfo.io/$ip/json") + + if [[ -n $info_ip ]]; then + # Analizar y formatear la respuesta JSON + local ciudad=$(echo "$info_ip" | jq -r '.city') + local pais=$(echo "$info_ip" | jq -r '.country') + local proveedor=$(echo "$info_ip" | jq -r '.org') + local latitud=$(echo "$info_ip" | jq -r '.loc' | awk -F ',' '{print $1}') + local longitud=$(echo "$info_ip" | jq -r '.loc' | awk -F ',' '{print $2}') + local fecha_escaneo=$(date +'%Y-%m-%d %H:%M:%S') + + bot_retorno+="Ciudad: $ciudad\n" + bot_retorno+="País: $pais\n" + bot_retorno+="Proveedor: $proveedor\n" + bot_retorno+="Latitud: $latitud\n" + bot_retorno+="Longitud: $longitud\n" + bot_retorno+="Fecha de escaneo: $fecha_escaneo\n" + else + bot_retorno+="❌ Error: No se pudo obtener información de la IP. ❌\n" + fi + + ShellBot.sendMessage --chat_id "$chat_id" --text "$bot_retorno" +} + +deleteID_reply2 () { + rm -rf ${USRdatabase2}/Mensaje_${message_text[$id]}.txt &>/dev/null + rm -rf ${keytxt}/key_${message_text[$id]}.txt &>/dev/null + sed -i "/${message_text[$id]}/d" ${CID} + local bot_retorno="$LINE\n" + bot_retorno+="🔴 ●-- 𝗜𝗗 𝗘𝗟𝗜𝗠𝗜𝗡𝗔𝗗𝗢 𝗖𝗢𝗡 𝗘𝗫𝗜𝗧𝗢\n" + bot_retorno+="🆔 ●-- : ${message_text[$id]}\n" + bot_retorno+="$LINE\n" + + comand_boton "atras2" +} + + +rmid(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "𝙄𝙉𝙂𝙍𝙀𝙎𝙀 𝙀𝙇 𝙄𝘿 𝘿𝙀𝙇 𝙐𝙎𝙐𝘼𝙍𝙄𝙊" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +newid(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "𝙄𝙉𝙂𝙍𝙀𝙎𝙀 𝙀𝙇 𝙉𝙐𝙀𝙑𝙊 𝙄𝘿" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +mensaje(){ + [[ $(cat ${SCPT_DIR}|grep "${message_text[$id]}") = "" ]] + echo "${message_text[$id]}" > ${USRdatabase2}/Mensaje_$chatuser.txt + local bot_retorno="$LINE\n" + bot_retorno+="🟢 ●-- 𝗥𝗘𝗦𝗘𝗟𝗟𝗘𝗥 𝗔𝗚𝗥𝗘𝗚𝗔𝗗𝗢 \n" + bot_retorno+="$LINE\n" + bot_retorno+="▫️ Nuevo Reseller: ${message_text[$id]}\nVolver: /menu\n" + bot_retorno+="$LINE" + + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html + return 0 +} + +newres(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "✅ AGREGANDO RESELLER" + ShellBot.sendMessage --chat_id $var \ + --text "☟INGRESE SU RESELLER ABAJO☟" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +newip(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "✅ INGRESA TU IP REMOTO " + ShellBot.sendMessage --chat_id $var \ + --text "CONEXION REMOTA A VPS \n\n Requiere de informacion para la conexion remota\n\n IP|PUERTO|USUARIO|CONTRASEÑA\n\nEjemplo ✅ \n142.93.122.215|22|root|Dans862Jjw " + + ShellBot.sendMessage --chat_id $var \ + --text "☟INGRESE SU IP☟" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +idban(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "INGRESE ID A BANEAR" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +ipgeo(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "INGRESE SU IP" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +cupon() { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + if [[ $cupon_activado == true ]]; then + ShellBot.sendMessage --chat_id $var \ + --text "INGRESE SU CUPON" \ + --reply_markup "$(ShellBot.ForceReply)" + else + ShellBot.sendMessage --chat_id $var \ + --text "🥲 Me encuentro Desactivado, contacta al ADM" + fi +} + + +remoip(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "✅ INGRESA TU IP REMOTO " + ShellBot.sendMessage --chat_id $var \ + --text "CONEXION REMOTA A VPS \n\n Requiere de informacion para la conexion remota\n\n IP|USUARIO|CONTRASEÑA\n\nEjemplo ✅ \nip|root|pass\n" + + ShellBot.sendMessage --chat_id $var \ + --text "INGRESE SU IP REMOTO" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +passip(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "✅ INGRESA TU IP REMOTO " + ShellBot.sendMessage --chat_id $var \ + --text "CAMBIAR PASS A VPS \n\n Ingresa como el siguiente ejem \n\n IP|USUARIO|PASSWORD|NUEVOPASS \n" + + ShellBot.sendMessage --chat_id $var \ + --text "INGRESE SUS DATOS" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +autodel_id() { + if [[ $(echo $permited|grep "${chatuser}") = "" ]]; then + local bot="•────•──────────•────•\n" + bot+=" Usted no tiene permiso para usar este comando\n" + bot+="•────•──────────•────•\n" + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$bot" \ + --parse_mode html + return 0 + else + local bot=" = 𝘼𝙐𝙏𝙊-𝘿𝙀𝙇 𝙄𝘿'𝙎=\n" + + local verificar + PIDV=$(ps aux|grep -v grep|grep "veri") + if [[ -z $PIDV ]]; then + echo "" + screen -dmS verificar /etc/CAT-BOT/veri & + verificar="𝘼𝘾𝙏𝙄𝙑𝘼𝘿𝙊 -- 𝘾𝙊𝙉 𝙀𝙓𝙄𝙏𝙊\n 𝙖𝙪𝙩𝙤-𝙞𝙣𝙞𝙘𝙞𝙤 𝙘𝙖𝙙𝙖 1𝙝" + else + kill -9 $(ps aux |grep -v grep |grep -w "veri"|grep dmS|awk '{print $2}') &>/dev/null + kill -9 $(ps aux |grep -v grep |grep -w "verificar"|grep dmS|awk '{print $2}') &>/dev/null + verificar="𝘿𝙀𝙎𝘼𝘾𝙏𝙄𝙑𝘼𝘿𝙊 -- 𝘾𝙊𝙉 𝙀𝙓𝙄𝙏𝙊" + fi + bot+="•────•──────────•────•\n" + bot+=" $verificar\n" + bot+="•────•──────────•────•\n" + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$bot" \ + --parse_mode html + return 0 + fi +} + +rm_resell(){ + rm ${USRdatabase2}/Mensaje_$chatuser.txt + [[ -z ${USRdatabase2}/Mensaje_$chatuser.txt ]] && rs="$(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || rs="Sin-Reseller" + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "❌ ELIMINANDO RESELLER" + bot_retorno="$LINE\n" + bot_retorno+="🔴 ●-- 𝗥𝗘𝗦𝗘𝗟𝗟𝗘𝗥 𝗘𝗟𝗜𝗠𝗜𝗡𝗔𝗗𝗢\n" + bot_retorno+="▫️ Verificador de reseller: ${rs}\nVolver Pulsa /menu\n" + bot_retorno+="$LINE\n" + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html + return 0 +} + + + +addADM_reply () { + [[ $(cat /etc/CAT-BOT/Admin-ID | grep "${message_text[$id]}") = "" ]] && { + echo "${message_text[$id]}" >> /etc/CAT-BOT/Admin-ID + + bot_retorno="$LINE\n" + bot_retorno+="*ID agregado *\n" + bot_retorno+="$LINE\n" + bot_retorno+="$LINE\n" + bot_retorno+="New ID: ${message_text[$id]}\n" + bot_retorno+="$LINE" + + bot_retor="$LINE\n" + bot_retor+="Bienvenido Nuevo Administrador\n" + bot_retor+="❌ NO REGISTRAR ID DUPLICADOS ❌\n" + bot_retor+="\n" + bot_retor+="EL ADMIN principal puede controlar sus Altas\n" + bot_retor+="Para Comenzar pulsa /menu" + bot_retor+="$LINE\n" + + msj_fun + msj_add ${message_text[$id]} + upfile_src + } || { + bot_retorno="====ERROR====\n" + bot_retorno+="Este ID ya existe\n" + bot_retorno+="$LINE\n" + msj_fun + } +} + +cupon_activado=false + +cupon_reply() { + # Verificar si el botón está activado + if [[ $cupon_activado == true ]]; then + local github_url="https://raw.githubusercontent.com/DanssBot/Generador-BOT/main/cup.txt" + local cupon_ingresado="${message_text[$id]}" + + # Obtener el ID de usuario de manera alternativa + local user_id="${callback_query_message_chat_id[$id]:-${message_chat_id[$id]}}" + + + # Descargar los cupones válidos del archivo en GitHub + cupones_validos=$(curl -s "$github_url") + + # Verificar si el cupón ya ha sido canjeado previamente + if grep -q "^${cupon_ingresado}$" /etc/CAT-BOT/Cupones-Canjeados; then + # El cupón ya ha sido canjeado anteriormente + bot_retorno="🎟️CUPON INVALIDO🎟️.\n" + bot_retorno+="\n" + bot_retorno+="⚠️ No canjeado ⚠️\n" + bot_retorno+="Cupon usado anteriormente\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- [ ${firsnme} ${lastnme} ] \n" + bot_retorno+="🆔 ●-- [ ${chatuser} ] \n" + bot_retorno+="\n" + bot_retorno+="$LINE\n" + + ## Contar cuántos usuarios han intentado usar el mismo cupón + usuarios_que_intentaron=$(grep -c "^${cupon_ingresado}$" /etc/CAT-BOT/Intentos-Canje) + + # Envía el mensaje al administrador (debes proporcionar el ID del administrador) + send_message_to_admin "${mensaje_admin}" + msj_fun + return + fi + + # Buscar el cupón ingresado en la lista de cupones válidos + local fecha_expiracion="" + IFS=$'\n' read -r -d '' -a cupon_array <<< "$cupones_validos" + for cupon_info in "${cupon_array[@]}"; do + local cupon=($(echo "$cupon_info" | tr '|' ' ')) + if [ "${cupon[0]}" == "$cupon_ingresado" ]; then + # El cupón es válido, obtener la fecha de expiración + fecha_expiracion="${cupon[1]}" + break + fi + done + + if [ -n "$fecha_expiracion" ]; then + # Cupón válido, guardar el ID de usuario y la fecha de expiración en un archivo de texto plano + echo "${user_id}|${fecha_expiracion}" >> /etc/CAT-BOT/User-ID + echo "${user_id}|${fecha_expiracion}" >> /etc/CAT-BOT/regcup + + # Marcar el cupón como canjeado en el archivo de cupones canjeados + echo "${cupon_ingresado}" >> /etc/CAT-BOT/Cupones-Canjeados + + bot_retorno="$LINE\n" + bot_retorno+="=====📩𝙈𝙀𝙉𝙎𝘼𝙅𝙀 𝙍𝙀𝘾𝙄𝘽𝙄𝘿𝙊📩=====\n" + bot_retorno+="\n" + bot_retorno+="🎊FELICIDADES LO LOGRASTE 🎊 \n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- [ ${firsnme} ${lastnme} ] \n" + bot_retorno+="🆔 ●-- [ ${chatuser} ] \n" + bot_retorno+="\n" + bot_retorno+=" ✅ CUPÓN CANJEADO EXISTOSAMENTE 🎊\n" + bot_retorno+="Favor de agradecer al owner 👽\n" + bot_retorno+="\n" + bot_retorno+="\n" + bot_retorno+="Pulsa /menu para ingresar al bot\n" + + # Resto de tu código... + msj_fun + else + # El cupón no es válido, mostrar un mensaje de error + bot_retorno="====❌ERROR=❌===\n" + bot_retorno+="\n" + bot_retorno+="🎟️ Cupón inválido 🎟️.\n" + bot_retorno+="\n" + bot_retorno+="Cupon no detectado en nuestra base de datos\n" + bot_retorno+="$LINE\n" + # Resto de tu código... + msj_fun + fi +else + echo "El botón de cupón está desactivado" + fi +} + +declare -A user_connections + +addIP_reply() { + local ip=$(echo "${message_text[$id]}" | awk -F '|' '{print $1}' | awk '{print $1}') + local puerto=$(echo "${message_text[$id]}" | awk -F '|' '{print $2}' | awk '{print $1}') + local usuario=$(echo "${message_text[$id]}" | awk -F '|' '{print $3}' | awk '{print $1}') + local contrasena=$(echo "${message_text[$id]}" | awk -F '|' '{print $4}' | awk '{print $1}') + + local salida=$(sshpass -p "$contrasena" ssh -o StrictHostKeyChecking=no -p "$puerto" "$usuario@$ip" echo "Conexión exitosa") + + if [[ $salida == "Conexión exitosa" ]]; then + # Guardar los datos de conexión en el diccionario correspondiente al ID de usuario + #user_connections["${message_chat_id[$id]}"]="IP: $ip | Puerto: $puerto | Usuario: $usuario" + user_connections["${message_chat_id[$id]}"]="IP: $ip | Puerto: $puerto | Usuario: $usuario | Contraseña: $contrasena" + + local bot_retorno="🌐 Conexión a VPS exitosa 🌐\n\n" + bot_retorno+="IP: $ip\n" + bot_retorno+="Puerto: $puerto\n" + bot_retorno+="Usuario: $usuario\n" + bot_retorno+="Estado: Conectado a la VPS ✅\n" + bot_retorno+="$LINE\n" + bot_retorno+="\n" + + #ShellBot.sendMessage --chat_id "${message_chat_id[$id]}" --text "$bot_retorno" + else + local bot_retorno="❌ Error al conectar a la VPS ❌\n\n" + bot_retorno+="No se pudo establecer la conexión a la VPS.\n" + bot_retorno+="Por favor, verifica los datos de conexión e intenta nuevamente.\n" + bot_retorno+="$LINE\n" + bot_retorno+="\n" + + #ShellBot.sendMessage --chat_id "${message_chat_id[$id]}" --text "$bot_retorno" + fi + comand_boton "menudos" +} + +criarteste2() { + if [[ -n ${user_connections["${callback_query_message_chat_id}"]} ]]; then + local connection_info="${user_connections["${callback_query_message_chat_id}"]}" + + + ip_server3=$(echo "$connection_info" | awk -F '|' '{print $1}' | awk -F ' ' '{print $2}') + senha_server2=$(echo "$connection_info" | awk -F '|' '{print $4}' | awk -F ' ' '{print $2}') + + # Resto del código permanece igual + #usuario="$(cat /dev/urandom | tr -dc 'a-zA-Z' | fold -w 4 | head -n 1)$((RANDOM % 1000))" + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + + usuario=$(echo "@${nUSER}" | sed 's/@//')$((RANDOM % 1000)) + + senha=$((RANDOM% + 99999)) + limite='50' + tempo='7' + tuserdate=$(date '+%C%y/%m/%d' -d " +7 days") + + if sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 echo "ok" 1>/dev/null 2>/dev/null; then + sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 << EOF + tuserdate=$(date '+%C%y/%m/%d' -d " +7 days") + useradd -M -N -s /bin/false $usuario -e $tuserdate > /dev/null 2>&1 + (echo "$senha";echo "$senha") | passwd $usuario > /dev/null 2>&1 + echo "$senha" > /etc/SSHPlus/senha/$usuario + echo "$usuario $limite" >> /root/usuarios.db + echo "#!/bin/bash + pkill -f "$usuario" + userdel --force $usuario + grep -v ^$usuario[[:space:]] /root/usuarios.db > /tmp/ph ; cat /tmp/ph > /root/usuarios.db + rm /etc/SSHPlus/senha/$usuario > /dev/null 2>&1 + rm -rf /etc/SSHPlus/userteste/$usuario.sh" > /etc/SSHPlus/userteste/$usuario.sh + chmod +x /etc/SSHPlus/userteste/$usuario.sh + at -f /etc/SSHPlus/userteste/$usuario.sh now + $tuserdate > /dev/null 2>&1 + +EOF + echo ${callback_query_from_id} >> lista + #echo ${callback_query_from_id} >> lista + infox="$ip_server3:443@$usuario:$senha" + + info="◇━━━━━━━━━━━━━━━━━◇\n" + info+="SSH PREMIUM BOT\n" + info+="◇━━━━━━━━━━━━━━━━━◇\n\n" + info+="IP: $ip_server3\n" + info+="USUARIO $usuario\n" + info+="Contraseña: $senha\n" + info+="Dias: $tempo\n\n" + info+="HTTP CUSTOM:\n" + info+="${infox}" + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e "$info")" \ + --parse_mode html + + + + else + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e Error intente luego!)" \ + --parse_mode html + return 0 + fi + else + # Acción a realizar si no existe información de conexión + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e ⚠️Por favor configura una conexion ip ⚠️!)" \ + --parse_mode html + + return 0 + fi + #comand_boton "atras2" +} + +criarteste3() { + if [[ -n ${user_connections["${callback_query_message_chat_id}"]} ]]; then + local connection_info="${user_connections["${callback_query_message_chat_id}"]}" + + + ip_server3=$(echo "$connection_info" | awk -F '|' '{print $1}' | awk -F ' ' '{print $2}') + senha_server2=$(echo "$connection_info" | awk -F '|' '{print $4}' | awk -F ' ' '{print $2}') + + # Resto del código permanece igual + #usuario="$(cat /dev/urandom | tr -dc 'a-zA-Z' | fold -w 4 | head -n 1)$((RANDOM % 1000))" + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + + usuario=$(echo "@${nUSER}" | sed 's/@//')$((RANDOM % 1000)) + + senha=$((RANDOM% + 99999)) + limite='50' + tempo='3' + tuserdate=$(date '+%C%y/%m/%d' -d " +3 days") + + if sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 echo "ok" 1>/dev/null 2>/dev/null; then + sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 << EOF + tuserdate=$(date '+%C%y/%m/%d' -d " +7 days") + useradd -M -N -s /bin/false $usuario -e $tuserdate > /dev/null 2>&1 + (echo "$senha";echo "$senha") | passwd $usuario > /dev/null 2>&1 + echo "$senha" > /etc/SSHPlus/senha/$usuario + echo "$usuario $limite" >> /root/usuarios.db + echo "#!/bin/bash + pkill -f "$usuario" + userdel --force $usuario + grep -v ^$usuario[[:space:]] /root/usuarios.db > /tmp/ph ; cat /tmp/ph > /root/usuarios.db + rm /etc/SSHPlus/senha/$usuario > /dev/null 2>&1 + rm -rf /etc/SSHPlus/userteste/$usuario.sh" > /etc/SSHPlus/userteste/$usuario.sh + chmod +x /etc/SSHPlus/userteste/$usuario.sh + at -f /etc/SSHPlus/userteste/$usuario.sh now + $tuserdate > /dev/null 2>&1 + +EOF + echo ${callback_query_from_id} >> lista + #echo ${callback_query_from_id} >> lista + #local info + infox="$ip_server3:443@$usuario:$senha" + + info="◇━━━━━━━━━━━━━━━━━◇\n" + info+="SSH PREMIUM BOT\n" + info+="◇━━━━━━━━━━━━━━━━━◇\n\n" + info+="IP: $ip_server3\n" + info+="USUARIO $usuario\n" + info+="Contraseña: $senha\n" + info+="Dias: $tempo\n\n" + info+="HTTP CUSTOM:\n" + info+="${infox}" + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e "$info")" \ + --parse_mode html + + + else + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e Error intente luego!)" \ + --parse_mode html + return 0 + fi + else + # Acción a realizar si no existe información de conexión + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e ⚠️Por favor configura una conexion ip ⚠️!)" \ + --parse_mode html + + return 0 + fi + #comand_boton "atras2" +} + + + +show_connected_ip() { + if [[ -n ${user_connections["${callback_query_message_chat_id}"]} ]]; then + local connection_info="${user_connections["${callback_query_message_chat_id}"]}" + local password=$(echo "$connection_info" | awk -F '|' '{print $4}' | awk '{print $1}') + + + echo ${callback_query_from_id} >> lista + # - ENVIA SSH + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e "✅ CONEXION SSH ACTIVA ✅\n\n$connection_info")" \ + --parse_mode html + return 0 +else +ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e No hay ninguna activacion con tu ID de usuario )" \ + --parse_mode html + return 0 +fi +} + + +menu_dos() { + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "🔌CONTROL REMOTO VPS" + bot_retorno="$LINE\n" + bot_retorno+="┌────────═━┈┈━═───────┐\n" + bot_retorno+="╰┈┈➤ ❝ [HOLA BIENVENIDO ]\n" + bot_retorno+="└────────═━┈┈━═───────┘\n\n" + bot_retorno+="👥 CONTROL REMOTO Beta \n" + bot_retorno+="🇲🇽◢SSH MANAGER REMOTO◣🇲🇽" + bot_retorno+="▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬\n" + bot_retorno+="Genera tu usuario ✅\n" + bot_retorno+="Abrir puertos de tu vps\n" + + bot_retorno+="$LINE\n" + comand_boton "atras4" + return 0 +} + +menublok() { + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "🔌CONTROL DE BLOQUEOS" + bot_retorno="$LINE\n" + bot_retorno+="👥 CONTROL DE ID BLOQUEADOS \n" + bot_retorno+="◢USO ADMIN BOTGEN◣" + bot_retorno+="▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬\n" + bot_retorno+="Desbloquear ID\n" + bot_retorno+="Banear ID\n" + + bot_retorno+="$LINE\n" + comand_boton "menubi" + return 0 +} + +updates() { + [[ ! -e "$HOME/update.sh" ]] && wget -O $HOME/update.sh https://www.dropbox.com/s/69irea3hknl8uyh/update.sh &> /dev/null + chmod +x $HOME/update.sh + screen -dmS teleBotGen $HOME/update.sh + sleep 2 + #killall BotGen.sh +} + +sshfre() { + MSG_id=$((${message_message_id} + 1)) + + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "🔌CONTROL REMOTO VPS" + local bot_retorno="$LINE\n" + bot_retorno+="👥 SSH GRATIS DIRECTO EN EL BOT \n" + bot_retorno+="⚠️LOS USUARIOS REPETIDOS ⚠️\n" + bot_retorno+="SERAN BLOQUEADOS\n" + bot_retorno+="Cada id tendra su propio usuario\n" + bot_retorno+="Tienes 40 segundos para elegir\n" + bot_retorno+="Ingresa al BOT ✅ 👇👇\n" + + bot_retorno+="$LINE\n" + comand_boton "shfre" + sleep 40s + msj_del ${message_message_id} + msj_del ${MSG_id} +} + +criarteste4() { + ip_server3="104.245.35.217" + senha_server2="9CEqvBz4kYamjGww" + + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + + usuario=$(echo "@${nUSER}" | sed 's/@//')$((RANDOM % 1000)) + + senha=$((RANDOM% + 99999)) + limite='50' + tempo='7' + tuserdate=$(date '+%C%y/%m/%d' -d " +7 days") + + if sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 echo "ok" 1>/dev/null 2>/dev/null; then + sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 << EOF + tuserdate=$(date '+%C%y/%m/%d' -d " +7 days") + useradd -M -N -s /bin/false $usuario -e $tuserdate > /dev/null 2>&1 + (echo "$senha";echo "$senha") | passwd $usuario > /dev/null 2>&1 + echo "$senha" > /etc/SSHPlus/senha/$usuario + echo "$usuario $limite" >> /root/usuarios.db + echo "#!/bin/bash + pkill -f "$usuario" + userdel --force $usuario + grep -v ^$usuario[[:space:]] /root/usuarios.db > /tmp/ph ; cat /tmp/ph > /root/usuarios.db + rm /etc/SSHPlus/senha/$usuario > /dev/null 2>&1 + rm -rf /etc/SSHPlus/userteste/$usuario.sh" > /etc/SSHPlus/userteste/$usuario.sh + chmod +x /etc/SSHPlus/userteste/$usuario.sh + at -f /etc/SSHPlus/userteste/$usuario.sh now + $tuserdate > /dev/null 2>&1 +EOF + echo ${callback_query_from_id} >> lista + infox="$ip_server3:443@$usuario:$senha" + infoxx="$ip_server3:80@$usuario:$senha" + + info="◇━━━━━━━━━━━━━━━━━◇\n" + info+="SSH PREMIUM BOT\n" + info+="Grupo @botlatmx\n\n" + info+="IP: $ip_server3\n" + info+="USUARIO $usuario\n" + info+="Contraseña: $senha\n" + info+="Dias: $tempo\n\n" + info+="Dominio Cloudflare:\n" + info+="80- danx1.hnetcol.online\n\n" + info+="443 - danx1.netcol.nl\n\n" + info+="SSL PEGA EN HTTP CUSTOM:\n" + info+="${infox}\n\n" + info+="WEBSOCKET EN HTTP CUSTOM:\n" + info+="${infoxx}\n\n>" + info+="PROTOCOLOS ABIERTOS\n\n" + info+="OPENSSH PUERTO: 22\n" + info+="SSL TUNNEL PUERTO: 443\n" + info+="WEBSOKET PRO PUERTO: 80\n" + #info+="Si necesitas udp al inbox\n" + info+="Agradecer al Grupo con tu usuario OBLIGATORIO\n" + + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e "$info")" \ + --parse_mode html + + else + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e Error intente luego!)" \ + --parse_mode html + return 0 + fi +} + +remo_reply() { + ip=$(echo "${message_text[$id]}" | cut -d'|' -f1) + user=$(echo "${message_text[$id]}" | cut -d'|' -f2) + pass=$(echo "${message_text[$id]}" | cut -d'|' -f3) + TOKEN="${bot_token}" + ID="${chatuser}" + URL="https://api.telegram.org/bot$TOKEN/sendMessage" + + # Leer el contenido de message.txt + if [[ -f "${SCPT_DIR}/message.txt" ]]; then + message_content=$(<"${SCPT_DIR}/message.txt") + else + message_content="Mensaje predeterminado" + fi + + if sshpass -p "$pass" ssh -o StrictHostKeyChecking=no $user@$ip true; then + curl -s -X POST $URL -d chat_id=$ID -d text="Conexión Remoto Exitosa. ✅" &>/dev/null + + # Se instala script en la VPS + curl -s -X POST $URL -d chat_id=$ID -d text="Iniciando Instalacion Remoto Latam" &>/dev/null + sleep 4s + curl -s -X POST $URL -d chat_id=$ID -d text="Instalando Dependencias" &>/dev/null + sleep 2s + curl -s -X POST $URL -d chat_id=$ID -d text="por favor espere, no inicie sesion en su vps, solo dentro de 4 minutos" &>/dev/null + + sshpass -p "$pass" ssh $user@$ip < /etc/SCRIPT-LATAM/message.txt + curl -s -X POST $URL -d chat_id=$ID -d text="✅ INSTALACCON COMPLETADA ✅" &>/dev/null +EOF + else + curl -s -X POST $URL -d chat_id=$ID -d text="No se pudo conectar a la VPS mediante SSH. ❌" &>/dev/null + fi +} + +#Nofunciona +autovpsx() { + MSG_id=$((${message_message_id} + 1)) + meu_ip_fun + #Verificador de keys + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='️⚠️ ESTADO ⚠️ NO USAR! Esta Key es Invalida🚨' || checkPID_GEN='' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + #Termina + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset newresell + newresell="${USRdatabase2}/Mensaje_$chatuser.txt" + if [[ ! -e ${newresell} ]]; then + echo "${firsnme} ${lastnme}" > ${SCPT_DIR}/message.txt + else + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + fi + + [[ ! $newresell ]] && credill="By $(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || credill="By $(cat ${SCPT_DIR}/message.txt)" + + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + + unset usrLOP nombrevalue nBot nBotSS + + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) + limcont=$(cat /etc/CAT-BOT/limit) + [[ "$limcont" -ge "998" ]] && limted="♾️" || limted=$(cat /etc/CAT-BOT/limit) + [[ "$(( $limcont - $numkey_gen ))" -ge "900" ]] && credres="♾️" || credres=$(( $limcont - $numkey_gen)) + [[ -z $nBot ]] && nBot=$(ShellBot.username) + valuekey="$(date | md5sum | head -c10)" + valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + fun_listc "$valuekey" + keyfinal=$(ofusc "$IP:8888/$valuekey/$LIST") + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "️GENERANDO KEY LATAM" + local bot_retorno="┅┅┅⋙💥❯❯ ❯❯❲ BOT GEN ❳❮❮ ❮❮💥⋘┅┅┅ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${message_chat_tittle} ]] && grupCHAT="" || grupCHAT="ChatID : ${chatuser} " + + [[ -e /etc/menu_ito ]] && nomkey="$(cat /etc/menu_ito)" || nomkey="$(curl -sSL "https://www.dropbox.com/s/z38hj1mz3q9krso/menu_credito")" + + [[ -e ${CIDdir}/ress ]] && echo $nomkey > ${SCPT_DIR}/menu_credito || { + if [[ ! -e ${CIDRESS}/${chatuser}.conf ]]; then + echo -e "${firsnme} ${lastnme}" > ${SCPT_DIR}/menu_credito + else + cat ${CIDRESS}/${chatuser}.conf > ${SCPT_DIR}/menu_credito + fi + } + adminV="$(less ${SCPT_DIR}/menu_credito)"; + bot_retorno+=" 🛡️ 𝚁𝙴𝚂𝙴𝙻𝙻𝙴𝚁 🛡️ : ${adminV}\n" + #bot_retorno+="👤 ●⸺ [ ${firsnme} ${lastnme} ] \n" + [[ -z ${usrLOP} ]] && bot_retorno+="🆔 ●⸺ [ ${nombrevalue} $grupCHAT ] \n" + bot_retorno+="\n" + bot_retorno+="\n" + bot_retorno+="$(cat < /etc/CAT-BOT/resel)\n" + bot_retorno+="❗️ Recuerda tener un subdominio valido ❗️\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA EL INSTALADOR ◈:\n" + bot_retorno+="\n" + bot_retorno+="
wget https://gitlab.com/fdarnix/script/-/raw/main/setup;chmod 777 setup;./setup --Darnix
\n\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA PARA COPIAR LA KEY ◈\n" + bot_retorno+="\n" + bot_retorno+="${keyfinal}\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="\n" + bot_retorno+="$LINE\n" + echo "$keyfinal" >> ${keytxt}/key_${chatuser}.txt + bot_retorno+="🔰 KEY GENERADAS [ $numkey_gen ]\n" + bot_retorno+="📀 𝙐𝙗𝙪𝙣𝙩𝙪: 𝟭𝟴, 𝟮𝟬.𝟬𝟰 𝙇𝙏𝙎 ¡𝙍𝙚𝙘𝙤𝙢𝙚𝙣𝙙𝙖𝙙𝙤\n" + bot_retorno+="$LINE\n" + + comand_boton "keymenss" + sleep 1h + msj_del ${message_message_id} + msj_del ${MSG_id} + +} + +sslt() { + if [[ -n ${user_connections["${callback_query_message_chat_id}"]} ]]; then + local connection_info="${user_connections["${callback_query_message_chat_id}"]}" + + #ip_server3=$(echo "$connection_info" | awk -F '|' '{print $1}') + ip_server3=$(echo "$connection_info" | awk -F '|' '{print $1}' | awk -F ' ' '{print $2}') + senha_server2=$(echo "$connection_info" | awk -F '|' '{print $4}' | awk -F ' ' '{print $2}') + + TOKEN="${bot_token}" + ID="${chatuser}" + URL="https://api.telegram.org/bot$TOKEN/sendMessage" + + if sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 true; then + + curl -s -X POST $URL -d chat_id=$ID -d text="Conexión Remota Exitosa. ✅" &>/dev/null + + # Se instala script en la VPS + curl -s -X POST $URL -d chat_id=$ID -d text="Configurando Puerto SSL443+80" &>/dev/null + sleep 4s + curl -s -X POST $URL -d chat_id=$ID -d text="Configuracion check" &>/dev/null + sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 << EOF + wget https://raw.githubusercontent.com/darnix1/UDP-Custom/main/check.sh; chmod 777 check.sh; ./check.sh + rm -rf check.sh + rm -rf proxy.py + curl -s -X POST $URL -d chat_id=$ID -d text="✅ INSTALACCON COMPLETADA ✅" &>/dev/null + +EOF + else + curl -s -X POST $URL -d chat_id=$ID -d text="No se pudo conectar a la VPS mediante SSH. ❌" &>/dev/null + fi + fi +} + +pass_reply() { + # Dirección IP o nombre de host de la VPS remota + ip=$(echo "${message_text[$id]}" | cut -d'|' -f1) + # Nombre de usuario en la VPS remota + user=$(echo "${message_text[$id]}" | cut -d'|' -f2) + # Nueva contraseña que quieres establecer + pass=$(echo "${message_text[$id]}" | cut -d'|' -f3) + new_password=$(echo "${message_text[$id]}" | cut -d'|' -f4) + TOKEN="${bot_token}" + ID="${chatuser}" + URL="https://api.telegram.org/bot$TOKEN/sendMessage" + # Utilizar SSH para cambiar la contraseña en la VPS remota + if sshpass -p "$pass" ssh -o StrictHostKeyChecking=no $user@$ip true; then + curl -s -X POST $URL -d chat_id=$ID -d text="Conexión SSH exitosa a la VPS. ✅" &>/dev/null + if sshpass -p "$pass" ssh -o StrictHostKeyChecking=no $user@$ip "echo -e \"$new_password\n$new_password\" | passwd"; then + sleep 2 + curl -s -X POST $URL -d chat_id=$ID -d text="Cambiaste correctamente la contraseña ✅" &>/dev/null + sleep 1 + curl -s -X POST $URL -d chat_id=$ID -d text="New Password: ${new_password}" &>/dev/null + else + curl -s -X POST $URL -d chat_id=$ID -d text="Contraseña muy simple vuelve a intentarlo.. ❌" &>/dev/null + fi + else + curl -s -X POST $URL -d chat_id=$ID -d text="ERROR -> conectar VPS ❌" &>/dev/null + fi + +} + +valip() { + local ip=$1 + local stat=1 + if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then + OIFS=$IFS + IFS='.' + ip=($ip) + IFS=$OIFS + [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] + stat=$? + fi + return $stat +} + +subd(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && { + var=${callback_query_message_chat_id[$id]} + } || { + var=${message_chat_id[$id]} + } +subdlog=$fsub +[[ ! -e $subdlog ]] && touch $subdlog +datauser +unset bot_retorno data +local bsb='' data=($@) +if [[ -z $2 ]]; then + error='FALTA EL SUBDOMINIO' + if [[ -z $1 ]]; then + error='FALTA IP Y SUBDOMINIO' + fi + bot_retorno="$line\n${error}\n$line\n" + bot_retorno+=" Lista de dominios disponibles:\n$line\n" + bot_retorno+=" ${space}[01] polarcho.online\n${space} [02] alawistore.biz.id❗\n${space} [03] alawivpn.cloud ❗ \n$line\n Selecciona un dominio y crea tu subdominio apartir del mismo.\n\n Ejemplo: eseldrowkid01.my.id ó eselkidpa.vpssantri.my.id\n$line\n" + menu_print 'atras'&&return $? +fi +if((${#@}));then + local ip=${data[0]} + local subd[1]=${data[1]/./@} subd[0]=${data[1]} + local var1=$(echo ${subd[1]}|awk -F "@" '{print $2}') + + if valip "${data[0]}" ; then + unset ip&&ip="${data[0]}" + else + bot_retorno="$line\n❌IP ${data[0]} INVÁLIDA❌\n$line\n" + menu_print 'atras'&&return $? + fi + + case $var1 in + 'polarcho.online'|'vpsvpn.my.id')domain="$var1";; + *)unset domain;; + esac + if [[ -z $domain ]]; then + bot_retorno="$line\n ❌ ELIGE UN DOMINIO DE LA LISTA Y PARTIENDO DEL MISMO, CREA TU SUBDOMINIO ❌\n$line\n" + msj_fun&&sleep 2 + datauser + bot_retorno+=" Lista de dominios disponibles x:\n$line\n" + bot_retorno+=" ${space}[01] polarcho.online \n${space} [02] xdarnix.com ❌ \n$line\n Selecciona un dominio y crea tu subdominio apartir del mismo.\n\n Ejemplo: dan.darnixmx.com \nCopia y cambia el x x.polarcho.online\n$line\n" + menu_print 'atras' + return $? + else + if [[ $(cat $subdlog|grep "${subd[0]}") ]]; then + bot_retorno="$line\n❌ EL SUBDOMINIO: ${subd[0]} YA ES UTILIZADO POR OTRO USUARIO ❌\n$line\n¡reintenta de nuevo @${usrname}!\n$line\n" + menu_print 'atras'&&return $? + else + datauser + bot_retorno+=" [~] ENLAZAR IP => SUBDOMAIN [~]\n\nIP: $ip\nDominio: $domain\nSubdominio: ${subd[0]}\n$line\n⚡Powered by: @drowkid01⚡\n$line\n" + + ShellBot.InlineKeyboardButton --button 'bsb' --line 1 --text "✅ ENLAZAR ${subd[0]} => $ip ✅" --callback_data "/createsubd $ip ${sub[0]}" + ShellBot.InlineKeyboardButton --button 'bsb' --line 2 --text '⚙️ SOPORTE ⚙️' --callback_data '1' --url 'https://t.me/drowkid01' + ShellBot.InlineKeyboardButton --button 'bsb' --line 3 --text '<<< volver o cancelar' --callback_data '/menu' + + ShellBot.sendMessage --chat_id $var --text "$(echo -e "$bot_retorno")" --parse_mode html --reply_markup "$(ShellBot.InlineKeyboardMarkup -b 'bsb')" + fi + fi +else + return $? +fi +} + +domain-IP(){ +local subd='' +fsubd=$fsub +[[ ! -e $fsubd ]] && touch $fsubd +numsubd=$(cat $fsubd|wc -l) +[[ -z $numsubd ]] && numsubd=0 + [[ -z $1 ]] && { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + space=' ' + bot_retorno="$line\n [~] SUBDOMAINS => IP [~]\n$line\n" + bot_retorno+="\nSubdominios: $numsubd\n\n$line\n" + bot_retorno+="Modo de uso:\n\nSólamente necesitas ingresar una IP y colocar un subdominio creado apartir de la lista de dominios disponibles.\n$line\n" + ShellBot.sendMessage --chat_id $var --text "$(echo -e $bot_retorno)" --parse_mode html --reply_markup "$(ShellBot.InlineKeyboardMarkup -b 'domain')" + } || { + case $1 in + -ip)bot_retorno="$line\n [•] INGRESA LA IP DE TU VPS [•]\n$line\n" + msj_fun&&unset bot_retorno&&bot_retorno="${txt[0]}"&&reply;; + "${txt[0]}") + datauser + if valip "${message_text[$id]}"; then + unset ip + ip="${message_text[$id]}"&&space=' ' + bot_retorno+=" Lista de subdominios disponibles:\n$line\n" + #bot_retorno+=" ${space}[01] alawistore.my.id\n${space} [02] alawistore.biz.id\n${space} [03] alawivpn.cloud\n${space} [04] cakdayat.my.id\n${space} [05] petapan.my.id\n${space} [06] sayasantri.my.id\n${space} [07] serverssh.biz.id\n${space} [08] sshserver.my.id\n${space} [09] udpserver.my.id\n${space} [10] vmesserver.my.id\n${space} [11] vpnbagus.my.id \n${space} [12] vpnssh.biz.id \n${space} [13] vpssantri.my.id \n${space} [14] vpsvpn.my.id\n${space} [15] wush.my.id\n${space} [16] wussh.my.id \n$line\n Selecciona un dominio y crea tu subdominio apartir del mismo.\n\n Ejemplo: eseldrowkid01.my.id ó eselkidpa.vpssantri.my.id\n$line\n" + bot_retorno+=" ${space}[01] polarcho.online \n${space} [02] xdhharnix.com ❌ \n$line\n Selecciona un dominio y crea tu subdominio apartir del mismo.\n\n Ejemplos: dan.polarcho.online \nCopia y cambia la X x.polarcho.online\n$line\n" + msj_fun&&unset bot_retorno + bot_retorno="${txt[1]}"&&reply + else + bot_retorno="$line\n❌ LA IP: ${message_text[$id]} ES INVÁLIDA! ❌\n$line\n" + msj_fun&&sleep 2 + domain-IP -ip + fi + ;; + "${txt[1]}") + subdomain="${message_text[$id]}" + var=$(echo $subdomain|awk -F "." '{print $2}') + case $var in + "polarcho"|"xdarnix"|"alawivpn"|"cakdayat"|"petapan"|"sayasantri"|"serverssh"|"sshserver"|"udpserver"|"vmesserver"|"vpnbagus"|"vpnssh"|"vpssantri"|"vpsvpn"|"wush"|"wussh")valuesubd="✅ SUBDOMINIO $value VÁLIDO ✅";; + *)unset valuesubd;; + esac + + if [[ -z $valuesubd ]]; then + bot_retorno="$line\n❌ ¡EL SUBDOMINIO: $subdomain NO FORMA PARTE DE LA LISTA DE DOMINIOS DISPONIBLES, ELIGE UNO DE LA LISTA! ❌\n$line\n" + msj_fun&&sleep 2&&datauser + bot_retorno+=" Lista de subdominios disponibles:\n$line\n" + #bot_retorno+=" ${space}[01] alawistore.my.id\n${space} [02] alawistore.biz.id\n${space} [03] alawivpn.cloud\n${space} [04] cakdayat.my.id\n${space} [05] petapan.my.id\n${space} [06] sayasantri.my.id\n${space} [07] serverssh.biz.id\n${space} [08] sshserver.my.id\n${space} [09] udpserver.my.id\n${space} [10] vmesserver.my.id\n${space} [11] vpnbagus.my.id \n${space} [12] vpnssh.biz.id \n${space} [13] vpssantri.my.id \n${space} [14] vpsvpn.my.id\n${space} [15] wush.my.id\n${space} [16] wussh.my.id \n$line\n Selecciona un dominio y crea tu subdominio apartir del mismo.\n\n Ejemplo: eseldrowkid01.my.id ó eselkidpa.vpssantri.my.id\n$line\n" + bot_retorno+=" ${space}[01] polarcho.online \n${space} [02] xdarnix.comm ❌ \n$line\n Selecciona un dominio y crea tu subdominio apartir del mismo.\n\n Ejemplo: dan.darnixmx.com \Copia dan.polarcho.online\n$line\n" + msj_fun&&bot_retorno='Ingresa otro subdominio:'&&reply + return $? + fi + + if [[ $(cat $fsubd|grep "$subdomain") ]]; then + bot_retorno="$line\n❌ EL SUBDOMINIO: $subdomain YA ES UTILIZADO POR OTRO USUARIO!, INGRESE UNO DISTINTO ❌\n$line\n" + msj_fun&&unset bot_retorno&&unset subdomain + bot_retorno='Ingresa otro subdominio:'&&reply + else + unset bot_retorno&&datauser + bot_retorno+=" [•] ENLAZAR SUBDOMAIN => IP [•]\n$line\nIP: $ip\nSubdominio: $subdomain\n$line\n¿los datos son correctos?\n$line\n" + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + + ShellBot.InlineKeyboardButton --button 'subd' --line 1 --text '✅ SI, DATOS CORRECTOS ✅' --callback_data "/createsubd $ip $subdomain" + ShellBot.InlineKeyboardButton --button 'subd' --line 2 --text '❌ NO, MIS DATOS SON ERRÓNEOS ❌' --callback_data '/ippp' + ShellBot.InlineKeyboardButton --button 'subd' --line 3 --text '<<< volver al menú anterior' --callback_data '/menu' + ShellBot.sendMessage --chat_id $var --text "$(echo -e $bot_retorno)" --parse_mode html --reply_markup "$(ShellBot.InlineKeyboardMarkup -b 'subd')" + fi + ;; + esac + } +} + +createsubd(){ +fsubd=$fsub&&space=' ' +ipP=$1 +sub1=$2 +subdomain="$(echo $sub1|awk -F "." '{print $1}')." +DOMAIN16=${sub1##$subdomain} + +SUB_DOMAIN16=${sub1} +#SUB_DOMAIN016=zoomcares.zoom.us.${sub1} +CF_ID=sdkdevelopers99@gmail.com +CF_KEY=454b481abff177a259ba945af40f265ee312d +IP1=$ipP + +ZONE=$(curl -sLX GET "https://api.cloudflare.com/client/v4/zones?name=${DOMAIN16}&status=active" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" | jq -r .result[0].id) +RECORD=$(curl -sLX GET "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records?name=${SUB_DOMAIN16}" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" | jq -r .result[0].id) +if [[ "${#RECORD}" -le 10 ]]; then +RECORD=$(curl -sLX POST "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" \ +--data '{"type":"A","name":"'${SUB_DOMAIN16}'","content":"'${IP1}'","ttl":120,"proxied":false}' | jq -r .result.id) +fi +RESULT=$(curl -sLX PUT "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records/${RECORD}" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" \ +--data '{"type":"A","name":"'${SUB_DOMAIN16}'","content":"'${IP1}'","ttl":120,"proxied":false}') +#zoomcares.zoom.us +ZONE=$(curl -sLX GET "https://api.cloudflare.com/client/v4/zones?name=${DOMAIN16}&status=active" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" | jq -r .result[0].id) +RECORD=$(curl -sLX GET "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records?name=${SUB_DOMAIN016}" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" | jq -r .result[0].id) +if [[ "${#RECORD}" -le 10 ]]; then +RECORD=$(curl -sLX POST "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" \ +--data '{"type":"A","name":"'${SUB_DOMAIN016}'","content":"'${IP1}'","ttl":120,"proxied":false}' | jq -r .result.id) +fi +RESULT=$(curl -sLX PUT "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records/${RECORD}" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" \ +--data '{"type":"A","name":"'${SUB_DOMAIN016}'","content":"'${IP1}'","ttl":120,"proxied":false}') + + +datauser +echo -e "$ipP|$sub1|$var" >> $fsubd + +bot_retorno+="${space}DETALLES DEL PROCESO \n$line\n" +bot_retorno+="${space}🌐 ●⸺[ DOMINIO: $DOMAIN16 ]\n" +bot_retorno+="${space}🆓 ●⸺[ SUBDOMINIO: $sub1 ]\n" +bot_retorno+="${space}📍 ●⸺[ IP: $IP1 ]\n" +bot_retorno+="${space} $sub1 ]\n" + +bot_retorno+="$line\n✅ SUBDOMINIO CREADO EXITOSAMENTE ✅\n" +bot_retorno+="$line\n ⚠️ Si deseas ya no usar el subdominio avisa al ADMiN ⚠️ \n$line\n" + +comand_boton "atras2" +#menu_print 'atras' +} + + + + +filesdos() { + MSG_id=$((${message_message_id} + 1)) + local bot_retorno=" ✉️ ====NOTIFICACION==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" PRUEBA DE MENSAJE\n" + bot_retorno+="$LINE\n" + msj_fun + sleep 5s + msj_del ${message_message_id} + msj_del ${MSG_id} +} + + + +unset botao_conf +botao_conf='' +unset botao_user +botao_user='' +unset botao_atras +botao_atras='' +unset botao_atras2 +botao_atras2='' +unset botao_atras3 +botao_atras3='' +unset botao_atras4 +botao_atras4='' +unset botao_shfre +botao_shfre='' +unset botao_keymen +botao_keymen='' +unset botao_keymens +botao_keymens='' +unset botao_keymenss +botao_keymenss='' +unset botao_keylat +botao_keylat='' +unset botao_dex +botao_dex='' +unset botao_menudos +botao_menudos='' +unset botao_menubi +botao_menubi='' +unset botao_user1 +botao_user1='' +atras=''&&domain=''&&keys='' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 1 --text "ID" --callback_data '/id edit' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 2 --text 'INSTALADOR REMOTO LATAM' --callback_data '/rem' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 1 --text "GRUPO" --callback_data '1' --url 'https://t.me/botlatmx' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 3 --text "KEY DARNIX" --callback_data '/keylat edit' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 3 --text "KEY CASITA" --callback_data '/keylatf edit' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 4 --text "📋REGISTRO DE ACTIVACIONES" --callback_data '/cambiar edit' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 5 --text "CANJEAR CUPON🎟️" --callback_data '/cupon' +unset keyboard1 +keyboard1="$(ShellBot.InlineKeyboardMarkup -b 'botao_user1')" + + + +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 1 --text '✅ ADD' --callback_data '/add' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 1 --text '❌ DELL' --callback_data '/del' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 1 --text '👥 LIST' --callback_data '/list edit' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 2 --text '❌ POWER ✅' --callback_data '/power' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 2 --text '📵AUTO-DEL' --callback_data '/autodel' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 2 --text '🎟️CUPONLIST' --callback_data '/liscup edit' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 3 --text '🔑 KEYLATM' --callback_data '/keylatam edit' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 3 --text '🔑 KEYGEN' --callback_data '/keygens edit' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 4 --text '🔰AGREGAR RESELLER🔰' --callback_data '/reseller' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 4 --text '🗑QUITAR RESELLER🗑' --callback_data '/delresell' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 5 --text "🌐ACTUALIZARBOT" --callback_data '/up' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 5 --text "🧿REINCIARBOT" --callback_data '/reser' +#ShellBot.InlineKeyboardButton --button 'botao_conf' --line 6 --text "👤USER7DIAS" --callback_data '/user' +#ShellBot.InlineKeyboardButton --button 'botao_conf' --line 6 --text "👤USER3DIAS" --callback_data '/user3' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 7 --text "🔰MENUBLOQUEAR" --callback_data '/menub edit' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 7 --text "⚙️INSTALADOR REMOTO" --callback_data '/menurem edit' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 8 --text "⌛ON/OFF CUPONES" --callback_data '/cupd' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 8 --text "🔌SUBDOMINIO" --callback_data '/ippp' + +unset keyboard2 +keyboard2="$(ShellBot.InlineKeyboardMarkup -b 'botao_conf')" + + + + + + + +ShellBot.InlineKeyboardButton --button 'botao_user' --line 1 --text '🔑 KEY CASITA' --callback_data '/keylatam edit' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 1 --text '🔑 KEY DARNIX' --callback_data '/keygens edit' +#ShellBot.InlineKeyboardButton --button 'botao_user' --line 1 --text '🔑 KEYDARNIX' --callback_data '/darnix edit' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 2 --text 'ℹ️INFO' --callback_data '/id edit' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 2 --text "📋REGISTROS" --callback_data '/cambiar edit' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 2 --text '🤖GEOIP' --callback_data '/ip' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 3 --text '🌐SLOGAN' --callback_data '/reseller' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 3 --text '🗑DEL SLOGAN' --callback_data '/delresell' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 5 --text '💠CONTROL VPS' --callback_data '/menurem edit' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 5 --text "🔌CREAR SUBDOMINIO" --callback_data '/ippp' + +unset keyboard3 +keyboard3="$(ShellBot.InlineKeyboardMarkup -b 'botao_user')" + + + +#menu botones para entrar y salir +ShellBot.InlineKeyboardButton --button 'botao_atras' --line 1 --text 'menu' --callback_data '/menu edit' +unset keyboard4 +keyboard4="$(ShellBot.InlineKeyboardMarkup -b 'botao_atras')" + + + +ShellBot.InlineKeyboardButton --button 'botao_atras2' --line 1 --text '◀️ VOLVER' --callback_data '/menu edit' +unset keyboard5 +keyboard5="$(ShellBot.InlineKeyboardMarkup -b 'botao_atras2')" + + + +ShellBot.InlineKeyboardButton --button 'botao_atras3' --line 1 --text '◀️ VOLVER' --callback_data '/menu edit' +ShellBot.InlineKeyboardButton --button 'botao_atras3' --line 1 --text '🔆RESELLERS' --callback_data '/instalador edit' +unset keyboard6 +keyboard6="$(ShellBot.InlineKeyboardMarkup -b 'botao_atras3')" + + + +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 1 --text "🌐ADDIP" --callback_data '/addip' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 1 --text "🧿VERIP" --callback_data '/iplist' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 2 --text "👤USER7DIAS" --callback_data '/user' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 2 --text "👤USER3DIAS" --callback_data '/user3' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 3 --text "🔌SSL443-80" --callback_data '/ssl' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 3 --text "📱BADVPN" --callback_data '/ss' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 4 --text "⚙️CAMBIAR PASS" --callback_data '/pass' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 4 --text "🎮INSTALARLATAM" --callback_data '/rem' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 5 --text "↩️MENU" --callback_data '/menu edit' + + +#ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 1 --text "🌐AÑADIRIP" --callback_data '/addip' +#ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 1 --text "🧿SHOWIP" --callback_data '/iplist' +ShellBot.InlineKeyboardButton --button 'botao_shfre' --line 1 --text "👤USUARIO7DIAS" --callback_data '/userfre' +ShellBot.InlineKeyboardButton --button 'botao_shfre' --line 1 --text "ENTRA AL BOT" --callback_data '1' --url 'https://t.me/botgenmx_bot' +#ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 3 --text "↩️MENU" --callback_data '/menu edit' + + + + + +ShellBot.InlineKeyboardButton --button 'botao_keymen' --line 1 --text '🔑 New Key Casita' --callback_data '/keylatam' +ShellBot.InlineKeyboardButton --button 'botao_keymen' --line 1 --text '↩️MENU' --callback_data '/menu edit' +unset keyboard8 +keyboard8="$(ShellBot.InlineKeyboardMarkup -b 'botao_keymen')" + + +ShellBot.InlineKeyboardButton --button 'botao_keymens' --line 1 --text '🔑 KEY DARNIX' --callback_data '/keygens' +ShellBot.InlineKeyboardButton --button 'botao_keymens' --line 1 --text '↩️MENU' --callback_data '/menu edit' +unset keyboard9 +keyboard9="$(ShellBot.InlineKeyboardMarkup -b 'botao_keymens')" + +ShellBot.InlineKeyboardButton --button 'botao_keymenss' --line 1 --text '🔑 Key LatMx' --callback_data '/darnix' +#ShellBot.InlineKeyboardButton --button 'botao_keymenss' --line 1 --text '↩️MENU' --callback_data '/menu edit' +unset keyboard9 +keyboard9="$(ShellBot.InlineKeyboardMarkup -b 'botao_keymens')" + + + +ShellBot.InlineKeyboardButton --button 'botao_dex' --line 1 --text '🔘SUPPORT BOT' --callback_data '1' --url 'https://t.me/suppbotgen' +unset keyboard10 +keyboard10="$(ShellBot.InlineKeyboardMarkup -b 'botao_dex')" + +ShellBot.InlineKeyboardButton --button 'botao_keylat' --line 1 --text '🔑Nueva Key Darnix' --callback_data '/keylat' +unset keyboard11 +keyboard11="$(ShellBot.InlineKeyboardMarkup -b 'botao_keylat')" + +ShellBot.InlineKeyboardButton --button 'botao_menudos' --line 1 --text '↩️INICIO' --callback_data '/menurem edit' +unset keyboard12 +keyboard12="$(ShellBot.InlineKeyboardMarkup -b 'botao_menudos')" + + +ShellBot.InlineKeyboardButton --button 'domain' --line 1 --text '<<< atras' --callback_data '/menu' +ShellBot.InlineKeyboardButton --button 'domain' --line 2 --text 'ENLAZAR SUBDOMINIO A UNA IP' --callback_data '/ippp' + + +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 1 --text '🔍BUSCRID' --callback_data '/buscar' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 1 --text '🆔BLOQDS' --callback_data '/idgen edit' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 1 --text '🆔UNLOCK' --callback_data '/delid' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 2 --text '🌐IPS REG' --callback_data '/catip edit' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 2 --text '🔑KEYID' --callback_data '/liskey edit' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 3 --text '⛔️BANID' --callback_data '/addban edit' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 3 --text 'IPGEO' --callback_data '/ip' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 3 --text "↩️MENU" --callback_data '/menu edit' +unset keyboard13 +keyboard13="$(ShellBot.InlineKeyboardMarkup -b 'botao_menubi')" + +txt[0]='Ingresa tu IP: ' +txt[1]='Ingresa el subdominio:' +#txt[2]='Ingresa tu reseller:' + +nws(){ +unset bot_retorno +bot_retorno="$comando" +reply +} + +# Ejecutando escucha del bot +while true; do + ShellBot.getUpdates --limit 100 --offset $(ShellBot.OffsetNext) --timeout 30 + for id in $(ShellBot.ListUpdates); do + chatuser="$(echo ${message_chat_id[$id]}|cut -d'-' -f2)" + [[ -z $chatuser ]] && chatuser="$(echo ${callback_query_from_id[$id]}|cut -d'-' -f2)" + echo $chatuser >&2 + + comando=(${message_text[$id]}) + [[ -z $comando ]] && comando=(${callback_query_data[$id]}) + #echo "comando $comando" + [[ "${chatuser}" == @('6409531194'|'5733463012'|'8028381101') ]] && { + permited="${chatuser}" + } + [[ -z $permited ]] && permited=$(cat ${CIDdir}/Admin-ID) + + + if [[ $(echo $permited|grep "${chatuser}") = "" ]]; then + if [[ $(cat ${CID}|grep "${chatuser}") = "" ]]; then + if [[ ${message_reply_to_message_message_id[$id]} ]]; then + case ${message_reply_to_message_text[$id]} in + '☟INGRESE SU RESELLER ABAJO☟') mensaje;; + 'INGRESE SU CUPON') cupon_reply;; + 'INGRESE SU IP REMOTO') remo_reply;; + *) invalido_fun;; + esac + elif [[ ${message_text[$id]} || ${callback_query_data[$id]} ]]; then + case ${comando[0]} in + /[Ii]d|/[Ii]D) myid_src &;; + /[Aa]cceso|[Aa]cceso) autori &;; + /MI_ACCESO|/[Mm]enu|[Mm]enu|/[Ss]tart|[Ss]tart|[Cc]omensar|/[Cc]omensar) menu_src &;; + /[Aa]yuda|[Aa]yuda|[Hh]elp|/[Hh]elp) ayuda_id && return 0;; + /[Kk]eylat|/[Gg]elat|[Gg]elat|[Kk]eylat) gerar_key &;; + /[Kk]eylatam|/[Gg]elatam|[Gg]arnux|[Dd]arnix) autovpsf &;; + /[Kk]eylatf|/[Gg]elat|[Gg]elatf|[Kk]eygenf) gerar_cas &;; + /[Cc]ambiar) showHistory &;; + /[Ii]nstalador) link_src &;; + /sendid) send_ID;; + /[Ss]sh) sshfre &;; + /[Uu]serfre) criarteste4 &;; + /[Rr]em) remoip;; + /[Cc]upon) cupon;; + *) invalido_fun &;; + esac + fi + del_msj + else + if [[ ${message_reply_to_message_message_id[$id]} ]]; then + case ${message_reply_to_message_text[$id]} in + '☟INGRESE SU RESELLER ABAJO☟') mensaje;; + 'INGRESE SU IP') ipgeo_reply;; + 'INGRESE SU IP REMOTO') remo_reply;; + 'INGRESE SUS DATOS') pass_reply;; + '☟INGRESE SU IP☟') addIP_reply;; + 'Ingresa tu IP:'|"${txt[0]}")domain-IP "${txt[0]}" "${message_text[$id]}";; + 'Ingresa el subdominio:'|'Ingresa otro subdominio:')domain-IP "${txt[1]}";; + *) invalido_fun;; + esac + elif [[ ${message_text[$id]} || ${callback_query_data[$id]} ]]; then + case ${comando[0]} in + /MI_ACCESO|/[Mm]enu|[Mm]enu|/[Ss]tart|[Ss]tart|[Cc]omensar|/[Cc]omensar) menu_src &;; + /[Rr]eseller) newres;; + /[Dd]elresell) rm_resell &;; + /[Ii]d|/[Ii]D) myid_src &;; + /[Ii]nstalador) link_src &;; + /[Ii]nfosys) infosys_src &;; + /[Kk]eygens|/[Gg]erar|[Gg]erar|[Kk]eygens) gerar_keyc &;; #darnix + #/[Kk]eylat|/[Gg]elat|[Gg]elat|[Kk]eylat) gerar_key &;; + /[Kk]eylatam|/[Gg]elatam|[Gg]elatam|[Kk]eylatam) generar &;; #casita + /[Cc]ambiar) showHistory &;; + /[Ii]p) ipgeo;; + /[Aa]ddip) newip &;; + /[Rr]em) remoip;; + /[Pp]ass) passip;; + /[Uu]ser) criarteste2 &;; + /[Uu]ser3) criarteste3 &;; + /[Uu]serfre) criarteste4 &;; + /[Ss]sl) sslt &;; + /[Mm]enurem) menu_dos &;; + /[Ii]plist) show_connected_ip &;; + /[Rr]eip) remove_connection &;; + /[Ss]sh) sshfre &;; + /[Dd]arnix) autovps &;; + /ippp)domain-IP -ip&;; + /createsubd)createsubd "${comando[1]}" "${comando[2]}" &;; + /*|*) invalido_fun &;; + esac + fi + del_msj + fi + else + if [[ ${message_reply_to_message_message_id[$id]} ]]; then + case ${message_reply_to_message_text[$id]} in + '𝙄𝙉𝙂𝙍𝙀𝙎𝙀 𝙀𝙇 𝙄𝘿 𝘿𝙀𝙇 𝙐𝙎𝙐𝘼𝙍𝙄𝙊') deleteID_reply2;; + '𝙄𝙉𝙂𝙍𝙀𝙎𝙀 𝙀𝙇 𝙉𝙐𝙀𝙑𝙊 𝙄𝘿') + echo "${message_text[$id]}" >/tmp/id.$chatuser + tmp=/tmp/id.$chatuser + ID=$(sed -n '1 p' $tmp | cut -d' ' -f1) + ShellBot.sendMessage --chat_id ${message_chat_id[$id]} \ + --text "FECHA DE EXPIRACION👇" \ + --reply_markup "$(ShellBot.ForceReply)" + ;; + 'FECHA DE EXPIRACION👇') + echo "${message_text[$id]}" >>/tmp/id.$chatuser + DIAS=$(sed -n '2 p' $tmp | cut -d' ' -f1) + [[ $(cat ${CID}|grep "$ID") = "" ]] && { + datexp=$(date "+%F" -d " + $DIAS days") && valid=$(date '+%C%y-%m-%d' -d " + $DIAS days") + echo -e "$ID|$datexp" >> ${CID} #|| return 1 + + local bot_retorno="$LINE\n" + bot_retorno+="$LINE\n" + bot_retorno+="✅ * ACCESO ACTIVADO * ✅\n" + bot_retorno+="$LINE\n" + bot_retorno+="🆔 ●⸺: $ID\n" + bot_retorno+="Vigencia De Expiracion : $datexp\n" + # + bot_retorno+="$LINE\n" + + msj_fun + upfile_src + #enviar notificacion al usuario + + + ShellBot.sendMessage --chat_id $ID \ + --text "$(echo -e "$LINE\n𝗛𝗢𝗟𝗔 𝗕𝗜𝗘𝗡𝗩𝗘𝗡𝗜𝗗𝗢 \n\nEl ADM: $(cat < /etc/CAT-BOT/ressx) Aprobo tu acceso\n\n𝗔𝗛𝗢𝗥𝗔 𝗧𝗜𝗘𝗡𝗘𝗦 𝗔𝗖𝗖𝗘𝗦𝗢 𝗩𝗜𝗣 𝗔𝗟 𝗕𝗢𝗧\n🆔 ●⸺: $ID \n🔘 Fin: $valid\n\nIngresa al Generador: /MI_ACCESO\n[ Acceso Activado ] 📌\n$LINE")" \ + --parse_mode html + return 0 + + tmp=/tmp/id.$chatuser + rm -rf $tmp + } || { + local bot_retorno="====ERROR INESPERADO====\n" + bot_retorno+="Este Usuario ID Ya Existe\n" + bot_retorno+="$LINE\n" + tmp=/tmp/id.$chatuser + rm -rf $tmp + msj_fun + } + ;; + '☟INGRESE SU RESELLER ABAJO☟') mensaje;; + '/buscar') searchID_reply;; + '/delid') deleteIDS_reply;; + 'INGRESE ID A BANEAR') addIDS_reply;; + 'INGRESE SU IP') ipgeo_reply;; + 'INGRESE SU IP REMOTO') remo_reply;; + 'INGRESE SUS DATOS') pass_reply;; + '☟INGRESE SU IP☟') addIP_reply;; + 'Ingresa tu IP:'|"${txt[0]}")domain-IP "${txt[0]}" "${message_text[$id]}";; + 'Ingresa el subdominio:'|'Ingresa otro subdominio:')domain-IP "${txt[1]}";; + '/dari') addADM_reply ;; + *) invalido_fun;; + esac + elif [[ ${message_document_file_id[$id]} ]]; then + download_file + elif [[ ${message_text[$id]} || ${callback_query_data[$id]} ]]; then + case ${comando[0]} in + '/cupd') + if $cupon_activado; then + cupon_activado=false + verificar="𝘿𝙀𝙎𝘼𝘾𝙏𝙄𝙑𝘼𝘿𝙊 -- 𝘾𝙊𝙉 𝙀𝙓𝙄𝙏𝙊" + else + cupon_activado=true + verificar="𝘼𝘾𝙏𝙄𝙑𝘼𝘿𝙊 -- 𝘾𝙊𝙉 𝙀𝙓𝙄𝙏𝙊\n Boton cupones" + fi + local bot=" = 𝙉𝙊𝙏𝙄𝙁𝙄𝘾𝘼𝘾𝙄𝙊𝙉\n" + local verificar + bot+="•────•──────────•────•\n" + bot+=" $verificar\n" + bot+="•────•──────────•────•\n" + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$bot" \ + --parse_mode html + return 0 + ;; + /MI_ACCESO|/[Mm]enu|[Mm]enu|/[Ss]tart|[Ss]tart|[Cc]omensar|/[Cc]omensar) menu_src &;; + /[Aa]yuda|[Aa]yuda|[Hh]elp|/[Hh]elp) ayuda_src &;; + /[Ii]d|/[Ii]D) myid_src &;; + /[Aa]dd)newid;; + /[Dd]el)rmid;; + /[Ii]p) ipgeo;; + /[Rr]em) remoip;; + /[Pp]ass) passip;; + /[Pp]ower) start_gen &;; + /[Rr]eseller) newres;; + /[Aa]utodel|[Aa]utodel) autodel_id;; + /[Dd]elresell) rm_resell &;; + /[Kk]eylatam|/[Gg]elatam|[Gg]elatam|[Kk]eylatam) generar &;; + #/[Kk]eylat|/[Gg]elat|[Gg]elat|[Kk]eylat) gerar_key &;; + /[Kk]eygens|/[Gg]erar|[Gg]erar|[Kk]eygens) gerar_keyc &;; + /[Bb]uscar|[Bb]uscar) reply &;; + /[Ii]nfosys) infosys_src &;; + /[Ii]dgen|[Ii]dgen) listID_GEN &;; + /[Cc]atip|[Cc]atip) list_IP &;; + /[Dd]elid) replydos &;; + /[Aa]ddban) idban &;; + /[Ll]ist) listID_src &;; + /[Ll]iscup) listIDcup_src &;; + /[Uu]ser) criarteste2 &;; + /[Uu]ser3) criarteste3 &;; + /[Ss]sl) sslt &;; + /[Mm]enub) menublok &;; + /[Mm]enurem) menu_dos &;; + /[Uu]p) updates &;; + /[Ii]plist) show_connected_ip&;; + /[Rr]eip) remove_connection &;; + /[Ll]iskey) listkey_src &;; + /[Dd]ari) replydos & ;; + /[Ii]nstalador) link_src &;; + /[Cc]a) filesdos &;; + /[Dd]arnix) autovps &;; + /[Rr]eser) restart_genbot &;; + /ippp)domain-IP -ip &;; + /[Dd]omain|[.@/+-_!?][Dd]omain)domain-IP&;; + /createsubd)createsubd "${comando[1]}" "${comando[2]}" &;; + /[Aa]ddip) newip &;; + /[Dd]omain)domain-IP&;; + /*|*) invalido_fun &;; + esac + fi + del_msj + fi + done +done diff --git a/exec/darnix/http-server.sh b/exec/darnix/http-server.sh new file mode 100755 index 0000000..4d60389 --- /dev/null +++ b/exec/darnix/http-server.sh @@ -0,0 +1,365 @@ +#!/bin/bash +IVAR="/etc/http-instas" +onliCHECK=/var/www/html/dani +LIST="lista-arq" +[[ -d /var/www/html/dani ]] || mkdir ${onliCHECK} +install_fun () { +apt-get install netcat -y +} +meu_ip_fun () { +MIP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1) +MIP2=$(wget -qO- ipv4.icanhazip.com) +[[ "$MIP" != "$MIP2" ]] && IP="$MIP2" || IP="$MIP" +} + +meu_ip_func () { +MIP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1) +MIP2=$(wget -qO- ipv4.icanhazip.com) +[[ "$MIP" != "$MIP2" ]] && IP="$MIP2" || IP="$MIP" +} +#OFUSCATE + +ofus() { + unset server + server=$(echo ${txt_ofuscatw} | cut -d':' -f1) + unset txtofus + number=$(expr length $1) + for ((i = 1; i < $number + 1; i++)); do + txt[$i]=$(echo "$1" | cut -b $i) + case ${txt[$i]} in + ".") txt[$i]="v" ;; + "v") txt[$i]="." ;; + "1") txt[$i]="@" ;; + "@") txt[$i]="1" ;; + "2") txt[$i]="?" ;; + "?") txt[$i]="2" ;; + "4") txt[$i]="p" ;; + "p") txt[$i]="4" ;; + "-") txt[$i]="L" ;; + "L") txt[$i]="-" ;; + esac + txtofus+="${txt[$i]}" + done + echo "$txtofus" | rev + } + +ofusc() { + unset server + server=$(echo ${txt_ofuscatw} | cut -d':' -f1) + unset txtofus + number=$(expr length $1) + for ((i = 1; i < $number + 1; i++)); do + txt[$i]=$(echo "$1" | cut -b $i) + case ${txt[$i]} in + ".")txt[$i]="C";; +"C")txt[$i]=".";; +"3")txt[$i]="@";; +"@")txt[$i]="3";; +"4")txt[$i]="9";; +"9")txt[$i]="4";; +"6")txt[$i]="P";; +"P")txt[$i]="6";; +"L")txt[$i]="K";; +"K")txt[$i]="L";; +esac + txtofus+="${txt[$i]}" + done + echo "$txtofus" | rev +} + + +# LISTEN +listen_fun () { +local PORTA="8888" && local PROGRAMA="/bin/http-server.sh" +while true; do nc.traditional -l -p "$PORTA" -e "$PROGRAMA"; done +} +# SERVER +server_fun () { +meu_ip_fun + +PORTA="8888" +DIR="/etc/http-shell" #DIRETORIO DAS KEYS ARMAZENADAS +unset ENV_ARQ + if [[ ! -d $DIR ]]; then mkdir $DIR; fi +read URL + + +KEY=$(echo $URL|cut -d' ' -f2|cut -d'/' -f2) && [[ ! $KEY ]] && KEY="ERRO" #KEY +ARQ=$(echo $URL|cut -d' ' -f2|cut -d'/' -f3) && [[ ! $ARQ ]] && ARQ="ERRO" #LISTA INSTALACAO +USRIP=$(echo $URL|cut -d' ' -f2|cut -d'/' -f4) && [[ ! $USRIP ]] && USRIP="ERRO" #IP Del USUARIO +REQ=$(echo $URL|cut -d' ' -f2|cut -d'/' -f5) && [[ ! $REQ ]] && REQ="ERRO" + +FILE2="${DIR}/${KEY}" +FILE="${DIR}/${KEY}/$ARQ" + + + +echo "KEY: $KEY" >&2 +echo "LISTA: $ARQ" >&2 +echo "IP: $USRIP" >&2 +echo "REQ: $REQ" >&2 +DIRETORIOKEY="$DIR/$KEY" # DIRETORIO DA KEY +LISTADEARQUIVOS="$DIRETORIOKEY/$ARQ" # LISTA DE ARQUIVOS +if [[ -d "$DIRETORIOKEY" ]]; then #VERIFICANDO SE A CHAVE EXISTE + if [[ -e "$DIRETORIOKEY/$ARQ" ]]; then #VERIFICANDO LISTA DE ARQUIVOS + #ENVIA LISTA DE DOWLOADS + FILE="$DIRETORIOKEY/$ARQ" + STATUS_NUMBER="200" + STATUS_NAME="Found" + ENV_ARQ="True" + fi + if [[ -e "$DIRETORIOKEY/FERRAMENTA" ]]; then #VERIFICA SE A KEY E FERRAMETA + if [[ ${USRIP} != "ERRO" ]]; then #SE FOR FERRAMENTA O IP NAO DEVE SER ENVIADO + FILE="${DIR}/ERROR-KEY" + echo "FERRAMENTA KEY!" > ${FILE} + ENV_ARQ="False" + fi + else + if [[ ${USRIP} = "ERRO" ]]; then #VERIFICA SE FOR INSTALACAO O IP DEVE SER ENVIADO + FILE="${DIR}/ERROR-KEY" + echo "KEY DE INSTALACION!" > ${FILE} + ENV_ARQ="False" + fi + fi +else +# KEY INVALIDA + FILE="${DIR}/ERROR-KEY" + echo "KEY INVALIDA!" > ${FILE} + STATUS_NUMBER="200" + STATUS_NAME="Found" + ENV_ARQ="False" +fi +#ENVIA DADOS AO USUARIO +cat << EOF +HTTP/1.1 $STATUS_NUMBER - $STATUS_NAME +Date: $(date) +Server: ShellHTTP +Content-Length: $(wc --bytes "$FILE" | cut -d " " -f1) +Connection: close +Content-Type: text/html; charset=utf-8 + +$(cat "$FILE") +EOF +if [[ $ENV_ARQ = "True" ]]; then +( +mkdir /var/www/html/$KEY +mkdir /var/www/$KEY +TIME="20+" + for arqs in `cat $FILE`; do + cp ${FILE2}/$arqs /var/www/html/$KEY/ + cp ${FILE2}/$arqs /var/www/$KEY/ + TIME+="1+" + done +_key="$(ofus ${IP}:${PORTA}/${KEY}/${LIST})" +_key="$(ofusc ${IP}:${PORTA}/${KEY}/${LIST})" +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" > /var/www/html/$KEY/checkIP.log +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" > /var/www/$KEY/checkIP.log +RESELL="$(cat /var/www/$KEY/message.txt)" +TIME=$(echo "${TIME}0"|bc) +sleep ${TIME}s +rm -rf /var/www/html/$KEY +rm -rf /var/www/$KEY +log="/etc/gerar-sh-log" +_hora=$(printf '%(%D-%H:%M:%S)T') +if [[ -d $FILE2 ]]; then +PERM="${DIR}/${KEY}/keyfixa" +if [[ -e $PERM ]]; then + if [[ $(cat $PERM) != "$USRIP" ]]; then + log="/etc/gerar-sh-log" + echo "$(cat ${FILE2}.name) | IP-FIJA:$USRIP | ${_key} | $_hora" >> $log + echo "$(cat ${FILE2}.name) | IP-FIJA:$USRIP | ${_key} | $_hora" >> ${onliCHECK}/checkIP.log && chmod +x ${onliCHECK}/checkIP.log + #cat /etc/gerar-sh-log > ${onliCHECK}/checkIP.log + rm -rf $FILE2 + rm -f ${FILE2}.name + fi +else +uid=$(uuidgen) +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" >> $log +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" >> ${onliCHECK}/checkIP.log && chmod +x ${onliCHECK}/checkIP.log +[[ -e /etc/CAT-BOT/token ]] && { +ID="$(cat ${FILE2}.name)" && ID="$(echo $ID | awk '{print $1}' | sed -e 's/[^0-9]//ig')" +[[ ${ID} -lt '999' ]] && ID='576145089' +TOKEN="$(cat /etc/CAT-BOT/token)" +urlBOT="https://api.telegram.org/bot$TOKEN/sendMessage" +#MENSAJE=" =======================================\n" +MENSAJE+=" ️✅ 𝗞𝗘𝗬 𝗔𝗖𝗧𝗜𝗩𝗔𝗗𝗔 ✅ \n" +MENSAJE+="\n" +MENSAJE+="🔐 Key Encriptado\n" +MENSAJE+="\n" +MENSAJE+="🔑AES $uid\n" +#MENSAJE+=" =========== ☝️ USADA ☝ ============\n" +MENSAJE+="\n" +MENSAJE+=" 👤 ${RESELL}\n" +MENSAJE+=" 🆔 ${ID} \n" +#MENSAJE+=" =======================================\n" +MENSAJE+=" 🌐 : $USRIP \n" +MENSAJE+=" 🕐 $_hora \n" +MENSAJE+=" INSTALACION N° $(cat ${onliCHECK}/checkIP.log | wc -l)\n" +MENSAJE+=' ===========▫️NotiBot▫️======\n' +#MENSAJE+=' ⚜ By @ChumoGH ⚜ \n' +#MENSAJE+=" ==========================\n" +#curl -s -X POST $urlBOT -d chat_id=$ID -d text="$(echo -e "$MENSAJE")" &>/dev/null +MENSAJE+='&reply_markup={"inline_keyboard":[[{"text":"KEY DNX","callback_data":"/keygen"},{"text":" SOPORTE ","url":"https://t.me/darnix0"}]]}' +#curl -s -X POST $urlBOT -d chat_id=$ID -d text="$(echo -e "$MENSAJE")" &>/dev/null +#curl -s --max-time 10 -d "chat_id=$ID&disable_web_page_preview=1&text=$(echo -e "$MENSAJE")&parse_mode=html" $urlBOT &>/dev/null +curl -s --max-time 10 -d "chat_id=$ID&disable_web_page_preview=1&text=$(echo -e "$MENSAJE")" ${urlBOT} &>/dev/null +} +rm -rf $FILE2 +rm -f ${FILE2}.name +fi +num=$(cat ${IVAR}) + if [[ $num = "" ]]; then + num=0 + fi +let num++ +echo $num > $IVAR +fi +) & > /dev/null +fi +} + +server_func () { +meu_ip_func + +PORTA="8888" +DIR="/etc/http-shell" #DIRETORIO DAS KEYS ARMAZENADAS +unset ENV_ARQ + if [[ ! -d $DIR ]]; then mkdir $DIR; fi +read URL + + +KEY=$(echo $URL|cut -d' ' -f2|cut -d'/' -f2) && [[ ! $KEY ]] && KEY="ERRO" #KEY +ARQ=$(echo $URL|cut -d' ' -f2|cut -d'/' -f3) && [[ ! $ARQ ]] && ARQ="ERRO" #LISTA INSTALACAO +USRIP=$(echo $URL|cut -d' ' -f2|cut -d'/' -f4) && [[ ! $USRIP ]] && USRIP="ERRO" #IP Del USUARIO +REQ=$(echo $URL|cut -d' ' -f2|cut -d'/' -f5) && [[ ! $REQ ]] && REQ="ERRO" + +FILE2="${DIR}/${KEY}" +FILE="${DIR}/${KEY}/$ARQ" + + + +echo "KEY: $KEY" >&2 +echo "LISTA: $ARQ" >&2 +echo "IP: $USRIP" >&2 +echo "REQ: $REQ" >&2 +DIRETORIOKEY="$DIR/$KEY" # DIRETORIO DA KEY +LISTADEARQUIVOS="$DIRETORIOKEY/$ARQ" # LISTA DE ARQUIVOS +if [[ -d "$DIRETORIOKEY" ]]; then #VERIFICANDO SE A CHAVE EXISTE + if [[ -e "$DIRETORIOKEY/$ARQ" ]]; then #VERIFICANDO LISTA DE ARQUIVOS + #ENVIA LISTA DE DOWLOADS + FILE="$DIRETORIOKEY/$ARQ" + STATUS_NUMBER="200" + STATUS_NAME="Found" + ENV_ARQ="True" + fi + if [[ -e "$DIRETORIOKEY/FERRAMENTA" ]]; then #VERIFICA SE A KEY E FERRAMETA + if [[ ${USRIP} != "ERRO" ]]; then #SE FOR FERRAMENTA O IP NAO DEVE SER ENVIADO + FILE="${DIR}/ERROR-KEY" + echo "FERRAMENTA KEY!" > ${FILE} + ENV_ARQ="False" + fi + else + if [[ ${USRIP} = "ERRO" ]]; then #VERIFICA SE FOR INSTALACAO O IP DEVE SER ENVIADO + FILE="${DIR}/ERROR-KEY" + echo "KEY DE INSTALACION!" > ${FILE} + ENV_ARQ="False" + fi + fi +else +# KEY INVALIDA + FILE="${DIR}/ERROR-KEY" + echo "KEY INVALIDA!" > ${FILE} + STATUS_NUMBER="200" + STATUS_NAME="Found" + ENV_ARQ="False" +fi +#ENVIA DADOS AO USUARIO +cat << EOF +HTTP/1.1 $STATUS_NUMBER - $STATUS_NAME +Date: $(date) +Server: ShellHTTP +Content-Length: $(wc --bytes "$FILE" | cut -d " " -f1) +Connection: close +Content-Type: text/html; charset=utf-8 + +$(cat "$FILE") +EOF +if [[ $ENV_ARQ = "True" ]]; then +( +mkdir /var/www/html/$KEY +mkdir /var/www/$KEY +TIME="20+" + for arqs in `cat $FILE`; do + cp ${FILE2}/$arqs /var/www/html/$KEY/ + cp ${FILE2}/$arqs /var/www/$KEY/ + TIME+="1+" + done +#_key="$(ofus ${IP}:${PORTA}/${KEY}/${LIST})" +_key="$(ofusc ${IP}:${PORTA}/${KEY}/${LIST})" +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" > /var/www/html/$KEY/checkIP.log +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" > /var/www/$KEY/checkIP.log +RESELL="$(cat /var/www/$KEY/message.txt)" +TIME=$(echo "${TIME}0"|bc) +sleep ${TIME}s +rm -rf /var/www/html/$KEY +rm -rf /var/www/$KEY +log="/etc/gerar-sh-log" +_hora=$(printf '%(%D-%H:%M:%S)T') +if [[ -d $FILE2 ]]; then +PERM="${DIR}/${KEY}/keyfixa" +if [[ -e $PERM ]]; then + if [[ $(cat $PERM) != "$USRIP" ]]; then + log="/etc/gerar-sh-log" + echo "$(cat ${FILE2}.name) | IP-FIJA:$USRIP | ${_key} | $_hora" >> $log + echo "$(cat ${FILE2}.name) | IP-FIJA:$USRIP | ${_key} | $_hora" >> ${onliCHECK}/checkIP.log && chmod +x ${onliCHECK}/checkIP.log + #cat /etc/gerar-sh-log > ${onliCHECK}/checkIP.log + rm -rf $FILE2 + rm -f ${FILE2}.name + fi +else +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" >> $log +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" >> ${onliCHECK}/checkIP.log && chmod +x ${onliCHECK}/checkIP.log +[[ -e /etc/CAT-BOT/token ]] && { +ID="$(cat ${FILE2}.name)" && ID="$(echo $ID | awk '{print $1}' | sed -e 's/[^0-9]//ig')" +[[ ${ID} -lt '999' ]] && ID='576145089' +TOKEN="$(cat /etc/CAT-BOT/token)" +urlBOT="https://api.telegram.org/bot$TOKEN/sendMessage" +#MENSAJE=" =======================================\n" +MENSAJE+=" ❗️𝗞𝗘𝗬 𝗔𝗖𝗧𝗜𝗩𝗔𝗗𝗔❗️ \n" +#MENSAJE+=" ❯ ══━━━━⎊⎊━━━━══ ❮\n" +MENSAJE+="🔑 ${_key}\n" +#MENSAJE+=" =========== ☝️ USADA ☝ ============\n" +#MENSAJE+=" ☝️ USADA ☝️ \n" +MENSAJE+=" 👤 ${RESELL}\n" +MENSAJE+=" 🆔 ${ID} \n" +#MENSAJE+=" =======================================\n" +MENSAJE+=" 🌐 : $USRIP \n" +MENSAJE+=" 🕐 $_hora \n" +MENSAJE+=" INSTALACION N° $(cat ${onliCHECK}/checkIP.log | wc -l)\n" +MENSAJE+=' ===========▫️NotiBotC▫️======\n' +#MENSAJE+=' ⚜ By @ChumoGH ⚜ \n' +#MENSAJE+=" ==========================\n" +#curl -s -X POST $urlBOT -d chat_id=$ID -d text="$(echo -e "$MENSAJE")" &>/dev/null +MENSAJE+='&reply_markup={"inline_keyboard":[[{"text":"KEY DNX","callback_data":"/keygen"},{"text":" SOPORTE ","url":"https://t.me/darnix0"}]]}' +#curl -s -X POST $urlBOT -d chat_id=$ID -d text="$(echo -e "$MENSAJE")" &>/dev/null +#curl -s --max-time 10 -d "chat_id=$ID&disable_web_page_preview=1&text=$(echo -e "$MENSAJE")&parse_mode=html" $urlBOT &>/dev/null +curl -s --max-time 10 -d "chat_id=$ID&disable_web_page_preview=1&text=$(echo -e "$MENSAJE")" ${urlBOT} &>/dev/null +} +rm -rf $FILE2 +rm -f ${FILE2}.name +fi +num=$(cat ${IVAR}) + if [[ $num = "" ]]; then + num=0 + fi +let num++ +echo $num > $IVAR +fi +) & > /dev/null +fi +} + +[[ $1 = @(-[Ss]tart|-[Ss]|-[Ii]niciar) ]] && listen_fun && exit +[[ $1 = @(-[Ii]stall|-[Ii]|-[Ii]stalar) ]] && listen_fun && exit +server_fun +server_func diff --git a/exec/darnix/menu.sh b/exec/darnix/menu.sh new file mode 100644 index 0000000..217d724 --- /dev/null +++ b/exec/darnix/menu.sh @@ -0,0 +1,615 @@ +#!/bin/bash + +source /usr/local/lib/drowkid/msg + +check_ip() { +IP=$(wget -qO- ipv4.icanhazip.com) +IP=$(cat /usr/local/lib/drowkid/ipdk|grep $IP) +} + +####inicio puertos +ports_() { + unset porta + _core=$(printf '%-1s' "$(grep -c cpu[0-9] /proc/stat)") + _usop=$(printf '%-1s' "$(top -bn1 | awk '/Cpu/ { cpu = "" 100 - $8 "%" }; END { print cpu }')") + ## + ram1=$(free -h | grep -i mem | awk {'print $2'}) + ram2=$(free -h | grep -i mem | awk {'print $4'}) + ram3=$(free -h | grep -i mem | awk {'print $3'}) + ## + _ram=$(printf ' %-9s' "$(free -h | grep -i mem | awk {'print $2'})") + _usor=$(printf '%-8s' "$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }')") + _core=$(printf '%-1s' "$(grep -c cpu[0-9] /proc/stat)") + _usop=$(printf '%-1s' "$(top -bn1 | awk '/Cpu/ { cpu = "" 100 - $8 "%" }; END { print cpu }')") + + mt=$(free -h | grep Mem | sed 's/\s\+/,/g' | cut -d , -f2) + mb=$(free -h | grep Mem | sed 's/\s\+/,/g' | cut -d , -f6) + ml=$(free -h | grep Mem | sed 's/\s\+/,/g' | cut -d , -f7) + pp=$(cat /proc/cpuinfo | grep "model name" | uniq | awk -F ":" '{print $2}') + csss=$(cat /proc/cpuinfo | grep processor | wc -l) + usoo=$(grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}') + CPU=$(echo $usoo | awk '{printf("%d\n",$1 + 0.5)}') + PID_GEN1=$(ps x | grep -v grep | grep "8888") + [[ ! $PID_GEN1 ]] && PID_GEN1="\033[0;31m[\033[0;35mCOLAPZADO\033[0;31m]" || PID_GEN1="\033[0;35m[\033[0;36mFUNCIONANDO\033[0;31m]" + porta=$(if netstat -tunlp | grep nc.tradit 1>/dev/null 2>/dev/null; then + echo -e "\033[0;36m Keygen: \033[0;31m[\033[0;32m ON \033[0;31m]" + else + echo -e "\033[0;36m Keygen: \033[0;35m[\033[0;31m OFF \033[0;35m]" + fi) + [[ $v1 = $v2 ]] && vesaoSCT="\033[1;32m${txt[315]} \033[0;33m ($v2)" || vesaoSCT="\033[1;31m${txt[316]}\033[0;33m($v2) �72 \033[1;32m($v1)\033[1;31m" + echo -e " ${cor[2]} ${vesaoSCT} ${cor[0]}" + msg -bar + echo -e "\033[1;34m ${TOP}\033[1;31m TOTAL:\033[1;32m "$mt "\033[1;34m ${TOP} \033[1;31m Libre:\033[1;32m "$ram2 "\033[1;34m ${TOP} \033[1;31m Usada:\033[1;32m"$ram3 + echo -e "\033[1;34m ${TOP}\033[1;31m Uso RAM: \033[1;32m"$_usor "\033[1;34m${TOP}\033[1;31m Uso CPU: \033[1;32m$_usop \033[1;34m ${TOP}\033[1;31m Cache:\033[1;32m"$mb # $CPU"%" + msg -bar + echo -e "\033[0;31mSystem:\033[0;32m$(cat /etc/issue.net) \033[0;31mIP:\033[0;32m $(wget -qO- ipv4.icanhazip.com)" + msg -bar + echo "" + echo -ne "$(msg -verd " Keys Usadas") $(msg -azu " : ") " && msg -bra "\033[1;41m $(cat $IVAR) $porta" + echo "" +} + + +function varcheck(){ + +SCPT_DIR="/etc/SCRIPT" +DIR="/etc/http-shell" +LIST="-SPVweN" +wget -O /bin/ejecutar/v-new.log https://raw.githubusercontent.com/NetVPS/Multi-Script/main/ChuGH-5.7u/adm-lite/v-local.log &>/dev/nu +v1='v1.1'&&v2=${v1:+v1.2} + +} + +meu_ip() { + MIP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1) + MIP2=$(wget -qO- ipv4.icanhazip.com) + [[ "$MIP" != "$MIP2" ]] && IP="$MIP2" || IP="$MIP" +} + + +list_fix() { + rm ${SCPT_DIR}/*.x.c &>/dev/null + unset KEY + KEY="$1" + name="$2" + #CRIA DIR + [[ ! -e ${DIR} ]] && mkdir ${DIR} + #ENVIA ARQS + i=0 + VALUE+="gerar.sh http-server.py $BASICINST" + for arqx in $(ls ${SCPT_DIR}); do + [[ $(echo $VALUE | grep -w "${arqx}") ]] && continue + echo -e "[$i] -> ${arqx}" + arq_list[$i]="${arqx}" + let i++ + done + msg -bar + #read -p " OPCION : " readvalue + #CRIA KEY + [[ ! -e ${DIR}/${KEY} ]] && mkdir ${DIR}/${KEY} + #PASSA ARQS + [[ -z $readvalue ]] && readvalue="1" + [[ -z $nombrevalue ]] && nombrevalue="$nomkey$name" + if [[ $readvalue = @(cgh|1) ]]; then + #ADM BASIC + echo -e " - KEY SCRIPT BASE ADM - " + arqslist="$BASICINST" + for arqx in $(echo "${arqslist}"); do + [[ -e ${DIR}/${KEY}/$arqx ]] && continue #ANULA ARQUIVO CASO EXISTA + cp ${SCPT_DIR}/$arqx ${DIR}/${KEY}/ + echo "$arqx" >>${DIR}/${KEY}/${LIST} + done + else + for arqx in $(echo "${readvalue}"); do + #UNE ARQ + [[ -e ${DIR}/${KEY}/${arq_list[$arqx]} ]] && continue #ANULA ARQUIVO CASO EXISTA + rm ${SCPT_DIR}/*.x.c &>/dev/null + cp ${SCPT_DIR}/${arq_list[$arqx]} ${DIR}/${KEY}/ + echo "${arq_list[$arqx]}" >>${DIR}/${KEY}/${LIST} + done + echo "TRUE" >>${DIR}/${KEY}/FERRAMENTA + fi + rm ${SCPT_DIR}/*.x.c &>/dev/null + echo "$nombrevalue" >${DIR}/${KEY}.name + [[ ! -z $IPFIX ]] && echo "$IPFIX" >${DIR}/${KEY}/keyfixa + echo -e "-------------------------------------------------" +} + +ofus() { + unset txtofus + number=$(expr length $1) + for ((i = 1; i < $number + 1; i++)); do + txt[$i]=$(echo "$1" | cut -b $i) + case ${txt[$i]} in + ".") txt[$i]="x" ;; + "x") txt[$i]="." ;; + "5") txt[$i]="s" ;; + "s") txt[$i]="5" ;; + "1") txt[$i]="@" ;; + "@") txt[$i]="1" ;; + "2") txt[$i]="?" ;; + "?") txt[$i]="2" ;; + "4") txt[$i]="0" ;; + "0") txt[$i]="4" ;; + "/") txt[$i]="K" ;; + "K") txt[$i]="/" ;; + esac + txtofus+="${txt[$i]}" + done + echo "$txtofus" | rev +} + +fix_key() { + unset nomkey + echo " Bienvenido, Porfavor dijita el Nombre del DUE�O de la KEYs" + echo " DIJITA 0 PARA REGRESAR " + read -p " RESELLER deL Keys : " nomkey + [[ $nomkey = 0 ]] && return + [[ -z $nomkey ]] && { + [[ -e /etc/menu_ito ]] && nomkey="$(cat /etc/menu_ito)" || nomkey="$(curl -sSL "https://www.dropbox.com/s/z38hj1mz3q9krso/menu_credito")" + } + msg -bar + echo " Bienvenido, Porfavor ingresa el numero de keys a generar" + read -p "Numero de Keys : " numk + [[ -z ${numk} ]] && numk=0 + msg -bar + read -p "INGRESA NOMBRE DE VENDEDOR : " vkey + clear + msg -bar + echo -e "$numk Keys activas,de $nomkey y esperando instalaci�n!" + echo "$nomkey" >${SCPT_DIR}/menu_credito + for ((w = 0; w < $numk; w++)); do + valuekey="$(date | md5sum | head -c11)" + valuekey+="$(echo $(($RANDOM * 10)) | head -c 6)" + xyz+="$(echo $(($RANDOM * 3)) | head -c 4)" + #valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + list_fix "$valuekey" "$(($w + 1))" + keyfinal=$(ofus "$(wget -qO- ipv4.icanhazip.com):8888/$valuekey/$LIST") + echo -e " ${CHeko} Key $(($w + 1)) Exitosa! $(printf '%(%D-%H:%M:%S)T') \n" + echo -e " ${TTcent} ${keyfinal} ${TTcent}" | pv -qL 80 + done + [[ -e /etc/menu_ito ]] && cat /etc/menu_ito >${SCPT_DIR}/menu_credito || echo -e "\nCreditos Aplicados Exitosamente" + #$(cat < /etc/CAT-BOT/resell) + msg -bar + echo -e " ${ScT} *INSTALADOR UNIVERSAL* ${ScT}" + msg -bar && echo -ne "$(msg -verd "apt update -y &&") $(msg -aqua "apt upgrade -y &&\n") " && msg -bra "\033[7;49;35m wget -q https://raw.githubusercontent.com/ChumoGH/ScriptCGH/main/setup && chmod 777 setup && ./setup --install" + msg -bar + [[ -e /etc/menu_numito ]] && menumito="$(cat /etc/menu_numito)" || menumito="https://t.me/ChumoGH_bot" + [[ -z $vkey ]] && vkey="@drowkid01" + echo -e " ${ceLL} Soporte : Ubuntu 14.04 - 16.04 - 18.04 - 20.04 - 21.04 - 22.04\n S.O PREFERENTE 18.04" + echo -e " Verificada: $vkey ${ScT} RESELLER ACTUAL : $nomkey" | pv -qL 80 + msg -bar + read -p "Enter para finalizar" +} +att_gen_key() { + i=0 + rm ${SCPT_DIR}/*.x.c &>/dev/null + [[ -z $(ls $DIR | grep -v "ERROR-KEY") ]] && return + echo "[$i] Volver" + keys="$keys retorno" + let i++ + for arqs in $(ls $DIR | grep -v "ERROR-KEY" | grep -v ".name"); do + arqsx=$(ofus "$IP:8888/$arqs/$LIST") + if [[ $(cat ${DIR}/${arqs}.name | grep GERADOR) ]]; then + echo -e "\033[1;31m[$i] $arqsx ($(cat ${DIR}/${arqs}.name))\033[1;32m ($(cat ${DIR}/${arqs}/keyfixa))\033[0m" + keys="$keys $arqs" + let i++ + fi + done + keys=($keys) + msg -bar + while [[ -z ${keys[$value]} || -z $value ]]; do + read -p "Escolha qual Atualizar[t=todos]: " -e -i 0 value + done + [[ $value = 0 ]] && return + if [[ $value = @(t|T) ]]; then + i=0 + [[ -z $(ls $DIR | grep -v "ERROR-KEY") ]] && return + for arqs in $(ls $DIR | grep -v "ERROR-KEY" | grep -v ".name"); do + KEYDIR="$DIR/$arqs" + rm $KEYDIR/*.x.c &>/dev/null + if [[ $(cat ${DIR}/${arqs}.name | grep GERADOR) ]]; then #Keyen Atualiza + rm ${KEYDIR}/${LIST} + for arqx in $(ls $SCPT_DIR); do + cp ${SCPT_DIR}/$arqx ${KEYDIR}/$arqx + echo "${arqx}" >>${KEYDIR}/${LIST} + rm ${SCPT_DIR}/*.x.c &>/dev/null + rm $KEYDIR/*.x.c &>/dev/null + done + arqsx=$(ofus "$IP:8888/$arqs/$LIST") + echo -e "\033[1;33m[KEY]: $arqsx \033[1;32m(ATUALIZADA!)\033[0m" + fi + let i++ + done + rm ${SCPT_DIR}/*.x.c &>/dev/null + msg -bar2 + echo -ne "\033[0m" && read -p "Enter" + return 0 + fi + KEYDIR="$DIR/${keys[$value]}" + [[ -d "$KEYDIR" ]] && { + rm $KEYDIR/*.x.c &>/dev/null + rm ${KEYDIR}/${LIST} + for arqx in $(ls $SCPT_DIR); do + cp ${SCPT_DIR}/$arqx ${KEYDIR}/$arqx + echo "${arqx}" >>${KEYDIR}/${LIST} + rm ${SCPT_DIR}/*.x.c &>/dev/null + rm $KEYDIR/*.x.c &>/dev/null + done + arqsx=$(ofus "$IP:8888/${keys[$value]}/$LIST") + echo -e "\033[1;33m[KEY]: $arqsx \033[1;32m(ATUALIZADA!)\033[0m" + read -p "Enter" + rm ${SCPT_DIR}/*.x.c &>/dev/null + } +} + +del_KILL() { + for arqlist in $(ls $DIR | grep -v "ERROR-KEY" | grep -v ".name"); do + [[ -e /${DIR}/${arqlist}.name ]] || rm -rf /${DIR}/${arqlist} + done +} + +remover_key() { + del_KILL + i=0 + [[ -z $(ls $DIR | grep -v "ERROR-KEY") ]] && return + echo "[$i] Volver" + keys="$keys retorno" + let i++ + for arqs in $(ls $DIR | grep -v "ERROR-KEY" | grep -v ".name"); do + arqsx=$(ofus "$IP:8888/$arqs/$LIST") + if [[ ! -e ${DIR}/${arqs}/used.date ]]; then + echo -e "\033[1;32m[$i] $arqsx ($(cat ${DIR}/${arqs}.name))\033[1;33m (Key Activa)\033[0m" || rm -rf ${DIR}/${arqs} + else + echo -e "\033[1;31m[$i] $arqsx ($(cat ${DIR}/${arqs}.name))\033[1;33m ($(cat ${DIR}/${arqs}/used.date) IP: $(cat ${DIR}/${arqs}/used))\033[0m" + fi + keys="$keys $arqs" + let i++ + done + keys=($keys) + msg -bar + while [[ -z ${keys[$value]} || -z $value ]]; do + read -p "Elija cual remover: " -e -i 0 value + done + [[ -d "$DIR/${keys[$value]}" ]] && rm -rf $DIR/${keys[$value]}* || return +} +remover_key_usada() { + i=0 + [[ -z $(ls $DIR | grep -v "ERROR-KEY") ]] && return + for arqs in $(ls $DIR | grep -v "ERROR-KEY" | grep -v ".name"); do + arqsx=$(ofus "$IP:8888/$arqs/$LIST") + if [[ -e ${DIR}/${arqs}/used.date ]]; then #KEY USADA + if [[ $(ls -l -c ${DIR}/${arqs}/used.date | cut -d' ' -f7) != $(date | cut -d' ' -f3) ]]; then + rm -rf ${DIR}/${arqs}* + echo -e "\033[1;31m[KEY]: $arqsx \033[1;32m(Eliminada!)\033[0m" + else + echo -e "\033[1;32m[KEY]: $arqsx \033[1;32m(Key Activa!)\033[0m" + fi + else + echo -e "\033[1;32m[KEY]: $arqsx \033[1;32m(Key Activa!)\033[0m" + fi + let i++ + done + msg -bar2 + echo -ne "\033[0m" && read -p "Enter" +} +start_gen() { + unset bot_ini + PIDGEN=$(ps x | grep -v grep | grep "http-server.sh") + if [[ ! $PIDGEN ]]; then + msg -bar + echo -ne "\033[1;97m Poner en linea despues de un reinicio [s/n]: " + read bot_ini + msg -bar + [[ $bot_ini = @(s|S|y|Y) ]] && { + crontab -l >/root/cron + echo "@reboot screen -dmS generador /bin/http-server.sh -start" >>/root/cron + crontab /root/cron + rm /root/cron + echo '#!/bin/bash +killall http-server.sh +screen -dmS generador /bin/http-server.sh -start +echo #' >/bin/genon + chmod +rwx /bin/genon + echo "00 * * * * root bash /bin/genon" >>/etc/crontab + service cron restart + } || { + crontab -l >/root/cron + sed -i '/http-server.sh/ d' /root/cron + crontab /root/cron + rm /root/cron + sed '/genon/ d' /etc/crontab >/bin/ejecutar/crontab + cat /bin/ejecutar/crontab >/etc/crontab + service cron restart + + } + genon + else + killall http-server.sh + fi +} +message_gen() { + read -p "Ingresa el Mensaje: " MSGNEW + [[ -z $MSGNEW ]] && return + echo $MSGNEW >/etc/menu_ito + cat /etc/menu_ito >${SCPT_DIR}/menu_credito + read -p "Ingresa tu Numero de Contacto o tu ALIAS de TELEGRAM: " MSGNEW + echo $MSGNEW >/etc/menu_numito && chmod +rwx /etc/menu_numito + msg -bar +} + +act_gen() { + while [[ ${varread} != @([0-2]) ]]; do + echo -e "Bienvenido al Actualizador, Escoje que vas a Actualizar\n 1).- KEY ACTIVA\n 2).- Creditos del ADM\n " | lolcat + echo -ne "${cor[6]}" + read -p " Escoje :" varread + done + msg -bar + if [[ ${varread} = 0 ]]; then + return + elif [[ ${varread} = 1 ]]; then + att_gen_key + elif [[ ${varread} = 2 ]]; then + message_gen + fi + + #source <(curl -sL https://raw.githubusercontent.com/ChumoGH/ChuKK-SCRIPT/master/Key-gerar/insta.sh) +} + +rmv_iplib() { + echo -e "SERVIDORES DE KEY ATIVOS!" + rm /var/www/html/newlib && touch /var/www/html/newlib + rm ${SCPT_DIR}/*.x.c &>/dev/null + [[ -z $(ls $DIR | grep -v "ERROR-KEY") ]] && return + for arqs in $(ls $DIR | grep -v "ERROR-KEY" | grep -v ".name"); do + if [[ $(cat ${DIR}/${arqs}.name | grep GERADOR) ]]; then + var=$(cat ${DIR}/${arqs}.name) + ip=$(cat ${DIR}/${arqs}/keyfixa) + # echo -ne "\033[1;31m[USUARIO]:(\033[1;32m${var%%[*}\033[1;31m) \033[1;33m[GERADOR]:\033[1;32m ($ip)\033[0m" + echo "$ip" >>/var/www/html/newlib && echo -e " \033[1;36m[ATUALIZADO]" + fi + done + echo "51.222.29.216" >>/var/www/html/newlib + msg -bar + read -p "Enter" +} + +bot_menu() { + [[ -e /etc/nivbot ]] || echo "0" >/etc/nivbot + [[ -d /etc/CAT-BOT ]] && chmod +rwx /etc/CAT-BOT/* + echo -ne "\033[1;31m[ ! ] RESPALDANDO USUARIO ADMINISTRADOR " + ( + [[ -e /etc/CAT-BOT/sources/costes ]] && mv /etc/CAT-BOT/sources/costes $HOME/costes + [[ -e /etc/CAT-BOT/token ]] && mv /etc/CAT-BOT/token $HOME/token + [[ -e /etc/CAT-BOT/Admin-ID ]] && mv /etc/CAT-BOT/Admin-ID $HOME/Admin-ID + [[ -e /etc/CAT-BOT/User-ID ]] && mv /etc/CAT-BOT/User-ID $HOME/User-ID + [[ -e /etc/CAT-BOT/limit ]] && mv /etc/CAT-BOT/limit $HOME/limit + [[ -e /etc/CAT-BOT/resell ]] && mv /etc/CAT-BOT/resell $HOME/resell + [[ -e /etc/CAT-BOT/ress ]] && mv /etc/CAT-BOT/ress $HOME/ress + [[ -e /etc/CAT-BOT/num-key.cont ]] && mv /etc/CAT-BOT/num-key.cont $HOME/num-key.cont + ) && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]" + CIDdir=/etc/CAT-BOT && [[ ! -d ${CIDdir} ]] && mkdir ${CIDdir} + [[ ! -e "${CIDdir}/confbot.sh" ]] && wget --no-check-certificate -O ${CIDdir}/confbot.sh https://gitea.com/drowkid01/dpbt/raw/branch/main/Code-BOT-General/intBOT.sh &>/dev/null && chmod +rwx ${CIDdir}/confbot.sh + sed -i -e 's/\r$//' ${CIDdir}/confbot.sh + source ${CIDdir}/confbot.sh && rm -f ${CIDdir}/confbot.sh + bot_conf +} + +fum_ver() { + while [[ ! $Keey ]]; do + clear + export PATH=$PATH:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/bin:/usr/games + echo -e "\n \033[1;32m DIGITA TU KEY A VERIFICAR " + msg -ne "Script Key: " && read Keey + [[ ! -z $Keey ]] && Keey="$(echo "$Keey" | tr -d '[[:space:]]')" + tput cuu1 && tput dl1 + done + REQUEST=$(ofus "$Keey" | cut -d'/' -f2) + echo -e "\n" + echo -e " FILE Contend : ${REQUEST} $(echo ${REQUEST} | wc -c)" + echo -e "\n" + echo -e " VERIFICA, Si tu key Contiene \033[1;45m KEY DE ChumoGH! \033[0m " + echo -e "\n" + msg -ne " Link Key: http://$(ofus $Keey) \n " + IiP=$(ofus "$Keey" | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}') + [[ $(curl -s --connect-timeout 2 $IiP:8888) ]] && echo -e "\033[1;42mCONEXION CON SERVIDOR EXITOSA\033[0m" || echo -e "\033[1;43mCONEXION CON SERVIDOR FALLIDA\033[0m" + wget --no-check-certificate -O $HOME/list-key $(ofus $Keey)/$(wget -qO- ipv4.icanhazip.com) >/dev/null 2>&1 && echo -ne "\033[1;32m [ VERIFICANDO ]" || echo -e "\033[1;31m [ No Existe Acceso al KEY ]" #&& echo -e "\033[1;32m [ Key ]\n" || echo -e "\033[1;31m [ No Existe Acceso al KEY ]" + ofen=$(wget -qO- $(ofus $Keey)) + unset arqx + [[ -d $HOME/install ]] && rm -rf $HOME/install/* || mkdir $HOME/install + verificar_arq() { + echo "$1" >>$HOME/install/log.txt + } + n=1 + IP=$(ofus "$Keey" | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}') && echo "$IP" >/usr/bin/vendor_code + pontos="." + stopping=" COMPROBANDO " | sed -e 's/[^a-z -]//ig' + for arqx in $(cat $HOME/list-key); do + msg -verm "${stopping}${pontos}" && sleep 0.3s + wget --no-check-certificate -O $HOME/install/${arqx} ${IP}:81/${REQUEST}/${arqx} >/dev/null 2>&1 && verificar_arq "${arqx}" + tput cuu1 && tput dl1 + pontos+="." + n=$(($n + 1)) + done + echo -ne " ---> ESTADO : \033[1;45m$ofen\033[0m con " + [[ ! -e $HOME/install/log.txt ]] && touch $HOME/install/log.txt + echo " $(cat <$HOME/install/log.txt | wc -l) FILES " && rm -f $HOME/install/log.txt + msg -ne " \033[1;42mESTADO :\033[0m " + [[ -e $HOME/list-key ]] && { + echo -ne " " + [[ $ofen = "KEY DE ChumoGH!" ]] && + echo -e "KEY FUNCIONAL" && rm -f $HOME/list-key && echo -ne "\033[0m" + } || echo -e " KEY INVALIDA O USADA\033[0m\n" + #curl -s --connect-timeout 2 ${IiP}:81/${REQUEST}/menu_credito > menu_credito + msg -ne " RESELLER del Key :\033[0m " + [[ -e $HOME/install/menu_credito ]] && { + echo -ne " " + [[ "$(cat $HOME/install/menu_credito)" = "" ]] && { + echo -e "SIN RESELLER\033[0m" + } || echo -e "$(cat $HOME/install/menu_credito)\033[0m" && rm -rf $HOME/install && echo -ne "\033[0m" + } || echo -e " NO HAY CONTENIDO DE KEY Key\033[0m\n" + read -p "Enter" +} + +alter_id() { + while [[ ${varread} != @([0-3]) ]]; do + tittle + msg -bar + echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m Alterar Creditos POR ID \033[0;32m(#OFICIAL)" + echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m<\033[0;33m REINICIAR CONTADOR TOTAL \033[0;32m(#OFICIAL)" + msg -bar + echo -e " \033[0;35m[\033[0;36m0\033[0;35m] \033[0;34m<\033[0;33m Regresar" + msg -bar + echo -ne "${cor[6]}" + read -p " Opcion : " varread + done + msg -bar + if [[ ${varread} = 0 ]]; then + return 0 + elif [[ ${varread} = 1 ]]; then + echo -e "\033[1;32m DIGITA ID A REINICIAR " + msg -ne " Paste ID : " && read newli + sed -i "/${newli}/d" /etc/CAT-BOT/num-key.cont + echo "REGISTRO EN $(grep -o -i $newli /etc/CAT-BOT/num-key.cont | wc -l) KEYS" + read -p "Limite Aplicado Exitosamente" + elif [[ ${varread} = 2 ]]; then + echo -e "\033[1;32m BORRAREMOS EL CONTEO TOTAL DEL GENERADOR " + rm -rf /etc/CAT-BOT/num-key.cont && touch /etc/CAT-BOT/num-key.cont + echo "REGISTRO EN $(cat /etc/CAT-BOT/num-key.cont | wc -l) KEYS" + read -p "Limite Aplicado Exitosamente" + fi +} + +# SISTEMA DE SELECAO +selection_fun() { + local selection="null" + local range + for ((i = 0; i <= $1; i++)); do range[$i]="$i "; done + while [[ ! $(echo ${range[*]} | grep -w "$selection") ]]; do + echo -ne "\033[1;37mOpcion: " >&2 + read selection + tput cuu1 >&2 && tput dl1 >&2 + done + echo $selection +} +alter_limit() { + echo -e "\033[1;32m DIGITA TU NUEVO LIMITE " + msg -ne "New Limit: " && read newli + echo $newli >/etc/CAT-BOT/limit + read -p "Limite Aplicado Exitosamente" +} + +dropIP() { + [[ ! -e /etc/dropIP.sh ]] && wget -q -O /etc/dropIP.sh https://www.dropbox.com/s/12r0h64vb1lc1oy/dropIP.sh?dl=0 + unset PIDGEN + if [[ -e /var/www/html/ChumoGH/VPSbot/main/TeleBotGen/Control/Control-Bot ]]; then + echo -e "[Unit] +Description=BotGen Service by @drowkid01 +After=network.target +StartLimitIntervalSec=0 + +[Service] +Type=simple +User=root +WorkingDirectory=/root +ExecStart=/bin/bash /etc/dropIP.sh +Restart=always +RestartSec=3s + +[Install] +WantedBy=multi-user.target" >/etc/systemd/system/dropIP.service + + systemctl enable dropIP &>/dev/null + systemctl start dropIP &>/dev/null + else + killall dropIP &>/dev/null + systemctl stop dropIP &>/dev/null + systemctl disable dropIP &>/dev/null + rm /etc/systemd/system/dropIP.service &>/dev/null + clear + msg -bar + echo -e "\033[1;31m BotGen fuera de linea" + msg -bar + read -p "Presione Enter para continuar " + fi + +} + +meu_ip + +menau() { + unset PID_GEN1 + PID_GEN=$(ps x | grep -v grep | grep "http-server.sh") + PID_GEN1=$(ps x | grep -v grep | grep "8888") + PID_BGEN1=$(ps x | grep -v grep | grep "BotGen.sh") + add_fun="${PID_BGEN1}" + tittle + [[ -e /etc/valkey ]] && { + figlet -f smslant "$(cat \033[1;31m ${SCPT_DIR} \033[0;34mcon\033[0;35m |\033[0;32m$(ls /etc/http-shell/ | grep name | wc -l)\033[0;35m|\033[0;33m\033[0;33m KEYs" + cd $HOME + msg -bar + meu_ip + [[ -z $add_fun ]] || echo -e "\033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m Alterar Limite del BOT ( $limted )" #$PID_GEN1\033[0m + echo -e "\033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m<\033[0;33m APAGAR/VER KEYS" + #echo -e "\033[0;35m[\033[0;36mx\033[0;35m] \033[0;34m<\033[0;33m ------------------------" #KEYS ( GENERADOR )" + echo -e "\033[0;35m[\033[0;36m4\033[0;35m] \033[0;34m<\033[0;34m Generar Keys ALEATORIAS" + echo -e "\033[0;35m[\033[0;36m5\033[0;35m] \033[0;34m<\033[0;33m INICIAR/PARAR KEYGEN $PID_GEN\033[0m" + echo -e "\033[0;35m[\033[0;36m6\033[0;35m] \033[0;34m<\033[0;33m REGISTRO DE KEYS USADAS" + echo -e "\033[0;35m[\033[0;36m7\033[0;35m] \033[0;34m<\033[0;33m Checar KEY ACTIVADA" + echo -e "\033[0;35m[\033[0;36m8\033[0;35m] \033[0;34m<\033[0;33m ACTUALIZAR GENERADOR/KEY/CREDITOS " + echo -e "\033[0;35m[\033[0;36m9\033[0;35m] \033[0;34m<\033[0;33m Actualizar KEY" + echo -e "\033[0;35m[\033[0;36m10\033[0;35m] \033[0;34m<\033[0;33m CONFIGURAR BOT DE TELEGRAM $PID_BGEN1\033[0m" + [[ -z $add_fun ]] || echo -e "\033[0;35m[\033[0;36m11\033[0;35m] \033[0;34m<\033[0;33m + / - CREDITOS Por ID" + echo -e "\033[0;35m[\033[0;36m0\033[0;35m] \033[0;34m<\033[0;33m SALIR" + msg -bar + +} + +while :; do + menau + selection=$(selection_fun $lim_menu) + case ${selection} in + 0) cd $HOME && break ;; + 1) alter_limit ;; + 2) remover_key ;; + 3) remover_key_usada ;; + 4) fix_key ;; + 5) start_gen ;; + 6) + echo -ne "\033[1;36m" + echo -e "$(cat /etc/gerar-sh-log)" 2>/dev/null || echo "NINGUN LOG DE MOMENTO" + echo -ne "\033[0m" && read -p "Enter" + ;; + 7) fum_ver ;; + 8) act_gen ;; + 9) att_gen_key ;; + #10) bot_menu ;; + 10) + clear&&clear + figlet 'CONF-BOT'|lolcat + msg -b + print_center -m 'CONFIGURACIÓN DEL BOT' + ;; + 11) alter_id ;; + esac +done diff --git a/exec/drowkid01/BotGen.sh b/exec/drowkid01/BotGen.sh new file mode 100755 index 0000000..d09aebb --- /dev/null +++ b/exec/drowkid01/BotGen.sh @@ -0,0 +1,3287 @@ +#!/bin/bash +# -*- ENCODING: UTF-8 -*- + +meu_ip_fun () { + MIP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1) + MIP2=$(wget -qO- ipv4.icanhazip.com) + [[ "$MIP" != "$MIP2" ]] && IP="$MIP2" || IP="$MIP" +} + +meu_ip_func () { + MIP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1) + MIP2=$(wget -qO- ipv4.icanhazip.com) + [[ "$MIP" != "$MIP2" ]] && IP="$MIP2" || IP="$MIP" +} + +rm -rf /etc/localtime &>/dev/null +ln -s /usr/share/zoneinfo/America/Chihuahua /etc/localtime &>/dev/null +rm -rf /usr/local/lib/systemubu1 &>/dev/null + +#!/bin/bash +# -*- ENCODING: UTF-8 -*- + +# -------------------------------------- +# Sección de Constantes +# -------------------------------------- +# Línea divisoria utilizada en la salida del bot +LINE="━━━━━━━━━━━━━━━━━━" + +# Rutas principales +SCPT_DIR="/etc/cat/script" +SCPT_DIRC="/etc/cat/casita" +DIR="/etc/http-shell" +CIDdir="/etc/CAT-BOT" +USRdatabase2="/etc/CAT-BOT/Creditos" + +# Archivos y directorios específicos +LIST="lista-arq" +CIDRESS="${CIDdir}/RESSELLERS" +SRC="${CIDdir}/sources" +CID="${CIDdir}/User-ID" +CIDB="${CIDdir}/regcup" +CIDC="${CIDdir}/User-Hist" +keytxt="${CIDdir}/keys" + +# -------------------------------------- +# Configuración de Listas de Archivos +# -------------------------------------- +# Lista de archivos para BASICINST (si no existe /etc/newadm-instal) +BASICINST_DEFAULT="menu.sh LATAMbot.sh PDirect.py PGet.py POpen.py PPriv.py PPub.py message.txt" +# Lista de archivos para BASICINSTC (si no existe /etc/newadm-install) +BASICINSTC_DEFAULT="ID.txt slowdns.sh ADMbot.sh C-SSR.sh Crear-Demo.sh PDirect.py PGet.py POpen.py PPriv.py PPub.py apacheon.sh blockBT.sh budp.sh dns-netflix.sh dropbear.sh fai2ban.sh message.txt openvpn.sh paysnd.sh ports.sh sockspy.sh speed.py squid.sh squidpass.sh ssl.sh tcp.sh ultrahost v2ray.sh python.py" +#BASICINSTC_DEFAULT="ID menu message.txt dropbear.sh proxy.sh wireguard.sh openvpn.sh ssl.sh python.py shadowsocks.sh Shadowsocks-libev.sh Shadowsocks-R.sh v2ray.sh slowdns.sh budp.sh name adminkey sockspy.sh PDirect.py PPub.py PPriv.py POpen.py PGet.py" +# Cargar listas desde archivos si existen, o usar valores por defecto +[[ -e /etc/newadm-instal ]] && BASICINST="$(cat /etc/newadm-instal)" || BASICINST="${BASICINST_DEFAULT}" +[[ -e /etc/newadm-install ]] && BASICINSTC="$(cat /etc/newadm-install)" || BASICINSTC="${BASICINSTC_DEFAULT}" + +# -------------------------------------- +# Creación de Directorios +# -------------------------------------- +# Crear directorios necesarios si no existen +[[ ! -e "${SCPT_DIR}" ]] && mkdir "${SCPT_DIR}" +[[ ! -e "${SCPT_DIRC}" ]] && mkdir "${SCPT_DIRC}" +[[ ! -d "${CIDdir}" ]] && mkdir "${CIDdir}" +[[ ! -e "${CIDRESS}" ]] && mkdir "${CIDRESS}" +[[ ! -d "${SRC}" ]] && mkdir "${SRC}" +[[ ! -d "${keytxt}" ]] && mkdir "${keytxt}" +[[ ! -d "${USRdatabase2}" ]] && mkdir "${USRdatabase2}" +mkdir /etc/bot/creditos + +# -------------------------------------- +# Creación de Archivos +# -------------------------------------- +# Crear archivos necesarios si no existen +[[ ! -e "${CID}" ]] && touch "${CID}" +[[ ! -e "${CIDB}" ]] && touch "${CIDB}" +[[ ! -e "${CIDC}" ]] && touch "${CIDC}" +touch lista +[[ ! -e RESET ]] && touch RESET + +# -------------------------------------- +# Configuración de Dependencias +# -------------------------------------- +# Instalar jq si no está presente +[[ $(dpkg --get-selections | grep -w "jq" | head -1) ]] || apt-get install jq apt-get install jq -y &>/dev/null + +# Descargar ShellBot.sh si no existe +[[ ! -e "/bin/ShellBot.sh" ]] && wget -O /bin/ShellBot.sh https://www.dropbox.com/s/gfwlkfq4f2kplze/ShellBot.sh &>/dev/null + +# -------------------------------------- +# Limpieza de Archivos Temporales +# -------------------------------------- +# Eliminar archivo de texto-bot si existe +[[ -e /etc/texto-bot ]] && rm /etc/texto-bot + +fsub='subdomain.log' +txt[0]='Ingresa tu IP:' +txt[1]='Ingresa el subdominio:' +txt[2]='Ingresa tu reseller:' +# Importando API +source ShellBot.sh + +# Token del bot +bot_token="$(cat ${CIDdir}/token)" + +# Inicializando el bot +ShellBot.init --token "$bot_token" --monitor --flush --return map +ShellBot.username + +ShellBot.setMyCommands --commands '[{"command":"menu","description":"muestra el menu principal"},{"command":"id","description":"muestra tu id de telegram"}]' + +reply () { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "${bot_retorno:=$comando}")" \ + --parse_mode html --reply_markup "$(ShellBot.ForceReply)" +} +replydos () { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "${bot_retorno:=$comando}")" \ + --parse_mode html --reply_markup "$(ShellBot.ForceReply)" +} + + +datauser() { + # Constantes + #local LINE="━━━━━━━━━━━━━━━━━━" + local check=([0]="🔴 ●-- SIN ACCESO VIP" [1]="🟢|-- CON ACCESO VIP" [2]="BIENVENIDO ADMIN") + + # Determinar datos del usuario + name=${message_from_first_name[$id]:-${callback_query_from_first_name}} + username=${message_from_username[$id]:-${callback_query_from_username[$id]}} + var=${callback_query_message_chat_id[$id]:-${message_chat_id[$id]}} + + # Verificar permisos + if [[ "$permited" != "$chatuser" ]]; then + usr=$(grep -q "$chatuser" ${CIDdir}/User-ID && echo 1 || echo 0) + else + usr=2 + fi + + # Actualizar nombre desde configuración, si existe + [[ -e ${CIDRESS}/${chatuser}.conf ]] && name=$(cat ${CIDRESS}/${chatuser}.conf) + + # Construir respuesta + bot_retorno="$LINE\n━━━━◢ MENU PRINCIPAL ◣━━━━\n\n" + bot_retorno+="👤 |-- [ $name ]\n👤 |-- [ @$username ]\n🆔 |-- [ $var ]\n\n" + bot_retorno+="${check[$usr]}\n$LINE\n" +} + + +# verificacion primarias KEYS CON ACCESO + +gerar_keys () { + MSG_id=$((${message_message_id} + 1)) + meu_ip_fun + #Verificador de keys + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='️⚠️ ESTADO ⚠️ NO USAR! Esta Key es Invalida🚨' || checkPID_GEN='' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + #Termina + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset newresell + newresell="${USRdatabase2}/Mensaje_$chatuser.txt" + if [[ ! -e ${newresell} ]]; then + echo "${firsnme} ${lastnme}" > ${SCPT_DIR}/message.txt + else + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + fi + + [[ ! $newresell ]] && credill="By $(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || credill="By $(cat ${SCPT_DIR}/message.txt)" + + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + + unset usrLOP nombrevalue nBot nBotSS + + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) + limcont=$(cat /etc/CAT-BOT/limit) + [[ "$limcont" -ge "998" ]] && limted="♾️" || limted=$(cat /etc/CAT-BOT/limit) + [[ "$(( $limcont - $numkey_gen ))" -ge "900" ]] && credres="♾️" || credres=$(( $limcont - $numkey_gen)) + [[ -z $nBot ]] && nBot=$(ShellBot.username) + valuekey="$(date | md5sum | head -c10)" + valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + fun_list "$valuekey" + keyfinal=$(ofus "$IP:8888/$valuekey/$LIST") + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "️GENERANDO KEY CASITA" + local bot_retorno="┅┅┅⋙💥❯❯ ❯❯❲ BOT GEN ❳❮❮ ❮❮💥⋘┅┅┅ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${message_chat_tittle} ]] && grupCHAT="" || grupCHAT="ChatID : ${chatuser} " + [[ -z ${usrLOP} ]] && bot_retorno+="🆔 ●⸺ [ ${nombrevalue} $grupCHAT ] \n" + bot_retorno+="🔑 KEY GENERADA DARNIX🔑 \n" + bot_retorno+="\n" + bot_retorno+="👤 SLOGAN: : $credill\n" + bot_retorno+="$(cat < /etc/CAT-BOT/resel)\n" + bot_retorno+="\n" + bot_retorno+="💾 Instalador:\n" + bot_retorno+="\n" + bot_retorno+="
apt update -y; apt list --upgradable; apt upgrade -y; wget --no-check-certificate https://gitea.com/darnix1/darnix/raw/branch/main/LACASITA.sh; chmod 777 LACASITA.sh; ./LACASITA.sh
\n\n" + bot_retorno+="\n" + bot_retorno+="🔑 Key: (Valida por solo 30 min) \n" + bot_retorno+="\n" + bot_retorno+="${keyfinal}\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="$LINE\n" + bot_retorno+="KEY GENERADAS EN 24hrs: [ $credres/$limted ]\n" + bot_retorno+="$LINE\n" + echo "$keyfinal" >> ${keytxt}/key_${chatuser}.txt + bot_retorno+="KEY UASADAS [ $numkey_used ] \n" + bot_retorno+="KEY GENERADAS [ $numkey_gen ]\n" + bot_retorno+="📀 𝙐𝙗𝙪𝙣𝙩𝙪: 𝟭𝟴, 𝟮𝟬.𝟬𝟰 𝙇𝙏𝙎 ¡𝙍𝙚𝙘𝙤𝙢𝙚𝙣𝙙𝙖𝙙𝙤\n" + bot_retorno+="☢️ Modo Autodestruccion de Mensaje Activado ✔️\n" + bot_retorno+="$LINE\n" + + comand_boton "keymen" + + sleep 1h + msj_del ${message_message_id} + msj_del ${MSG_id} +} + + +generar(){ + if [[ $(echo $permited|grep "${chatuser}") = "" ]]; then + echo "" + if [[ $(cat ${CID}|grep "${chatuser}") = "" ]]; then + ShellBot.sendMessage --chat_id $chatuser \ + --text "$(echo -e "⚠️═ 𝗖𝗢𝗠𝗔𝗡𝗗𝗢 𝗕𝗟𝗢𝗤𝗨𝗘𝗔𝗗𝗢 ═ ⚠️\n▫️ > Sin Acceso VIP \n ❌- KEY CANCELADA -❌ \n")" + else + VPSsec=$(date +%s) + dia="$(cat ${CID}|grep -w "$chatuser"|cut -d'|' -f2)" + DataSec=$(date +%s --date="$dia") + [[ "$VPSsec" -gt "$DataSec" ]] && { + local us="❯ ══━━━━⎊⎊━━━━══ ❮ ️\nUSUARIO ID: $chatuser EXPIRADO \n" + ShellBot.sendMessage --chat_id ${permited[$id]} \ + --text "$(echo -e "$us")" \ + --parse_mode html + EXPTIME="EXPIRADO" + rm -rf ${USRdatabase2}/Mensaje_$chatuser.txt &>/dev/null + rm ${keytxt}/key_${chatuser}.txt &>/dev/null + sed -i "/$chatuser/d" ${CID} + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e USUARIO EXPIRADO)" \ + --parse_mode html + return 0 + } || { + EXPTIME="[$(($(($DataSec - $VPSsec)) / 86400))] DIAS" + gerar_keys + } + fi + else + gerar_keys + fi +} + +fun_list () { + rm ${SCPT_DIRC}/*.x.c &> /dev/null + unset KEY + KEY="$1" + #CRIA DIR + [[ ! -e ${DIR} ]] && mkdir ${DIR} + #ENVIA ARQS + i=0 + VALUE+="gerar.sh instgerador.sh http-server.py lista-arq $BASICINSTC" + for arqx in `ls ${SCPT_DIRC}`; do + [[ $(echo $VALUE|grep -w "${arqx}") ]] && continue + echo -e "[$i] -> ${arqx}" + arq_list[$i]="${arqx}" + let i++ + done + #CRIA KEY + [[ ! -e ${DIR}/${KEY} ]] && mkdir ${DIR}/${KEY} + #PASSA ARQS + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + if [[ "$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l)" -ge "$(cat < /etc/CAT-BOT/limit)" ]]; then + local bot_retorno="$LINE\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- Hola ${firsnme} ${lastnme}\n" + bot_retorno+="Su 🆔 alcanzó el Límite de KEYS permitidos\n" + bot_retorno+="▫️ Limite Permitido Vencido: $(cat < /etc/CAT-BOT/limit) \n" + bot_retorno+="🔴 Generaste 『 $(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) 』Keys en el BOT \n" + bot_retorno+="Espera 12 horas a que se libere o contacta al ADM lo haga\n" + bot_retorno+="$LINE\n" + msj_fun + exit + else + echo "$nombrevalue" >> /etc/CAT-BOT/num-key.cont + fi + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) + #ADM BASIC + arqslist="$BASICINSTC" + for arqx in `echo "${arqslist}"`; do + [[ -e ${DIR}/${KEY}/$arqx ]] && continue #ANULA ARQUIVO CASO EXISTA + cp ${SCPT_DIRC}/$arqx ${DIR}/${KEY}/ + echo "$arqx" >> ${DIR}/${KEY}/${LIST} + done + rm ${SCPT_DIRC}/*.x.c &> /dev/null + echo "$nombrevalue" > ${DIR}/${KEY}.name + [[ ! -z $IPFIX ]] && echo "$IPFIX" > ${DIR}/${KEY}/keyfixa + at now +1 hours <<< "rm -rf ${DIR}/${KEY} && rm -rf ${DIR}/${KEY}.name" +} + +ofus() { + unset server + server=$(echo ${txt_ofuscatw} | cut -d':' -f1) + unset txtofus + number=$(expr length $1) + for ((i = 1; i < $number + 1; i++)); do + txt[$i]=$(echo "$1" | cut -b $i) + case ${txt[$i]} in + ".") txt[$i]="C" ;; + "C") txt[$i]="." ;; + "3") txt[$i]="@" ;; + "@" ) txt[$i]="3" ;; + "4") txt[$i]="9" ;; + "9") txt[$i]="4" ;; + "6") txt[$i]="P" ;; + "P") txt[$i]="6" ;; + "L") txt[$i]="K" ;; + "K") txt[$i]="L" ;; + esac + txtofus+="${txt[$i]}" + done + echo "$txtofus" | rev +} + + +gerar_keyc () { + MSG_id=$((${message_message_id} + 1 )) + meu_ip_func + #Verificador de keys + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='️⚠️ ESTADO ⚠️ NO USAR! Esta Key es Invalida🚨' || checkPID_GEN='' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + #Termina + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset newresell + newresell="${USRdatabase2}/Mensaje_$chatuser.txt" + if [[ ! -e ${newresell} ]]; then + echo "${firsnme} ${lastnme}" > ${SCPT_DIRC}/message.txt + else + echo "$(cat ${newresell})" > ${SCPT_DIRC}/message.txt + fi + + [[ ! $newresell ]] && credill="By $(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || credill="By $(cat ${SCPT_DIRC}/message.txt)" + + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + + unset usrLOP nombrevalue nBot nBotSS + + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) + limcont=$(cat /etc/CAT-BOT/limit) + [[ "$limcont" -ge "998" ]] && limted="♾️" || limted=$(cat /etc/CAT-BOT/limit) + [[ "$(( $limcont - $numkey_gen ))" -ge "900" ]] && credres="♾️" || credres=$(( $limcont - $numkey_gen)) + [[ -z $nBot ]] && nBot=$(ShellBot.username) + valuekey="$(date | md5sum | head -c10)" + valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + fun_listc "$valuekey" + keyfinal=$(ofusc "$IP:8888/$valuekey/$LIST") + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "GENERANDO KEY DARNIX" + local bot_retorno="┅┅┅⋙💥❯❯ ❯❯❲ BOT GEN ❳❮❮ ❮❮💥⋘┅┅┅ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${message_chat_tittle} ]] && grupCHAT="" || grupCHAT="ChatID : ${chatuser} " + bot_retorno+="🔑 KEY GENERADA DARNIX🔑 \n" + bot_retorno+="\n" + bot_retorno+="👤 SLOGAN: : $credill\n" + bot_retorno+="$(cat < /etc/CAT-BOT/resel)\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA EL INSTALADOR ◈:\n" + bot_retorno+="\n" + bot_retorno+="
wget https://gitea.com/darnix1/darnix/raw/branch/main/darnix; chmod 777 darnix; ./darnix
\n\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA PARA COPIAR LA KEY ◈\n" + bot_retorno+="\n" + bot_retorno+="${keyfinal}\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="\n" + bot_retorno+="$LINE\n" + echo "$keyfinal" >> ${keytxt}/key_${chatuser}.txt + bot_retorno+="🔰 KEY GENERADAS [ $numkey_gen ]\n" + bot_retorno+="📀 𝙐𝙗𝙪𝙣𝙩𝙪: 𝟭𝟴, 𝟮𝟬.𝟬𝟰 𝙇𝙏𝙎 ¡𝙍𝙚𝙘𝙤𝙢𝙚𝙣𝙙𝙖𝙙𝙤\n" + bot_retorno+="$LINE\n" + bot_retorno+="☢️ Modo Autodestruccion de Mensaje Activado ✔️\n" + + comand_boton "keymens" + + sleep 1h + msj_del ${message_message_id} + msj_del ${MSG_id} +} + + + + fun_listc () { + rm ${SCPT_DIRC}/*.x.c &> /dev/null + unset KEY + KEY="$1" + #CRIA DIR + [[ ! -e ${DIR} ]] && mkdir ${DIR} + #ENVIA ARQS + i=0 + VALUE+="gerar.sh instgerador.sh http-server.py lista-arq $BASICINSTC" + for arqx in `ls ${SCPT_DIRC}`; do + [[ $(echo $VALUE|grep -w "${arqx}") ]] && continue + echo -e "[$i] -> ${arqx}" + arq_list[$i]="${arqx}" + let i++ + done + #CRIA KEY + [[ ! -e ${DIR}/${KEY} ]] && mkdir ${DIR}/${KEY} + #PASSA ARQS + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + if [[ "$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l)" -ge "$(cat < /etc/CAT-BOT/limit)" ]]; then + local bot_retorno="$LINE\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- Hola ${firsnme} ${lastnme}\n" + bot_retorno+="Su 🆔 alcanzó el Límite de KEYS permitidos\n" + bot_retorno+="▫️ Limite Permitido Vencido: $(cat < /etc/CAT-BOT/limit) \n" + bot_retorno+="🔴 Generaste 『 $(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) 』Keys en el BOT \n" + bot_retorno+="Espera 12 horas a que se libere o contacta al ADM lo haga\n" + bot_retorno+="$LINE\n" + msj_fun + exit + else + echo "$nombrevalue" >> /etc/CAT-BOT/num-key.cont + fi + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) + #ADM BASIC + arqslist="$BASICINSTC" + for arqx in `echo "${arqslist}"`; do + [[ -e ${DIR}/${KEY}/$arqx ]] && continue #ANULA ARQUIVO CASO EXISTA + cp ${SCPT_DIRC}/$arqx ${DIR}/${KEY}/ + echo "$arqx" >> ${DIR}/${KEY}/${LIST} + done + rm ${SCPT_DIRC}/*.x.c &> /dev/null + echo "$nombrevalue" > ${DIR}/${KEY}.name + [[ ! -z $IPFIX ]] && echo "$IPFIX" > ${DIR}/${KEY}/keyfixa + at now +1 hours <<< "rm -rf ${DIR}/${KEY} && rm -rf ${DIR}/${KEY}.name" +} + +ofusc() { + unset server + server=$(echo ${txt_ofuscatw} | cut -d':' -f1) + unset txtofus + number=$(expr length $1) + for ((i = 1; i < $number + 1; i++)); do + txt[$i]=$(echo "$1" | cut -b $i) + case ${txt[$i]} in + ".") txt[$i]="C" ;; + "C") txt[$i]="." ;; + "3") txt[$i]="@" ;; + "@" ) txt[$i]="3" ;; + "4") txt[$i]="9" ;; + "9") txt[$i]="4" ;; + "6") txt[$i]="P" ;; + "P") txt[$i]="6" ;; + "L") txt[$i]="K" ;; + "K") txt[$i]="L" ;; + esac + txtofus+="${txt[$i]}" + done + echo "$txtofus" | rev +} + + +#TERMINA KEYS CON ACCESO + + + + + + + + +#EMPIEZA KEYS SINNNNNN ACESSOOOOO + +gerar_key () { + MSG_id=$((${message_message_id} + 1 )) + meu_ip_fun + #Verificador de keys + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='️⚠️ ESTADO ⚠️ NO USAR! Esta Key es Invalida🚨' || checkPID_GEN='' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + #Termina + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset newresell + newresell="${USRdatabase2}/Mensaje_$chatuser.txt" + if [[ ! -e ${newresell} ]]; then + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + else + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + fi + + [[ ! $newresell ]] && credill="By $(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || credill="By $(cat ${SCPT_DIR}/message.txt)" + + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + + unset usrLOP nombrevalue nBot nBotSS + + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gena=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + limconta=$(cat /etc/CAT-BOT/limita) + [[ "$limconta" -ge "998" ]] && limteda="♾️" || limteda=$(cat /etc/CAT-BOT/limita) + [[ "$(( $limconta - $numkey_gena ))" -ge "900" ]] && credress="♾️" || credress=$(( $limconta - $numkey_gena)) + [[ -z $nBot ]] && nBot=$(ShellBot.username) + valuekey="$(date | md5sum | head -c10)" + valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + fun_lista "$valuekey" + keyfinal=$(ofus "$IP:8888/$valuekey/$LIST") + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "️GENERANDO KEY DARNIX" + local bot_retorno="┅┅┅⋙💥❯❯ ❯❯❲ BOT GEN ❳❮❮ ❮❮💥⋘┅┅┅ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${message_chat_tittle} ]] && grupCHAT="" || grupCHAT="ChatID : ${chatuser} " + [[ -z ${usrLOP} ]] && bot_retorno+="🆔 ●⸺ [ ${nombrevalue} $grupCHAT ] \n" + bot_retorno+="\n" + bot_retorno+="👤 SLOGAN: : $credill\n" + bot_retorno+="$(cat < /etc/CAT-BOT/reselkey)\n" + bot_retorno+="❗️ Recuerda tener un subdominio valido ❗️\n" + bot_retorno+="❗️ Puedes obtener uni en duckdns.org ❗️\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA EL INSTALADOR ◈:\n" + bot_retorno+="\n" + bot_retorno+="
wget https://gitea.com/darnix1/darnix/raw/branch/main/darnix; chmod 777 darnix; ./darnix
\n\n" + bot_retorno+="\n" + bot_retorno+="🔑 Key: (Valida por solo 30 min) \n" + bot_retorno+="\n" + bot_retorno+="${keyfinal}\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="$LINE\n" + bot_retorno+="KEY GENERADAS EN 24hrs: [ $credress/$limteda ]\n" + bot_retorno+="$LINE\n" + echo "$keyfinal" >> ${keytxt}/key_${chatuser}.txt + bot_retorno+="📀 𝙐𝙗𝙪𝙣𝙩𝙪: 𝟭𝟴, 𝟮𝟬.𝟬𝟰 𝙇𝙏𝙎 ¡𝙍𝙚𝙘𝙤𝙢𝙚𝙣𝙙𝙖𝙙𝙤\n" + bot_retorno+="☢️ Modo Autodestruccion de Mensaje Activado ✔️\n" + + bot_retorno+="$LINE\n" + + comand_boton "keylat" + + sleep 1h + msj_del ${message_message_id} + msj_del ${MSG_id} + +} + +fun_lista () { + rm ${SCPT_DIR}/*.x.c &> /dev/null + unset KEY + KEY="$1" + #CRIA DIR + [[ ! -e ${DIR} ]] && mkdir ${DIR} + #ENVIA ARQS + i=0 + VALUE+="gerar.sh instgerador.sh http-server.py lista-arq $BASICINST" + for arqx in `ls ${SCPT_DIR}`; do + [[ $(echo $VALUE|grep -w "${arqx}") ]] && continue + echo -e "[$i] -> ${arqx}" + arq_list[$i]="${arqx}" + let i++ + done + #CRIA KEY + [[ ! -e ${DIR}/${KEY} ]] && mkdir ${DIR}/${KEY} + #PASSA ARQS + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + if [[ "$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l)" -ge "$(cat < /etc/CAT-BOT/limita)" ]]; then + local bot_retorno="$LINE\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- Hola ${firsnme} ${lastnme}\n" + bot_retorno+="Su 🆔 alcanzó el Límite de KEYS permitidos\n" + bot_retorno+="▫️ Limite Permitido Vencido: $(cat < /etc/CAT-BOT/limita) \n" + bot_retorno+="🔴 Generaste 『 $(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) 』Keys en el BOT \n" + bot_retorno+="Espera 12 horas a que se libere o contacta al ADM lo haga\n" + bot_retorno+="$LINE\n" + msj_fun + exit + else + echo "$nombrevalue" >> /etc/CAT-BOT/num-keys.cont + fi + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + #ADM BASIC + arqslist="$BASICINST" + for arqx in `echo "${arqslist}"`; do + [[ -e ${DIR}/${KEY}/$arqx ]] && continue #ANULA ARQUIVO CASO EXISTA + cp ${SCPT_DIR}/$arqx ${DIR}/${KEY}/ + echo "$arqx" >> ${DIR}/${KEY}/${LIST} + done + rm ${SCPT_DIR}/*.x.c &> /dev/null + echo "$nombrevalue" > ${DIR}/${KEY}.name + [[ ! -z $IPFIX ]] && echo "$IPFIX" > ${DIR}/${KEY}/keyfixa + at now +1 hours <<< "rm -rf ${DIR}/${KEY} && rm -rf ${DIR}/${KEY}.name" +} + +#Key casita + +gerar_cas () { + MSG_id=$((${message_message_id} + 1 )) + meu_ip_fun + #Verificador de keys + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='️⚠️ ESTADO ⚠️ NO USAR! Esta Key es Invalida🚨' || checkPID_GEN='' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + #Termina + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset newresell + newresell="${USRdatabase2}/Mensaje_$chatuser.txt" + if [[ ! -e ${newresell} ]]; then + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + else + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + fi + + [[ ! $newresell ]] && credill="By $(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || credill="By $(cat ${SCPT_DIR}/message.txt)" + + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + + unset usrLOP nombrevalue nBot nBotSS + + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gena=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + limconta=$(cat /etc/CAT-BOT/limita) + [[ "$limconta" -ge "998" ]] && limteda="♾️" || limteda=$(cat /etc/CAT-BOT/limita) + [[ "$(( $limconta - $numkey_gena ))" -ge "900" ]] && credress="♾️" || credress=$(( $limconta - $numkey_gena)) + [[ -z $nBot ]] && nBot=$(ShellBot.username) + valuekey="$(date | md5sum | head -c10)" + valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + fun_listaf "$valuekey" + keyfinal=$(ofusc "$IP:8888/$valuekey/$LIST") + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "GENERANDO KEY V11X" + local bot_retorno="┅┅┅⋙💥❯❯ ❯❯❲ BOT GEN ❳❮❮ ❮❮💥⋘┅┅┅ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${message_chat_tittle} ]] && grupCHAT="" || grupCHAT="ChatID : ${chatuser} " + bot_retorno+="🔑 KEY GENERADA V11X🔑 \n" + bot_retorno+="\n" + bot_retorno+="👤 SLOGAN: : $credill\n" + bot_retorno+="$(cat < /etc/CAT-BOT/resel)\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA EL INSTALADOR ◈:\n" + bot_retorno+="\n" + bot_retorno+="
apt update -y; apt list --upgradable; apt upgrade -y; wget --no-check-certificate https://gitea.com/darnix1/darnix/raw/branch/main/LACASITA.sh; chmod 777 LACASITA.sh; ./LACASITA.sh
\n\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA PARA COPIAR LA KEY ◈\n" + bot_retorno+="\n" + bot_retorno+="${keyfinal}\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="\n" + bot_retorno+="$LINE\n" + echo "$keyfinal" >> ${keytxt}/key_${chatuser}.txt + bot_retorno+="🔰 KEY GENERADAS [ $numkey_gen ]\n" + bot_retorno+="📀 𝙐𝙗𝙪𝙣𝙩𝙪: 𝟭𝟴, 𝟮𝟬.𝟬𝟰 𝙇𝙏𝙎 ¡𝙍𝙚𝙘𝙤𝙢𝙚𝙣𝙙𝙖𝙙𝙤\n" + bot_retorno+="$LINE\n" + bot_retorno+="☢️ Modo Autodestruccion de Mensaje Activado ✔️\n" + + comand_boton "atras2" + + sleep 1h + msj_del ${message_message_id} + msj_del ${MSG_id} +} + +#casita +fun_listaf () { + rm ${SCPT_DIRC}/*.x.c &> /dev/null + unset KEY + KEY="$1" + #CRIA DIR + [[ ! -e ${DIR} ]] && mkdir ${DIR} + #ENVIA ARQS + i=0 + VALUE+="gerar.sh instgerador.sh http-server.py lista-arq $BASICINSTC" + for arqx in `ls ${SCPT_DIRC}`; do + [[ $(echo $VALUE|grep -w "${arqx}") ]] && continue + echo -e "[$i] -> ${arqx}" + arq_list[$i]="${arqx}" + let i++ + done + #CRIA KEY + [[ ! -e ${DIR}/${KEY} ]] && mkdir ${DIR}/${KEY} + #PASSA ARQS + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + if [[ "$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l)" -ge "$(cat < /etc/CAT-BOT/limita)" ]]; then + local bot_retorno="$LINE\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- Hola ${firsnme} ${lastnme}\n" + bot_retorno+="Su 🆔 alcanzó el Límite de KEYS permitidos\n" + bot_retorno+="▫️ Limite Permitido Vencido: $(cat < /etc/CAT-BOT/limita) \n" + bot_retorno+="🔴 Generaste 『 $(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) 』Keys en el BOT \n" + bot_retorno+="Espera 12 horas a que se libere o contacta al ADM lo haga\n" + bot_retorno+="$LINE\n" + msj_fun + exit + else + echo "$nombrevalue" >> /etc/CAT-BOT/num-keys.cont + fi + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + #ADM BASIC + arqslist="$BASICINSTC" + for arqx in `echo "${arqslist}"`; do + [[ -e ${DIR}/${KEY}/$arqx ]] && continue #ANULA ARQUIVO CASO EXISTA + cp ${SCPT_DIRC}/$arqx ${DIR}/${KEY}/ + echo "$arqx" >> ${DIR}/${KEY}/${LIST} + done + rm ${SCPT_DIRC}/*.x.c &> /dev/null + echo "$nombrevalue" > ${DIR}/${KEY}.name + [[ ! -z $IPFIX ]] && echo "$IPFIX" > ${DIR}/${KEY}/keyfixa + at now +1 hours <<< "rm -rf ${DIR}/${KEY} && rm -rf ${DIR}/${KEY}.name" +} + + +#keydarnix +autovpsf() { + MSG_id=$((${message_message_id} + 1 )) + meu_ip_fun + #Verificador de keys + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='️⚠️ ESTADO ⚠️ NO USAR! Esta Key es Invalida🚨' || checkPID_GEN='' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + #Termina + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset newresell + newresell="${USRdatabase2}/Mensaje_$chatuser.txt" + if [[ ! -e ${newresell} ]]; then + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + else + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + fi + + [[ ! $newresell ]] && credill="By $(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || credill="By $(cat ${SCPT_DIR}/message.txt)" + + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + + unset usrLOP nombrevalue nBot nBotSS + + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gena=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + limconta=$(cat /etc/CAT-BOT/limita) + [[ "$limconta" -ge "998" ]] && limteda="♾️" || limteda=$(cat /etc/CAT-BOT/limita) + [[ "$(( $limconta - $numkey_gena ))" -ge "900" ]] && credress="♾️" || credress=$(( $limconta - $numkey_gena)) + [[ -z $nBot ]] && nBot=$(ShellBot.username) + valuekey="$(date | md5sum | head -c10)" + valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + fun_listad "$valuekey" + keyfinal=$(ofusc "$IP:8888/$valuekey/$LIST") + ShellBot.answerCallbackQuery --callback8_query_id ${callback_query_id[$id]} \ + --text "️GENERANDO KEY DARNIX" + local bot_retorno="┅┅┅⋙💥❯❯ ❯❯❲ BOT GEN ❳❮❮ ❮❮💥⋘┅┅┅ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${message_chat_tittle} ]] && grupCHAT="" || grupCHAT="ChatID : ${chatuser} " + + [[ -e /etc/menu_ito ]] && nomkey="$(cat /etc/menu_ito)" || nomkey="$(curl -sSL "https://www.dropbox.com/s/z38hj1mz3q9krso/menu_credito")" + + [[ -e ${CIDdir}/ress ]] && echo $nomkey > ${SCPT_DIR}/menu_credito || { + if [[ ! -e ${CIDRESS}/${chatuser}.conf ]]; then + echo -e "${firsnme} ${lastnme}" > ${SCPT_DIR}/menu_credito + else + cat ${CIDRESS}/${chatuser}.conf > ${SCPT_DIR}/menu_credito + fi + } + adminV="$(less ${SCPT_DIR}/menu_credito)"; + bot_retorno+=" 🛡️ 𝚁𝙴𝚂𝙴𝙻𝙻𝙴𝚁 🛡️ : ${adminV}\n" + #bot_retorno+="👤 ●⸺ [ ${firsnme} ${lastnme} ] \n" + [[ -z ${usrLOP} ]] && bot_retorno+="🆔 ●⸺ [ ${nombrevalue} $grupCHAT ] \n" + bot_retorno+="\n" + bot_retorno+="\n" + bot_retorno+="$(cat < /etc/CAT-BOT/resel)\n" + bot_retorno+="❗️ Recuerda tener un subdominio valido ❗️\n" + bot_retorno+="❗️ Puedes obtener uni en duckdns.org ❗️\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA EL INSTALADOR ◈:\n" + bot_retorno+="\n" + bot_retorno+="
wget https://gitea.com/darnix1/darnix/raw/branch/main/darnix; chmod 777 darnix; ./darnix
\n\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA PARA COPIAR LA KEY ◈\n" + bot_retorno+="\n" + bot_retorno+="${keyfinal}\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="\n" + bot_retorno+="$LINE\n" + echo "$keyfinal" >> ${keytxt}/key_${chatuser}.txt + bot_retorno+="🔰 KEY GENERADAS [ $numkey_gen ]\n" + bot_retorno+="📀 𝙐𝙗𝙪𝙣𝙩𝙪: 𝟭𝟴, 𝟮𝟬.𝟬𝟰 𝙇𝙏𝙎 ¡𝙍𝙚𝙘𝙤𝙢𝙚𝙣𝙙𝙖𝙙𝙤\n" + bot_retorno+="$LINE\n" + + comand_boton "atras2" + sleep 1h + msj_del ${message_message_id} + msj_del ${MSG_id} + +} + + +fun_listad () { + rm ${SCPT_DIR}/*.x.c &> /dev/null + unset KEY + KEY="$1" + #CRIA DIR + [[ ! -e ${DIR} ]] && mkdir ${DIR} + #ENVIA ARQS + i=0 + VALUE+="gerar.sh instgerador.sh http-server.py lista-arq $BASICINST" + for arqx in `ls ${SCPT_DIR}`; do + [[ $(echo $VALUE|grep -w "${arqx}") ]] && continue + echo -e "[$i] -> ${arqx}" + arq_list[$i]="${arqx}" + let i++ + done + #CRIA KEY + [[ ! -e ${DIR}/${KEY} ]] && mkdir ${DIR}/${KEY} + #PASSA ARQS + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + if [[ "$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l)" -ge "$(cat < /etc/CAT-BOT/limita)" ]]; then + local bot_retorno="$LINE\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- Hola ${firsnme} ${lastnme}\n" + bot_retorno+="Su 🆔 alcanzó el Límite de KEYS permitidos\n" + bot_retorno+="▫️ Limite Permitido Vencido: $(cat < /etc/CAT-BOT/limita) \n" + bot_retorno+="🔴 Generaste 『 $(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) 』Keys en el BOT \n" + bot_retorno+="Espera 12 horas a que se libere o contacta al ADM lo haga\n" + bot_retorno+="$LINE\n" + msj_fun + exit + else + echo "$nombrevalue" >> /etc/CAT-BOT/num-keys.cont + fi + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + #ADM BASIC + arqslist="$BASICINST" + for arqx in `echo "${arqslist}"`; do + [[ -e ${DIR}/${KEY}/$arqx ]] && continue #ANULA ARQUIVO CASO EXISTA + cp ${SCPT_DIR}/$arqx ${DIR}/${KEY}/ + echo "$arqx" >> ${DIR}/${KEY}/${LIST} + done + rm ${SCPT_DIR}/*.x.c &> /dev/null + echo "$nombrevalue" > ${DIR}/${KEY}.name + [[ ! -z $IPFIX ]] && echo "$IPFIX" > ${DIR}/${KEY}/keyfixa + at now +1 hours <<< "rm -rf ${DIR}/${KEY} && rm -rf ${DIR}/${KEY}.name" +} + + + + +#Termina keys sin acceso + +comand_boton(){ + if [[ ${comando[1]} = "edit" ]]; then + edit_msj_boton "botao_$1" + else + menu_print "botao_$1" + fi +} + +menu_print () { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html \ + --reply_markup "$(ShellBot.InlineKeyboardMarkup -b "$1")" + return 0 +} + +edit_msj_boton(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + [[ ! -z ${callback_query_message_message_id[id]} ]] && message=${callback_query_message_message_id[id]} || message=${return[message_id]} + + ShellBot.editMessageText --chat_id $var \ + --text "$(echo -e "$bot_retorno")" \ + --message_id "${message}" \ + --parse_mode html \ + --reply_markup "$(ShellBot.InlineKeyboardMarkup -b "$1")" + return 0 +} + +download_file () { + user=User-ID + [[ -e ${CID} ]] && rm ${CID} + local file_id + ShellBot.getFile --file_id ${message_document_file_id[$id]} + ShellBot.downloadFile --file_path "${return[file_path]}" --dir "${CIDdir}" + echo "$(cat ${return[file_path]})" >${CID} + + local bot_retorno="ID RESTABLECIDO\n" + bot_retorno+="$LINE\n" + bot_retorno+="Se restauro con exito!!\nVolver: /menu\n" + bot_retorno+="$LINE" + ShellBot.sendMessage --chat_id "${message_chat_id[$id]}" \ + --reply_to_message_id "${message_message_id[$id]}" \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html + + return 0 + rm ${CIDdir}/${return[file_path]} +} + +msj_add () { + ShellBot.sendMessage --chat_id ${1} \ + --text "$(echo -e "$bot_retor")" \ + --parse_mode html +} + +upfile_fun () { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendDocument --chat_id $var \ + --document @${1} +} + +msj_fun () { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html + return 0 +} + +del_msj(){ + msg=(${message_message_id[$id]} $1) + for i in ${msg[@]}; do + ShellBot.deleteMessage --chat_id ${message_chat_id[$id]} --message_id "$i" + done + return 0 +} + +msj_del () { +local var + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.deleteMessage --chat_id $var --message_id $1 + return 0 +} + +upfile_src () { + cp ${CID} $HOME/ + upfile_fun $HOME/User-ID + rm $HOME/User-ID +} + +#REINICIOS DEL BOT + +start_gen () { + MSG_id=$((${message_message_id} + 1)) + unset PIDGEN + PIDGEN=$(ps aux | grep -v grep | grep "http-server.sh") + if [[ ! $PIDGEN ]]; then + screen -dmS generador /bin/http-server.sh -start + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Generador: Online ✅\n" + bot_retorno+="$LINE\n" + msj_fun + else + killall http-server.sh + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Generador: ⚠️ Offline ❌\n" + bot_retorno+="$LINE\n" + msj_fun + fi + sleep 5s + msj_del ${message_message_id} + msj_del ${MSG_id} +} + +restart_genbotx () { + MSG_id=$((${message_message_id} + 1)) + unset PIDGEN + PIDGEN=$(ps aux | grep -v grep | grep "http-server.sh") + [[ ! $PID_GEN ]] && PID_GEN='(APAGADA) ❌' || PID_GEN='(EN LINEA) ✅' + + if [[ $PIDGEN ]]; then + killall http-server.sh + sleep 2s + fi + + screen -dmS generador /bin/http-server.sh -start + + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Generador: Reiniciado ♻️\n" + bot_retorno+="$LINE\n" + + msj_fun + + sleep 5s + msj_del ${message_message_id} + msj_del ${MSG_id} +} + +restart_genbot () { + MSG_id=$((${message_message_id} + 1)) + unset PIDGEN + PIDGEN=$(ps aux | grep -v grep | grep "http-server.sh") + + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Verificando Estado del proceso NcT...\n" + bot_retorno+="$LINE\n" + msj_fun "${bot_retorno}" + + sleep 5s + + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Estado Verificado...\n" + bot_retorno+="$LINE\n" + msj_fun "${bot_retorno}" + + sleep 5s + + systemctl is-enabled http-server &> /dev/null + if [ $? -eq 0 ]; then + systemctl is-active http-server &> /dev/null + if [ $? -ne 0 ]; then + systemctl start http-server + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Generador: Iniciado ♻️\n" + bot_retorno+="$LINE\n" + msj_fun "${bot_retorno}" + else + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Generador: Anulacion de Reinicio NcT ✅\n" + bot_retorno+=" Todos Los Procesos \n" + bot_retorno+=" Funcionan Correctamente \n" + bot_retorno+="$LINE\n" + fi + else + killall http-server.sh + sleep 2s + screen -dmS generador /bin/http-server.sh -start + local bot_retorno=" ✉️ ==== NOTIFICACION ==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" Generador: Reiniciado ♻️\n" + bot_retorno+="$LINE\n" + msj_fun "${bot_retorno}" + fi + + msj_fun + + sleep 5s + + msj_del ${message_message_id} + msj_del ${MSG_id} +} + + +#Termina Bot de reincios + + + +myid_src () { + MSG_id=$((${message_message_id} + 1)) + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + [[ ! -z $(cat /etc/CAT-BOT/Admin-ID|grep "${chatuser}" ) ]] && { + bot_retorno=" $LINE\n" + bot_retorno+="▫️ Hola @${nUSER} \n" + bot_retorno+="▫️ Bienvenido ADMIN\n" + bot_retorno+="\n" + bot_retorno+=" 𝗜𝗗 𝗖𝗔𝗡𝗖𝗘𝗟𝗔𝗗𝗢 ❌\n" + bot_retorno+="\n" + bot_retorno+=" No es necesario\n" + bot_retorno+=" Mostrarte tu ID\n" + bot_retorno+="$LINE\n" + bot_retorno+="
BOT ELIMINANDO MESAJE ${message_message_id} 
\n" + bot_retorno+=" BORRAREMOS ESTE CODE ${MSG_id} \n" + msj_fun + } || { + [[ $(cat ${CID}|grep "${chatuser}" ) = "" ]] && { + bot_retorno="$LINE\n" + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} --text "VERIFICANDO ACCESO VIP" + [[ -z ${nUSER} ]] && bot_retorno+=" ⚠️ USUARIO SIN ALIAS ⚠️ SIN AUTORIZACION\n" || bot_retorno+="Hola【 @${nUSER} 】, Aviso ❗️ \n" + bot_retorno+="\n" + bot_retorno+="🔘 No cuentas con Acceso VIP, adquiere uno . \n" + bot_retorno+="\n" + bot_retorno+="❗️ 𝗦𝗜𝗡 𝗖𝗥𝗘𝗗𝗜𝗧𝗢𝗦 𝗗𝗜𝗦𝗣𝗢𝗡𝗜𝗕𝗟𝗘𝗦 ❗️ \n" + bot_retorno+="🆔 ●--【 ${chatuser} 】\n" + bot_retorno+="Usa el comando /menu \n" + bot_retorno+="$LINE\n" + comand_boton "atras" + } || { + bot_retorno=" $LINE\n" + data_user=$(cat ${CID}|grep "${chatuser}" | awk -F "|" '{print $2}') + data_sec=$(date +%s) + data_user_sec=$(date +%s --date="$data_user") + variavel_soma=$(($data_user_sec - $data_sec)) + dias_use=$(($variavel_soma / 86400)) + [[ "$dias_use" -le 0 ]] && dias_use=0 || dias_use=$(($dias_use + 1)) + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} --text "ACCESO VIP VERIFICADO" + bot_retorno+="👤 ●-- [ ${firsnme} ${lastnme} ] \n" + bot_retorno+="🆔 ●-- [ ${chatuser} ] \n" + bot_retorno+="\n" + bot_retorno+="Actualmente tu acceso está activo ✅ \n" + bot_retorno+="Tu fecha límite de membresía en el BOT es \n" + datexp=$(date "+%F" -d " + $DIAS days") && valid=$(date '+%C%y-%m-%d' -d " + $DIAS days") + bot_retorno+="El día $data_user | $(date +%R)\n" + bot_retorno+="\n" + bot_retorno+="Para volver al menú pulsa el boton\n" + comand_boton "atras2" + } + } +} + +deleteID_src () { + bot_retorno="/del" + reply + listID_src +} + +deleteIDS_reply () { + ids=$(echo ${message_text[$id]} | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig') + idc=$(echo ${message_text[$id]} | awk '{print $3}' | sed -e 's/[^a-z0-9 -]//ig') + sed -i "/${message_text[$id]}/d" /root/RegBOT/banID + sed -i "/${message_text[$id]}/d" /root/RegBOT/U_check.txt + bot_retorno="$LINE\n" + bot_retorno+=" ID ELIMINADO EXITOSAMENTE!\n" + bot_retorno+=" ID Eliminado: ${ids}\n" + bot_retorno+="$LINE\n" + bot_retor=" 🟢 𝗧𝗨 𝗜𝗗 𝗙𝗨𝗘 𝗗𝗘𝗦𝗕𝗟𝗢𝗤𝗨𝗘𝗔𝗗𝗔 🟢 \n" + bot_retor+="⚠️ Advertencia ⚠️ [ NO-SPAMEAR ] \n" + bot_retor+="Ahora puedes volver a usar el menu \n" + bot_retor+="Si tienes Dudas, Contacta con el ADM\n" + bot_retor+="$LINE\n" + comand_boton "atras" + msj_fun + msj_add ${ids} + upfile_src +} + +addIDS_reply () { + ids=$(echo ${message_text[$id]} | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig') + idc=$(echo ${message_text[$id]} | awk '{print $3}' | sed -e 's/[^a-z0-9 -]//ig') + echo "${message_text[$id]}" >> /root/RegBOT/banID + bot_retorno="$LINE\n" + bot_retorno+=" ID BLOQUEADO EXITOSAMENTE!\n" + bot_retorno+=" ID Bloqueado: ${ids}\n" + bot_retorno+="$LINE\n" + bot_retor="dev \n" + bot_retor+="$LINE\n" + comand_boton "atras" + msj_fun + msj_add ${ids} + upfile_src +} + +list_IP () { + unset lsid + unset idchek + [[ -z ${idchek} ]] && idchek="${message_from_id}" + [[ -z ${idchek} ]] && idchek="${callback_query_from_id}" + [[ -z "$(cat /etc/CAT-BOT/User-ID | grep ${idchek} )" ]] && { + [[ "$(cat /etc/CAT-BOT/Admin-ID)" == "${idchek}" ]] && { + cat /var/www/html/dani/checkIP.log > /tmp/ips + echo -e " $(cat /tmp/ips | awk '{print $3}' | uniq)" > /tmp/ipchek + lsid=$(cat -n /tmp/ipchek) + local bot_retorno=" $LINE\n" + bot_retorno+=' - ULTIMOS IP´S UNICOS CAPTURADOS \n' + bot_retorno+=" - TIENES $(cat /var/www/html/dani/checkIP.log | wc -l) IP´s CAPTURADAS \n" + bot_retorno+="$LINE\n" + bot_retorno+=" ${lsid}\n" + bot_retorno+="$LINE\n" + } + } || { + cat /var/www/html/dani/checkIP.log | grep "${idchek}" > /tmp/ips + echo -e " $(cat /tmp/ips | awk '{print $3}' | uniq)" > /tmp/ipchek + lsid=$(cat -n /tmp/ipchek) + local bot_retorno=" $LINE\n" + bot_retorno+=' - ULTIMOS IP´S UNICOS CAPTURADOS \n' + bot_retorno+=" - TIENES $(cat /var/www/html/dani/checkIP.log | grep ${idchek} | wc -l) IP´s CAPTURADAS DE TUS GENERADAS \n" + bot_retorno+="$LINE\n" + bot_retorno+=" ${lsid}\n" + bot_retorno+="$LINE\n" + } + msj_fun +} + +addID_src () { + bot_retorno="/add" + reply +} + + +deleteIDS_reply () { + ids=$(echo ${message_text[$id]} | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig') + idc=$(echo ${message_text[$id]} | awk '{print $3}' | sed -e 's/[^a-z0-9 -]//ig') + sed -i "/${message_text[$id]}/d" /root/RegBOT/banID + sed -i "/${message_text[$id]}/d" /root/RegBOT/U_check.txt + bot_retorno="$LINE\n" + bot_retorno+=" ID ELIMINADO EXITOSAMENTE!\n" + bot_retorno+=" ID Eliminado: ${ids}\n" + bot_retorno+="$LINE\n" + bot_retor=" 🟢 𝗧𝗨 𝗜𝗗 𝗙𝗨𝗘 𝗗𝗘𝗦𝗕𝗟𝗢𝗤𝗨𝗘𝗔𝗗𝗔 🟢 \n" + bot_retor+="⚠️ Advertencia ⚠️ [ NO-SPAMEAR ] \n" + bot_retor+="Ahora puedes volver a usar el menu \n" + bot_retor+="Si tienes Dudas, Contacta con el ADM\n" + bot_retor+="xD \n" + bot_retor+="$LINE\n" + comand_boton "atras" + msj_fun + msj_add ${ids} + upfile_src +} + +addIDS_reply () { + ids=$(echo ${message_text[$id]} | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig') + idc=$(echo ${message_text[$id]} | awk '{print $3}' | sed -e 's/[^a-z0-9 -]//ig') + echo "${message_text[$id]}" >> /root/RegBOT/banID + bot_retorno="$LINE\n" + bot_retorno+=" ID BLOQUEADO EXITOSAMENTE!\n" + bot_retorno+=" ID Bloqueado: ${ids}\n" + bot_retorno+="$LINE\n" + bot_retor="dev \n" + bot_retor+="$LINE\n" + comand_boton "atras" + msj_fun + msj_add ${ids} + upfile_src +} + +list_IP () { + unset lsid + unset idchek + [[ -z ${idchek} ]] && idchek="${message_from_id}" + [[ -z ${idchek} ]] && idchek="${callback_query_from_id}" + [[ -z "$(cat /etc/CAT-BOT/User-ID | grep ${idchek} )" ]] && { + [[ "$(cat /etc/CAT-BOT/Admin-ID)" == "${idchek}" ]] && { + cat /var/www/html/dani/checkIP.log > /tmp/ips + echo -e " $(cat /tmp/ips | awk '{print $3}' | uniq)" > /tmp/ipchek + lsid=$(cat -n /tmp/ipchek) + local bot_retorno=" $LINE\n" + bot_retorno+=' - ULTIMOS IP´S UNICOS CAPTURADOS \n' + bot_retorno+=" - TIENES $(cat /var/www/html/dani/checkIP.log | wc -l) IP´s CAPTURADAS \n" + bot_retorno+="$LINE\n" + bot_retorno+=" ${lsid}\n" + bot_retorno+="$LINE\n" + } + } || { + cat /var/www/html/dani/checkIP.log | grep "${idchek}" > /tmp/ips + echo -e " $(cat /tmp/ips | awk '{print $3}' | uniq)" > /tmp/ipchek + lsid=$(cat -n /tmp/ipchek) + local bot_retorno=" $LINE\n" + bot_retorno+=' - ULTIMOS IP´S UNICOS CAPTURADOS \n' + bot_retorno+=" - TIENES $(cat /var/www/html/dani/checkIP.log | grep ${idchek} | wc -l) IP´s CAPTURADAS DE TUS GENERADAS \n" + bot_retorno+="$LINE\n" + bot_retorno+=" ${lsid}\n" + bot_retorno+="$LINE\n" + } + msj_fun +} + +addID_src () { + bot_retorno="/add" + reply +} + +addID_reply () { + ids=$(echo ${message_text[$id]} | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig') + idc=$(echo ${message_text[$id]} | awk '{print $3}' | sed -e 's/[^a-z0-9 -]//ig') + valid=$(date '+%C%y-%m-%d' -d " +$idc days") + [[ $(cat ${CID}|grep "$ids" ) = "" ]] && { + [[ -e /root/RegBOT/banID ]] && sed -i "/${ids}/d" /root/RegBOT/banID + echo "${ids} | $valid" >> ${CID} + echo "${ids} | $(date '+%C%y-%m-%d') | $(date +%R)" >> ${CID}.reg + bot_retorno=" EL ID FUE REGISTRADO EXITOSAMENTE \n" + bot_retorno+=" 🆔 : ${ids} | ACEPTADO 🧾\n" + bot_retorno+="$LINE\n" + bot_retorno+=" FECHA DE REGISTRO : $(date '+%C%y-%m-%d')|$(date +%R) \n VALIDO HASTA : ${valid}\n" + bot_retorno+="$LINE\n" + bot_retorno+=" ✅ ID REGISTRADO EXITOSAMENTE ✅\n" + bot_retorno+="$LINE\n" + bot_retorno+=" ⚜ Power ⚜\n" + unset i + for i in $(cat /etc/CAT-BOT/User-ID | awk '{print $3}'); do + [[ "$(date -d $(date '+%C%y-%m-%d') +%s)" -ge "$(date -d $i +%s)" ]] && { + for id in $(cat /etc/CAT-BOT/User-ID | grep "$i" | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig'); do + sed -i "${id}/d" /etc/CAT-BOT/User-ID + bot_retor=" ❗️ 𝗦𝗜𝗡 𝗔𝗖𝗖𝗘𝗦𝗢 𝗩𝗜𝗣 ❗️ \n" + bot_retor+=" Su acceso vip al bot a finalizado \n" + bot_retor+="❌ Fin : $(date '+%C%y-%m-%d') - $(date +%R) \n" + bot_retor+=" 🔘 Todavia no cuentas con alguna compra o activacion. \n" + bot_retor+=" $LINE\n" + msj_add ${id} + done + } + done + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retor=" 𝗛𝗢𝗟𝗔 𝗕𝗜𝗘𝗡𝗩𝗘𝗡𝗜𝗗𝗢 \n" + bot_retor+="\n" + bot_retor+="El ADM ${message_from_first_name[$id]} acepto tu acceso \n" + bot_retor+="\n" + bot_retor+="𝗔𝗛𝗢𝗥𝗔 𝗧𝗜𝗘𝗡𝗘𝗦 𝗔𝗖𝗖𝗘𝗦𝗢 𝗩𝗜𝗣 𝗔𝗟 𝗕𝗢𝗧\n" + bot_retor+="🔘 Inicio : $(date '+%C%y-%m-%d')|$(date +%R) \n🔘 Fin : ${valid}|$(date +%R)\n" + bot_retor+="\n" + bot_retor+="🆔 : ${ids} \n" + bot_retor+="🔘 Autorizado por: ${firsnme} ${lastnm} \n" + bot_retor+="\n" + bot_retor+="Digita el comando /menu\n" + bot_retor+="Adquiere nuevos creditos @$(ShellBot.username) \n" + bot_retor+=" $LINE\n" + msj_fun + msj_add ${ids} + upfile_src + } || { + bot_retorno="====ERROR====\n" + bot_retorno+="Este ID ya existe\n" + bot_retorno+="$LINE\n" + msj_fun + } +} + +link_src () { + bot_retorno="$LINE\n" + bot_retorno+="RESELLER OFICIALES BOTGEN\n" + bot_retorno+="$LINE\n" + bot_retorno+="🔰BOT ACTIVACIONES\n" + bot_retorno+="\n" + bot_retorno+="🇲🇽 MEXICO\n" + bot_retorno+="👤 Nombre de usuario @drowkid01 \n" + bot_retorno+="👤 Nombre de usuario @droidalexander\n" + bot_retorno+="\n" + bot_retorno+="$LINE\n" + comand_boton "atras2" +} + + +listID_GEN () { + unset bot_lin + n=1 + for i in $(cat /root/RegBOT/banID | awk '{print $1}' | sed -e 's/[^a-z0-9 -]//ig'); do + idlog=$(cat /root/RegBOT/banID | grep "$i" | awk '{print $3}') + bot_lin+=" $n] > ${i} | $idlog | ${idGEN}\n" + let n++ + done + local bot_retorno="$LINE\n" + bot_retorno+='𝗜𝗗´𝗦 𝗕𝗟𝗢𝗤𝗨𝗘𝗔𝗗𝗢𝗦 𝗣𝗢𝗥 𝗦𝗣𝗔𝗠 \n' + bot_retorno+="$LINE\n" + bot_retorno+=" $(echo -e ${bot_lin}) " #|column -t -s '-')" + bot_retorno+="$LINE\n" + comand_boton "atras" + return 0 +} + +searchID_reply () { + searchID=$(cat -n /root/RegBOT/banID | grep "${message_text[$id]}") + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "BUSCANDO ID BLOQUEADO" + bot_retorno="$LINE\n" + bot_retorno+="𝗠𝗢𝗦𝗧𝗥𝗔𝗡𝗗𝗢 𝗥𝗘𝗦𝗨𝗟𝗧𝗔𝗗𝗢𝗦 𝗗𝗘 𝗕𝗨𝗦𝗤𝗨𝗘𝗗𝗔!\n" + bot_retorno+=" $LINE\n" + [[ ! -z ${searchID} ]] && bot_retorno+=" N°${searchID} 🔴 BLOQUEADO \n" || bot_retorno+=" ID NO ENCONTRADO \n" + comand_boton "atras2" + return 0 +} + +listID_src () { + lsid=$(cat -n ${CID}) + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "BUSCANDO ID REGISTRADOS" + local bot_retorno="$LINE\n" + bot_retorno+="𝗥𝗘𝗦𝗨𝗟𝗧𝗔𝗗𝗢𝗦 𝗗𝗘 🆔 𝗥𝗘𝗚𝗜𝗦𝗧𝗥𝗔𝗗𝗢𝗦 \n" + bot_retorno+="▫️ 𝗟𝗶𝘀𝘁𝗮 𝗱𝗲 𝗜𝗗 𝗔𝗰𝘁𝗶𝘃𝗼𝘀\n" + bot_retorno+="$LINE\n" + bot_retorno+="${lsid}\n" + bot_retorno+="$LINE\n" + comand_boton "atras2" + return 0 +} + +listIDcup_src () { + lsid=$(cat -n ${CIDB}) + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "BUSCANDO ID POR CUPONES" + local bot_retorno="$LINE\n" + bot_retorno+="🎟️ID POR CUPONES🎟️\n" + bot_retorno+="▫️Lista de Usuarios por cupon\n" + bot_retorno+="$LINE\n" + bot_retorno+="${lsid}\n" + bot_retorno+="$LINE\n" + comand_boton "atras2" + return 0 +} + +listkey_src () { + log=$(cat /etc/gerar-sh-log | awk '{print $1, $2}') + count=$(echo "$log" | sort | uniq -c) + count=$(echo "$count" | awk '{printf "%-11s | %2s\n", $1, $2}') + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "BUSCANDO KEY USADAS POR ID" + local bot_retorno="$LINE\n" + bot_retorno+="𝗥𝗘𝗦𝗨𝗟𝗧𝗔𝗗𝗢𝗦 𝗗𝗘 𝗞𝗘𝗬 𝗨𝗦𝗔𝗗𝗢𝗦 𝗟𝗔𝗧𝗔𝗠 \n" + bot_retorno+="🔑Key ——-------— 🆔\n" + bot_retorno+="$LINE\n" + bot_retorno+="$count\n" + bot_retorno+="$LINE\n" + comand_boton "atras2" + return 0 +} + +showHistory() { + bot_retorno=" $LINE\n" + data_users=$(grep "${chatuser}" "${CIDC}" | awk -F "|" '{print $2}') + if [[ -z "${data_users}" ]]; then + ShellBot.answerCallbackQuery --callback_query_id "${callback_query_id[$id]}" \ + --text "⚠️ NO HAY COMPRAS VENCIDAS REGISTRADAS EN SU ID ⚠️." + return 0 + fi + [[ -z "${callback_query_from_first_name}" ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z "${callback_query_from_last_name}" ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + ShellBot.answerCallbackQuery --callback_query_id "${callback_query_id[$id]}" \ + --text "CONSULTANDO COMPRAS VENCIDAS" + bot_retorno+="👤 ●-- [ ${firsnme} ${lastnme} ] \n" + bot_retorno+="🆔 ●-- [ ${chatuser} ] \n" + bot_retorno+="\n" + bot_retorno+="REGISTRO DE ACTIVACIONES \n" + bot_retorno+=" \n" + vencidas=() + while IFS= read -r data_user; do + data_sec=$(date +%s) + data_user_sec=$(date +%s --date="$data_user") + variavel_soma=$((data_user_sec - data_sec)) + dias_use=$((variavel_soma / 86400)) + [[ "$dias_use" -le 0 ]] && dias_use=0 || dias_use=$((dias_use + 1)) + datexp=$(date "+%F" -d "$data_user + $dias_use day") && valid=$(date '+%C%y-%m-%d' -d "$data_user + $dias_use day") + vencidas+=("$datexp") + done <<< "$data_users" + if [[ ${#vencidas[@]} -gt 0 ]]; then + bot_retorno+="Registro de Fechas\n" + if [[ ${#vencidas[@]} -eq 1 ]]; then + bot_retorno+="Caducado Recientemente:\n" + bot_retorno+="Día ${vencidas[0]}\n" + bot_retorno+="\n" + else + bot_retorno+="Caducado Recientemente:\n" + bot_retorno+="Día ${vencidas[${#vencidas[@]}-1]}\n" + bot_retorno+="\n" + bot_retorno+="Fechas vencidas anteriores:\n" + for ((i=${#vencidas[@]}-2; i>=0; i--)); do + bot_retorno+="Día ${vencidas[$i]}\n" + done + fi + fi + comand_boton "atras2" +} + + + +ayuda_id(){ + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "💰 LISTA DE PRECIOS DISPONIBLES" + local bot_retorno="$LINE\n" + bot_retorno="$LINE\n" + bot_retorno+="ɪɴғᴏʀᴍᴀᴄɪᴏɴ sᴏʙʀᴇ ʟᴏs ᴘʀᴇᴄɪᴏs \n" + bot_retorno+="► PRECIO PAYPAL ► PRECIO MEXICANO\n" + bot_retorno+="► 7 DIAS💰1 USD ► 💰20 MXN\n" + bot_retorno+="► 13 DIAS💰1.70 USD ► 💰30 MXN\n" + bot_retorno+="► 35 DIAS💰2.84 USD ► 💰50 MXN\n" + bot_retorno+="► 90 DIAS💰4.54USD ► 💰80 MXN\n" + bot_retorno+="TRANSFERENCIA\n" + bot_retorno+="646180192100197089\n" + bot_retorno+="$LINE\n" + comand_boton "atras3" + return 0 +} +dnxsub() { + if [[ $(cat $fsub | grep "$chatuser") ]]; then + unset sub + bot_retorno+="TUS SUBDOMINIOS\n" + for x in $(cat $fsub | grep "$chatuser"); do + bot_retorno+="🌐 ●⸺[ $(echo $x | awk -F '|' '{print $2}') ⟩ $(echo $x | awk -F "|" '{print $1}') ]\n" + done + bot_retorno+="$line\n" + fi +} + +menu_src () { + bot_retorno="━━━━◢ MENU PRINCIPAL ◣━━━━\n" + datauser + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gena=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-keys.cont | wc -l) + limconta=$(cat /etc/CAT-BOT/limita) + [[ "$limconta" -ge "998" ]] && limteda="♾️" || limteda=$(cat /etc/CAT-BOT/limita) + [[ "$(( $limconta - $numkey_gena ))" -ge "900" ]] && credress="♾️" || credress=$(( $limconta - $numkey_gena)) + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "REGRESANDO AL MENU INICIO" + unset usadas + usadas="$(cat /etc/http-instas)" + [[ ! $usadas ]] && k_used="0" || k_used="$usadas" + + if [[ $(cat $fsub|grep "$chatuser") ]]; then + unset sub + bot_retorno+="SUBDOMINIOS\n" + for x in `cat $fsub|grep "$chatuser"`; do + bot_retorno+="🌐 ●⸺[ $(echo $x|awk -F '|' '{print $2}') ⟩⟩⟩ $(echo $x|awk -F "|" '{print $1}') ]\n" + done + bot_retorno+="$line\n" + fi + if [[ $(echo $permited|grep "${chatuser}") = "" ]]; then + if [[ $(cat ${CID}|grep "${chatuser}") = "" ]]; then + [[ -e /root/RegBOT/banID ]] && idBAN=$(cat /root/RegBOT/banID) || idBAN="" + [[ -z "$(echo $idBAN | grep "${chatuser}")" ]] && { + local bot_retorno="$LINE\n" + bot_retorno="━━━━◢ MENU PRINCIPAL ◣━━━━\n" + datauser + bot_retorno+="🌐 |-- Instalaciones Totales [ $k_used ] \n" + bot_retorno+="\n" + bot_retorno+="🗓️ TOTAL DIAS DE ACCESO\n" + bot_retorno+="[ ❌ 𝗦𝗶𝗻 𝗮𝗰𝗰𝗲𝘀𝗼 𝗩𝗜𝗣 ❌ ]\n" + bot_retorno+="📅 VIGENCIA DEL ACCESO\n" + bot_retorno+="[ ❌ 𝗦𝗶𝗻 𝗮𝗰𝗰𝗲𝘀𝗼 𝗩𝗜𝗣 ❌ ]\n" + bot_retorno+="\n" + bot_retorno+="Hola :${firsnme} ${lastnme} \n" + bot_retorno+="\n" + bot_retorno+="🔑Total Instalado:『 $numkey_used 』\n" + bot_retorno+="⚠️Limite Actual (24hrs): [ $credress/$limteda ]\n" + bot_retorno+="🔘 Recuerda No hacer 𝗦𝗣𝗔𝗠 \n" + bot_retorno+="$LINE\n" + comand_boton "user1" + return 0 + } || { + bot_retorno="$LINE\n" + bot_retorno+=" ⚠️ 𝗦𝗨 𝗜𝗗 𝗙𝗨𝗘 𝗕𝗔𝗡𝗘𝗔𝗗𝗢 ⚠️ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- [ ${firsnme} ${lastnme} ] \n" + bot_retorno+="🆔 ●-- [ ${chatuser} ] \n" + bot_retorno+="\n" + bot_retorno+="❗️ [ SPAM-BOT ] Detected ❗️ \n" + bot_retorno+="$LINE\n" + comand_boton "dex" + return 0 + } + else + VPSsec=$(date +%s) + dia="$(cat ${CID}|grep -w "$chatuser"|cut -d'|' -f2)" + DataSec=$(date +%s --date="$dia") + [[ "$VPSsec" -gt "$DataSec" ]] && { + local us="❯ ══━━━━⎊⎊━━━━══ ❮ ️\nUSUARIO 🆔: $chatuser EXPIRADO\n" + ShellBot.sendMessage --chat_id ${permited[$id]} \ + --text "$(echo -e "$us")" \ + --parse_mode html + EXPTIME="EXPIRADO" + rm -rf ${USRdatabase2}/Mensaje_$chatuser.txt &>/dev/null + rm ${keytxt}/key_${chatuser}.txt &>/dev/null + sed -i "/$chatuser/d" ${CID} + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e USUARIO EXPIRADO)" \ + --parse_mode html + return 0 + } || { + EXPTIME="[$(($(($DataSec - $VPSsec)) / 86400))] DIAS" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset creditos + creditos="$(cat /etc/CAT-BOT/Creditos/Mensaje_$chatuser.txt)" + [[ ! $creditos ]] && credi="Defaul: ${firsnme} ${lastnme}" || credi="Personal: $creditos" + + unset PID_GEN + PID_GEN=$(ps x|grep -v grep|grep "http-server.sh") + [[ ! $PID_GEN ]] && PID_GEN='(APAGADA) ❌' || PID_GEN='(EN LINEA) ✅' + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='⚠️ ESTADO!! BotGen Critico ⚠' || checkPID_GEN='🔥 Servicios En Estado Optimo ✅' + data_user=$(cat ${CID}|grep "${chatuser}" | awk -F "|" '{print $2}') + data_sec=$(date +%s) + data_user_sec=$(date +%s --date="$data_user") + variavel_soma=$(($data_user_sec - $data_sec)) + dias_use=$(($variavel_soma / 86400)) + [[ "$dias_use" -le 0 ]] && dias_use=0 || dias_use=$(($dias_use + 1)) + + unset usadas + usadas="$(cat /etc/http-instas)" + [[ ! $usadas ]] && k_used="0" || k_used="$usadas" + numkey_used=$(grep -o -i $nombrevalue /etc/gerar-sh-log | wc -l) + numkey_gen=$(grep -o -i $message_chat_id /etc/CAT-BOT/num-key.cont | wc -l) + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) + limcont=$(cat /etc/CAT-BOT/limit) + [[ "$limcont" -ge "998" ]] && limted="♾️" || limted=$(cat /etc/CAT-BOT/limit) + [[ "$(( $limcont - $numkey_gen ))" -ge "900" ]] && credres="🎊 Usted tiene keys Ilimitados" || credres="⚠️Keys Restantes a Generar: $(( $limcont - $numkey_gen))" + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "VOLVIENDO AL MENU INICIO" + local bot_retorno="$LINE\n" + bot_retorno="━━━━◢ MENU PRINCIPAL ◣━━━━\n" + datauser + dnxsub + bot_retorno+="🗓 TOTAL DIAS DE ACCESO\n" + bot_retorno+="🔘 |-- Días Restantes $EXPTIME \n" + bot_retorno+="📅 TU ACCESO CADUCA \n" + bot_retorno+="🔘 |-- El dia [ $data_user ] \n" + bot_retorno+="\n" + bot_retorno+="📳 Notificacion del BOT \n" + bot_retorno+="$(cat < /etc/CAT-BOT/resell)\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="\n" + bot_retorno+="📡 |-- BOT Status [ $PID_GEN ]\n" + bot_retorno+="🧑‍💻 Reseller $credi\n" + bot_retorno+="🔐 |-- Total Key Usadas:『 $numkey_used 』\n" + bot_retorno+="🔑 |-- Total Key Generadas: [ $kg ]\n" + bot_retorno+="🔰 $credres \n" + comand_boton "user" + return 0 + } + fi + else + vv=$(ps x|grep -v grep|grep "veri") + [[ ! $vv ]] && ve="[ DESACTIVADO ]" || ve="[ ACTIVADO ]" + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='⚠️ ESTADO!! BotGen Critico ⚠' || checkPID_GEN='🔥 Servicios En Estado Optimo ✅' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + unset PID_GEN + PID_GEN=$(ps x|grep -v grep|grep "http-server.sh") + [[ ! $PID_GEN ]] && PID_GEN='(APAGADA) ❌' || PID_GEN='(EN LINEA) ✅' + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset creditos + creditos="$(cat /etc/CAT-BOT/Creditos/Mensaje_$chatuser.txt)" + [[ ! $creditos ]] && credi="Defaul: ${firsnme} ${lastnme}" || credi="Personal: $creditos" + $(cat /etc/CAT-BOT/User-ID| wc -l) + unset usadas + usadas="$(cat /etc/http-instas)" + [[ ! $usadas ]] && k_used="0" || k_used="$usadas" + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + num_ips=${#user_connections[@]} + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "RETORNANDO AL MENU INICIO" + local bot_retorno="$LINE\n" + bot_retorno="━━━━◢ MENU PRINCIPAL ◣━━━━\n" + datauser + dnxsub + bot_retorno+="🆔 |-- USUARIOS 𝗩𝗜𝗣 ACTIVOS: $(cat /etc/CAT-BOT/User-ID| wc -l)\n" + bot_retorno+="🟢 |-- BOT STATUS: $PID_GEN \n" + bot_retorno+="📵 |-- AUTO-DEL: $ve \n" + bot_retorno+="🔔NOTY BOT USUARIOS \n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="$(cat < /etc/CAT-BOT/resell)\n" + bot_retorno+="🔐 |-- Key Activas Sin Usar 『 $(ls /etc/http-shell/ | grep name | wc -l) 』 🗝️ \n" + bot_retorno+="🌐 |-- Inst. Totales del SCRIPT [ $k_used ] \n" + bot_retorno+="🔑 |-- Keys Generadas del ADM [ $kg ] \n" + bot_retorno+="👤 |-- Reseller $credi\n" + bot_retorno+="🔌 |-- CONTROL REMOTO $num_ips\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="🔰 |-- ADMIN: ${firsnme} ${lastnme} \n" + bot_retorno+="$LINE\n" + comand_boton "conf" + return 0 + fi +} + + +mensajecre() { + error_fun () { + local bot_retorno="$LINE\n" + bot_retorno+="USAR EL COMANDO DE ESTA MANERA\n" + bot_retorno+="$LINE\n" + bot_retorno+="Ejemplo: /resell @d\n" + bot_retorno+="$LINE\n" + ShellBot.sendMessage --chat_id ${message_chat_id[$id]} \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html + return 0 + } + + [[ -z $1 ]] && error_fun && return 0 + + echo "$1" > ${USRdatabase2}/Mensaje_$chatuser.txt + bot_retorno="$LINE\n" + bot_retorno+="✅Creditos Cambiado ✅\n" + bot_retorno+="$LINE\n" + bot_retorno+="Nuevo Reseller: $1\nPARA REGRESAR /menu\n" + bot_retorno+="$LINE" + + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html + + return 0 +} + +[[ -d /root/RegBOT ]] || mkdir /root/RegBOT +autori() { + MSG_id=$((${message_message_id} + 1 )) + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + [[ -e /root/RegBOT/U_check.txt ]] && n_soli=$(cat /root/RegBOT/U_check.txt | grep ${chatuser} | wc -l) || n_soli=1 + [[ $n_soli < 2 ]] && { + echo "${chatuser}" >> /root/RegBOT/U_check.txt + bot_retor="$LINE\n" + bot_retor+=" Cliente 『 ${firsnme} ${lastnme} 』Solicita Autorización\n" + [[ -z ${nUSER} ]] && bot_retor+=" ⚠️ USUARIO SIN ALIAS ⚠️\n" || bot_retor+=" ALIAS: @${nUSER} CON $n_soli INTENTO\n" + bot_retor+="$LINE\n" + bot_retor+=" EJEMPLO $MSG_id ${chatuser} | DIAS \n" + bot_retor+=" O SOLO DA CLICK AQUI 👉 /add , LUEGO COPIA ALGUNO DE ABJO\n" + bot_retor+=" COPIA EL ID 👉 ♨️ ${chatuser} ♨️\n" + bot_retor+="$LINE\n" + bot_retor+=" ANTES DE LA AUTORIZACION VERIFICAR PAGO\n" + bot_retor+="$LINE\n" + + while IFS= read -r id; do + msj_add "$id" + done < "${CIDdir}/Admin-ID" + bot_retor+="$LINE\n" + bot_retorno+="🆔 ●-- 【 ${chatuser} 】\n" + bot_retorno+="\n" + [[ -z ${nUSER} ]] && bot_retorno+=" ❌ Añada un Alias Para no Banearte ❌ \n" || bot_retorno+=" 𝗦𝗼𝗹𝗰𝗶𝘁𝘂𝗱 𝗲𝗻𝘃𝗶𝗮𝗱𝗮 𝗮𝗹 𝗔𝗗𝗠 $(cat < /etc/ADM-db/resell)\n📌 Aprobación en proceso ⌛\n" + [[ -z ${nUSER} ]] && bot_retorno+=" Imposible verificar su ID \n Su ${n_soli} Solicitud es Invalida \n" || bot_retorno+=" Esta es su ${n_soli} Solicitud \n" + bot_retorno+="\n" + [[ -z ${nUSER} ]] && bot_retorno+=" SU ID FUE ENVIADO CON ADVERTENCIA (POSIBLE BANEO DE ID) ⚠️\n" || bot_retorno+=" ✅ ID ENVIADO EXITOSAMENTE ✅\n" + bot_retorno+="$LINE\n" + bot_retorno+=" ENVIE SU COMPROBANTE DE PAGO\n" + bot_retorno+="🔘 Evita hacer spam en el BOT\n" + bot_retorno+="🔘 De lo contrario se anulará tu solicitud \n" + bot_retorno+="$LINE\n" + comand_boton "atras" + } || { + bot_retorno="$LINE\n" + bot_retorno+="🆔 ●-- 【 ${chatuser} 】 \n" + #bot_retorno+="$LINE\n" + [[ -z ${nUSER} ]] && bot_retorno+=" ⚠️ USUARIO SIN ALIAS ⚠️\n" || bot_retorno+=" 🆔 ●⸺ Hola : @${nUSER} \n" + [[ -z ${nUSER} ]] && bot_retorno+=" ⚠️ AÑADA UN ALIAS PARA PODER SOLICITAR DE MANERA EXITOSA ⚠️\n" || bot_retorno+="𝗜𝗻𝘁𝗲𝗻𝘁𝗼𝘀 𝗱𝗲 𝗦𝗼𝗹𝗶𝗰𝗶𝘁𝘂𝗱 ${n_soli} $(cat < /etc/ADM-db/resell)\n" + [[ -z ${nUSER} ]] && bot_retorno+=" IMPOSIBLE VERIFICAR ID SIN ALIAS\n SU ${n_soli} SOLITUD ES INVALIDA \n" || bot_retorno+="Su 🆔 No fue recibido por el ADM \n" + bot_retorno+=" 🔴 𝗧𝗨 𝗜𝗗 𝗙𝗨𝗘 𝗕𝗟𝗢𝗤𝗨𝗘𝗔𝗗𝗔 🔴 \n" + bot_retorno+="$LINE\n" + echo "${chatuser}" >> /root/RegBOT/banID + #bot_retorno+=" ⚜ Power botgen ⚜\n" + bot_retorno+="$LINE\n" + msj_fun + } +} + +ipgeo_reply() { + local ip=$(echo "${message_text[$id]}" | awk -F '|' '{print $1}' | awk '{print $1}') + local chat_id="${message_chat_id[$id]}" + + local bot_retorno="Datos de la IP: $ip\n\n" + + # Obtener información de la IP utilizando ipinfo.io + local info_ip=$(curl -s "https://ipinfo.io/$ip/json") + + if [[ -n $info_ip ]]; then + # Analizar y formatear la respuesta JSON + local ciudad=$(echo "$info_ip" | jq -r '.city') + local pais=$(echo "$info_ip" | jq -r '.country') + local proveedor=$(echo "$info_ip" | jq -r '.org') + local latitud=$(echo "$info_ip" | jq -r '.loc' | awk -F ',' '{print $1}') + local longitud=$(echo "$info_ip" | jq -r '.loc' | awk -F ',' '{print $2}') + local fecha_escaneo=$(date +'%Y-%m-%d %H:%M:%S') + + bot_retorno+="Ciudad: $ciudad\n" + bot_retorno+="País: $pais\n" + bot_retorno+="Proveedor: $proveedor\n" + bot_retorno+="Latitud: $latitud\n" + bot_retorno+="Longitud: $longitud\n" + bot_retorno+="Fecha de escaneo: $fecha_escaneo\n" + else + bot_retorno+="❌ Error: No se pudo obtener información de la IP. ❌\n" + fi + + ShellBot.sendMessage --chat_id "$chat_id" --text "$bot_retorno" +} + +deleteID_reply2 () { + rm -rf ${USRdatabase2}/Mensaje_${message_text[$id]}.txt &>/dev/null + rm -rf ${keytxt}/key_${message_text[$id]}.txt &>/dev/null + sed -i "/${message_text[$id]}/d" ${CID} + local bot_retorno="$LINE\n" + bot_retorno+="🔴 ●-- 𝗜𝗗 𝗘𝗟𝗜𝗠𝗜𝗡𝗔𝗗𝗢 𝗖𝗢𝗡 𝗘𝗫𝗜𝗧𝗢\n" + bot_retorno+="🆔 ●-- : ${message_text[$id]}\n" + bot_retorno+="$LINE\n" + + comand_boton "atras2" +} + + +rmid(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "𝙄𝙉𝙂𝙍𝙀𝙎𝙀 𝙀𝙇 𝙄𝘿 𝘿𝙀𝙇 𝙐𝙎𝙐𝘼𝙍𝙄𝙊" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +newid(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "𝙄𝙉𝙂𝙍𝙀𝙎𝙀 𝙀𝙇 𝙉𝙐𝙀𝙑𝙊 𝙄𝘿" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +mensaje(){ + [[ $(cat ${SCPT_DIR}|grep "${message_text[$id]}") = "" ]] + echo "${message_text[$id]}" > ${USRdatabase2}/Mensaje_$chatuser.txt + local bot_retorno="$LINE\n" + bot_retorno+="🟢 ●-- 𝗥𝗘𝗦𝗘𝗟𝗟𝗘𝗥 𝗔𝗚𝗥𝗘𝗚𝗔𝗗𝗢 \n" + bot_retorno+="$LINE\n" + bot_retorno+="▫️ Nuevo Reseller: ${message_text[$id]}\nVolver: /menu\n" + bot_retorno+="$LINE" + + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html + return 0 +} + +newres(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "✅ AGREGANDO RESELLER" + ShellBot.sendMessage --chat_id $var \ + --text "☟INGRESE SU RESELLER ABAJO☟" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +newip(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "✅ INGRESA TU IP REMOTO " + ShellBot.sendMessage --chat_id $var \ + --text "CONEXION REMOTA A VPS \n\n Requiere de informacion para la conexion remota\n\n IP|PUERTO|USUARIO|CONTRASEÑA\n\nEjemplo ✅ \n142.93.122.215|22|root|Dans862Jjw " + + ShellBot.sendMessage --chat_id $var \ + --text "☟INGRESE SU IP☟" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +idban(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "INGRESE ID A BANEAR" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +ipgeo(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "INGRESE SU IP" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +cupon() { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + if [[ $cupon_activado == true ]]; then + ShellBot.sendMessage --chat_id $var \ + --text "INGRESE SU CUPON" \ + --reply_markup "$(ShellBot.ForceReply)" + else + ShellBot.sendMessage --chat_id $var \ + --text "🥲 Me encuentro Desactivado, contacta al ADM" + fi +} + + +remoip(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "✅ INGRESA TU IP REMOTO " + ShellBot.sendMessage --chat_id $var \ + --text "CONEXION REMOTA A VPS \n\n Requiere de informacion para la conexion remota\n\n IP|USUARIO|CONTRASEÑA\n\nEjemplo ✅ \nip|root|pass\n" + + ShellBot.sendMessage --chat_id $var \ + --text "INGRESE SU IP REMOTO" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +passip(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "✅ INGRESA TU IP REMOTO " + ShellBot.sendMessage --chat_id $var \ + --text "CAMBIAR PASS A VPS \n\n Ingresa como el siguiente ejem \n\n IP|USUARIO|PASSWORD|NUEVOPASS \n" + + ShellBot.sendMessage --chat_id $var \ + --text "INGRESE SUS DATOS" \ + --reply_markup "$(ShellBot.ForceReply)" +} + +autodel_id() { + if [[ $(echo $permited|grep "${chatuser}") = "" ]]; then + local bot="•────•──────────•────•\n" + bot+=" Usted no tiene permiso para usar este comando\n" + bot+="•────•──────────•────•\n" + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$bot" \ + --parse_mode html + return 0 + else + local bot=" = 𝘼𝙐𝙏𝙊-𝘿𝙀𝙇 𝙄𝘿'𝙎=\n" + + local verificar + PIDV=$(ps aux|grep -v grep|grep "veri") + if [[ -z $PIDV ]]; then + echo "" + screen -dmS verificar /etc/CAT-BOT/veri & + verificar="𝘼𝘾𝙏𝙄𝙑𝘼𝘿𝙊 -- 𝘾𝙊𝙉 𝙀𝙓𝙄𝙏𝙊\n 𝙖𝙪𝙩𝙤-𝙞𝙣𝙞𝙘𝙞𝙤 𝙘𝙖𝙙𝙖 1𝙝" + else + kill -9 $(ps aux |grep -v grep |grep -w "veri"|grep dmS|awk '{print $2}') &>/dev/null + kill -9 $(ps aux |grep -v grep |grep -w "verificar"|grep dmS|awk '{print $2}') &>/dev/null + verificar="𝘿𝙀𝙎𝘼𝘾𝙏𝙄𝙑𝘼𝘿𝙊 -- 𝘾𝙊𝙉 𝙀𝙓𝙄𝙏𝙊" + fi + bot+="•────•──────────•────•\n" + bot+=" $verificar\n" + bot+="•────•──────────•────•\n" + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$bot" \ + --parse_mode html + return 0 + fi +} + +rm_resell(){ + rm ${USRdatabase2}/Mensaje_$chatuser.txt + [[ -z ${USRdatabase2}/Mensaje_$chatuser.txt ]] && rs="$(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || rs="Sin-Reseller" + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "❌ ELIMINANDO RESELLER" + bot_retorno="$LINE\n" + bot_retorno+="🔴 ●-- 𝗥𝗘𝗦𝗘𝗟𝗟𝗘𝗥 𝗘𝗟𝗜𝗠𝗜𝗡𝗔𝗗𝗢\n" + bot_retorno+="▫️ Verificador de reseller: ${rs}\nVolver Pulsa /menu\n" + bot_retorno+="$LINE\n" + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$(echo -e "$bot_retorno")" \ + --parse_mode html + return 0 +} + + + +addADM_reply () { + [[ $(cat /etc/CAT-BOT/Admin-ID | grep "${message_text[$id]}") = "" ]] && { + echo "${message_text[$id]}" >> /etc/CAT-BOT/Admin-ID + + bot_retorno="$LINE\n" + bot_retorno+="*ID agregado *\n" + bot_retorno+="$LINE\n" + bot_retorno+="$LINE\n" + bot_retorno+="New ID: ${message_text[$id]}\n" + bot_retorno+="$LINE" + + bot_retor="$LINE\n" + bot_retor+="Bienvenido Nuevo Administrador\n" + bot_retor+="❌ NO REGISTRAR ID DUPLICADOS ❌\n" + bot_retor+="\n" + bot_retor+="EL ADMIN principal puede controlar sus Altas\n" + bot_retor+="Para Comenzar pulsa /menu" + bot_retor+="$LINE\n" + + msj_fun + msj_add ${message_text[$id]} + upfile_src + } || { + bot_retorno="====ERROR====\n" + bot_retorno+="Este ID ya existe\n" + bot_retorno+="$LINE\n" + msj_fun + } +} + +cupon_activado=false + +cupon_reply() { + # Verificar si el botón está activado + if [[ $cupon_activado == true ]]; then + local github_url="https://raw.githubusercontent.com/DanssBot/Generador-BOT/main/cup.txt" + local cupon_ingresado="${message_text[$id]}" + + # Obtener el ID de usuario de manera alternativa + local user_id="${callback_query_message_chat_id[$id]:-${message_chat_id[$id]}}" + + + # Descargar los cupones válidos del archivo en GitHub + cupones_validos=$(curl -s "$github_url") + + # Verificar si el cupón ya ha sido canjeado previamente + if grep -q "^${cupon_ingresado}$" /etc/CAT-BOT/Cupones-Canjeados; then + # El cupón ya ha sido canjeado anteriormente + bot_retorno="🎟️CUPON INVALIDO🎟️.\n" + bot_retorno+="\n" + bot_retorno+="⚠️ No canjeado ⚠️\n" + bot_retorno+="Cupon usado anteriormente\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- [ ${firsnme} ${lastnme} ] \n" + bot_retorno+="🆔 ●-- [ ${chatuser} ] \n" + bot_retorno+="\n" + bot_retorno+="$LINE\n" + + ## Contar cuántos usuarios han intentado usar el mismo cupón + usuarios_que_intentaron=$(grep -c "^${cupon_ingresado}$" /etc/CAT-BOT/Intentos-Canje) + + # Envía el mensaje al administrador (debes proporcionar el ID del administrador) + send_message_to_admin "${mensaje_admin}" + msj_fun + return + fi + + # Buscar el cupón ingresado en la lista de cupones válidos + local fecha_expiracion="" + IFS=$'\n' read -r -d '' -a cupon_array <<< "$cupones_validos" + for cupon_info in "${cupon_array[@]}"; do + local cupon=($(echo "$cupon_info" | tr '|' ' ')) + if [ "${cupon[0]}" == "$cupon_ingresado" ]; then + # El cupón es válido, obtener la fecha de expiración + fecha_expiracion="${cupon[1]}" + break + fi + done + + if [ -n "$fecha_expiracion" ]; then + # Cupón válido, guardar el ID de usuario y la fecha de expiración en un archivo de texto plano + echo "${user_id}|${fecha_expiracion}" >> /etc/CAT-BOT/User-ID + echo "${user_id}|${fecha_expiracion}" >> /etc/CAT-BOT/regcup + + # Marcar el cupón como canjeado en el archivo de cupones canjeados + echo "${cupon_ingresado}" >> /etc/CAT-BOT/Cupones-Canjeados + + bot_retorno="$LINE\n" + bot_retorno+="=====📩𝙈𝙀𝙉𝙎𝘼𝙅𝙀 𝙍𝙀𝘾𝙄𝘽𝙄𝘿𝙊📩=====\n" + bot_retorno+="\n" + bot_retorno+="🎊FELICIDADES LO LOGRASTE 🎊 \n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + bot_retorno+="👤 ●-- [ ${firsnme} ${lastnme} ] \n" + bot_retorno+="🆔 ●-- [ ${chatuser} ] \n" + bot_retorno+="\n" + bot_retorno+=" ✅ CUPÓN CANJEADO EXISTOSAMENTE 🎊\n" + bot_retorno+="Favor de agradecer al owner 👽\n" + bot_retorno+="\n" + bot_retorno+="\n" + bot_retorno+="Pulsa /menu para ingresar al bot\n" + + # Resto de tu código... + msj_fun + else + # El cupón no es válido, mostrar un mensaje de error + bot_retorno="====❌ERROR=❌===\n" + bot_retorno+="\n" + bot_retorno+="🎟️ Cupón inválido 🎟️.\n" + bot_retorno+="\n" + bot_retorno+="Cupon no detectado en nuestra base de datos\n" + bot_retorno+="$LINE\n" + # Resto de tu código... + msj_fun + fi +else + echo "El botón de cupón está desactivado" + fi +} + +declare -A user_connections + +addIP_reply() { + local ip=$(echo "${message_text[$id]}" | awk -F '|' '{print $1}' | awk '{print $1}') + local puerto=$(echo "${message_text[$id]}" | awk -F '|' '{print $2}' | awk '{print $1}') + local usuario=$(echo "${message_text[$id]}" | awk -F '|' '{print $3}' | awk '{print $1}') + local contrasena=$(echo "${message_text[$id]}" | awk -F '|' '{print $4}' | awk '{print $1}') + + local salida=$(sshpass -p "$contrasena" ssh -o StrictHostKeyChecking=no -p "$puerto" "$usuario@$ip" echo "Conexión exitosa") + + if [[ $salida == "Conexión exitosa" ]]; then + # Guardar los datos de conexión en el diccionario correspondiente al ID de usuario + #user_connections["${message_chat_id[$id]}"]="IP: $ip | Puerto: $puerto | Usuario: $usuario" + user_connections["${message_chat_id[$id]}"]="IP: $ip | Puerto: $puerto | Usuario: $usuario | Contraseña: $contrasena" + + local bot_retorno="🌐 Conexión a VPS exitosa 🌐\n\n" + bot_retorno+="IP: $ip\n" + bot_retorno+="Puerto: $puerto\n" + bot_retorno+="Usuario: $usuario\n" + bot_retorno+="Estado: Conectado a la VPS ✅\n" + bot_retorno+="$LINE\n" + bot_retorno+="\n" + + #ShellBot.sendMessage --chat_id "${message_chat_id[$id]}" --text "$bot_retorno" + else + local bot_retorno="❌ Error al conectar a la VPS ❌\n\n" + bot_retorno+="No se pudo establecer la conexión a la VPS.\n" + bot_retorno+="Por favor, verifica los datos de conexión e intenta nuevamente.\n" + bot_retorno+="$LINE\n" + bot_retorno+="\n" + + #ShellBot.sendMessage --chat_id "${message_chat_id[$id]}" --text "$bot_retorno" + fi + comand_boton "menudos" +} + +criarteste2() { + if [[ -n ${user_connections["${callback_query_message_chat_id}"]} ]]; then + local connection_info="${user_connections["${callback_query_message_chat_id}"]}" + + + ip_server3=$(echo "$connection_info" | awk -F '|' '{print $1}' | awk -F ' ' '{print $2}') + senha_server2=$(echo "$connection_info" | awk -F '|' '{print $4}' | awk -F ' ' '{print $2}') + + # Resto del código permanece igual + #usuario="$(cat /dev/urandom | tr -dc 'a-zA-Z' | fold -w 4 | head -n 1)$((RANDOM % 1000))" + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + + usuario=$(echo "@${nUSER}" | sed 's/@//')$((RANDOM % 1000)) + + senha=$((RANDOM% + 99999)) + limite='50' + tempo='7' + tuserdate=$(date '+%C%y/%m/%d' -d " +7 days") + + if sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 echo "ok" 1>/dev/null 2>/dev/null; then + sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 << EOF + tuserdate=$(date '+%C%y/%m/%d' -d " +7 days") + useradd -M -N -s /bin/false $usuario -e $tuserdate > /dev/null 2>&1 + (echo "$senha";echo "$senha") | passwd $usuario > /dev/null 2>&1 + echo "$senha" > /etc/SSHPlus/senha/$usuario + echo "$usuario $limite" >> /root/usuarios.db + echo "#!/bin/bash + pkill -f "$usuario" + userdel --force $usuario + grep -v ^$usuario[[:space:]] /root/usuarios.db > /tmp/ph ; cat /tmp/ph > /root/usuarios.db + rm /etc/SSHPlus/senha/$usuario > /dev/null 2>&1 + rm -rf /etc/SSHPlus/userteste/$usuario.sh" > /etc/SSHPlus/userteste/$usuario.sh + chmod +x /etc/SSHPlus/userteste/$usuario.sh + at -f /etc/SSHPlus/userteste/$usuario.sh now + $tuserdate > /dev/null 2>&1 + +EOF + echo ${callback_query_from_id} >> lista + #echo ${callback_query_from_id} >> lista + infox="$ip_server3:443@$usuario:$senha" + + info="◇━━━━━━━━━━━━━━━━━◇\n" + info+="SSH PREMIUM BOT\n" + info+="◇━━━━━━━━━━━━━━━━━◇\n\n" + info+="IP: $ip_server3\n" + info+="USUARIO $usuario\n" + info+="Contraseña: $senha\n" + info+="Dias: $tempo\n\n" + info+="HTTP CUSTOM:\n" + info+="${infox}" + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e "$info")" \ + --parse_mode html + + + + else + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e Error intente luego!)" \ + --parse_mode html + return 0 + fi + else + # Acción a realizar si no existe información de conexión + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e ⚠️Por favor configura una conexion ip ⚠️!)" \ + --parse_mode html + + return 0 + fi + #comand_boton "atras2" +} + +criarteste3() { + if [[ -n ${user_connections["${callback_query_message_chat_id}"]} ]]; then + local connection_info="${user_connections["${callback_query_message_chat_id}"]}" + + + ip_server3=$(echo "$connection_info" | awk -F '|' '{print $1}' | awk -F ' ' '{print $2}') + senha_server2=$(echo "$connection_info" | awk -F '|' '{print $4}' | awk -F ' ' '{print $2}') + + # Resto del código permanece igual + #usuario="$(cat /dev/urandom | tr -dc 'a-zA-Z' | fold -w 4 | head -n 1)$((RANDOM % 1000))" + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + + usuario=$(echo "@${nUSER}" | sed 's/@//')$((RANDOM % 1000)) + + senha=$((RANDOM% + 99999)) + limite='50' + tempo='3' + tuserdate=$(date '+%C%y/%m/%d' -d " +3 days") + + if sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 echo "ok" 1>/dev/null 2>/dev/null; then + sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 << EOF + tuserdate=$(date '+%C%y/%m/%d' -d " +7 days") + useradd -M -N -s /bin/false $usuario -e $tuserdate > /dev/null 2>&1 + (echo "$senha";echo "$senha") | passwd $usuario > /dev/null 2>&1 + echo "$senha" > /etc/SSHPlus/senha/$usuario + echo "$usuario $limite" >> /root/usuarios.db + echo "#!/bin/bash + pkill -f "$usuario" + userdel --force $usuario + grep -v ^$usuario[[:space:]] /root/usuarios.db > /tmp/ph ; cat /tmp/ph > /root/usuarios.db + rm /etc/SSHPlus/senha/$usuario > /dev/null 2>&1 + rm -rf /etc/SSHPlus/userteste/$usuario.sh" > /etc/SSHPlus/userteste/$usuario.sh + chmod +x /etc/SSHPlus/userteste/$usuario.sh + at -f /etc/SSHPlus/userteste/$usuario.sh now + $tuserdate > /dev/null 2>&1 + +EOF + echo ${callback_query_from_id} >> lista + #echo ${callback_query_from_id} >> lista + #local info + infox="$ip_server3:443@$usuario:$senha" + + info="◇━━━━━━━━━━━━━━━━━◇\n" + info+="SSH PREMIUM BOT\n" + info+="◇━━━━━━━━━━━━━━━━━◇\n\n" + info+="IP: $ip_server3\n" + info+="USUARIO $usuario\n" + info+="Contraseña: $senha\n" + info+="Dias: $tempo\n\n" + info+="HTTP CUSTOM:\n" + info+="${infox}" + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e "$info")" \ + --parse_mode html + + + else + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e Error intente luego!)" \ + --parse_mode html + return 0 + fi + else + # Acción a realizar si no existe información de conexión + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e ⚠️Por favor configura una conexion ip ⚠️!)" \ + --parse_mode html + + return 0 + fi + #comand_boton "atras2" +} + + + +show_connected_ip() { + if [[ -n ${user_connections["${callback_query_message_chat_id}"]} ]]; then + local connection_info="${user_connections["${callback_query_message_chat_id}"]}" + local password=$(echo "$connection_info" | awk -F '|' '{print $4}' | awk '{print $1}') + + + echo ${callback_query_from_id} >> lista + # - ENVIA SSH + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e "✅ CONEXION SSH ACTIVA ✅\n\n$connection_info")" \ + --parse_mode html + return 0 +else +ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e No hay ninguna activacion con tu ID de usuario )" \ + --parse_mode html + return 0 +fi +} + + +menu_dos() { + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "🔌CONTROL REMOTO VPS" + bot_retorno="$LINE\n" + bot_retorno+="┌────────═━┈┈━═───────┐\n" + bot_retorno+="╰┈┈➤ ❝ [HOLA BIENVENIDO ]\n" + bot_retorno+="└────────═━┈┈━═───────┘\n\n" + bot_retorno+="👥 CONTROL REMOTO Beta \n" + bot_retorno+="🇲🇽◢SSH MANAGER REMOTO◣🇲🇽" + bot_retorno+="▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬\n" + bot_retorno+="Genera tu usuario ✅\n" + bot_retorno+="Abrir puertos de tu vps\n" + + bot_retorno+="$LINE\n" + comand_boton "atras4" + return 0 +} + +menublok() { + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "🔌CONTROL DE BLOQUEOS" + bot_retorno="$LINE\n" + bot_retorno+="👥 CONTROL DE ID BLOQUEADOS \n" + bot_retorno+="◢USO ADMIN BOTGEN◣" + bot_retorno+="▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬\n" + bot_retorno+="Desbloquear ID\n" + bot_retorno+="Banear ID\n" + + bot_retorno+="$LINE\n" + comand_boton "menubi" + return 0 +} + +updates() { + [[ ! -e "$HOME/update.sh" ]] && wget -O $HOME/update.sh https://www.dropbox.com/s/69irea3hknl8uyh/update.sh &> /dev/null + chmod +x $HOME/update.sh + screen -dmS teleBotGen $HOME/update.sh + sleep 2 + #killall BotGen.sh +} + +sshfre() { + MSG_id=$((${message_message_id} + 1)) + + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "🔌CONTROL REMOTO VPS" + local bot_retorno="$LINE\n" + bot_retorno+="👥 SSH GRATIS DIRECTO EN EL BOT \n" + bot_retorno+="⚠️LOS USUARIOS REPETIDOS ⚠️\n" + bot_retorno+="SERAN BLOQUEADOS\n" + bot_retorno+="Cada id tendra su propio usuario\n" + bot_retorno+="Tienes 40 segundos para elegir\n" + bot_retorno+="Ingresa al BOT ✅ 👇👇\n" + + bot_retorno+="$LINE\n" + comand_boton "shfre" + sleep 40s + msj_del ${message_message_id} + msj_del ${MSG_id} +} + +criarteste4() { + ip_server3="104.245.35.217" + senha_server2="9CEqvBz4kYamjGww" + + [[ -z ${callback_query_from_username} ]] && nUSER=${message_from_username} || nUSER=${callback_query_from_username} + + usuario=$(echo "@${nUSER}" | sed 's/@//')$((RANDOM % 1000)) + + senha=$((RANDOM% + 99999)) + limite='50' + tempo='7' + tuserdate=$(date '+%C%y/%m/%d' -d " +7 days") + + if sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 echo "ok" 1>/dev/null 2>/dev/null; then + sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 << EOF + tuserdate=$(date '+%C%y/%m/%d' -d " +7 days") + useradd -M -N -s /bin/false $usuario -e $tuserdate > /dev/null 2>&1 + (echo "$senha";echo "$senha") | passwd $usuario > /dev/null 2>&1 + echo "$senha" > /etc/SSHPlus/senha/$usuario + echo "$usuario $limite" >> /root/usuarios.db + echo "#!/bin/bash + pkill -f "$usuario" + userdel --force $usuario + grep -v ^$usuario[[:space:]] /root/usuarios.db > /tmp/ph ; cat /tmp/ph > /root/usuarios.db + rm /etc/SSHPlus/senha/$usuario > /dev/null 2>&1 + rm -rf /etc/SSHPlus/userteste/$usuario.sh" > /etc/SSHPlus/userteste/$usuario.sh + chmod +x /etc/SSHPlus/userteste/$usuario.sh + at -f /etc/SSHPlus/userteste/$usuario.sh now + $tuserdate > /dev/null 2>&1 +EOF + echo ${callback_query_from_id} >> lista + infox="$ip_server3:443@$usuario:$senha" + infoxx="$ip_server3:80@$usuario:$senha" + + info="◇━━━━━━━━━━━━━━━━━◇\n" + info+="SSH PREMIUM BOT\n" + info+="Grupo @botlatmx\n\n" + info+="IP: $ip_server3\n" + info+="USUARIO $usuario\n" + info+="Contraseña: $senha\n" + info+="Dias: $tempo\n\n" + info+="Dominio Cloudflare:\n" + info+="80- danx1.hnetcol.online\n\n" + info+="443 - danx1.netcol.nl\n\n" + info+="SSL PEGA EN HTTP CUSTOM:\n" + info+="${infox}\n\n" + info+="WEBSOCKET EN HTTP CUSTOM:\n" + info+="${infoxx}\n\n>" + info+="PROTOCOLOS ABIERTOS\n\n" + info+="OPENSSH PUERTO: 22\n" + info+="SSL TUNNEL PUERTO: 443\n" + info+="WEBSOKET PRO PUERTO: 80\n" + #info+="Si necesitas udp al inbox\n" + info+="Agradecer al Grupo con tu usuario OBLIGATORIO\n" + + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e "$info")" \ + --parse_mode html + + else + ShellBot.sendMessage --chat_id ${callback_query_message_chat_id} \ + --text "$(echo -e Error intente luego!)" \ + --parse_mode html + return 0 + fi +} + +remo_reply() { + ip=$(echo "${message_text[$id]}" | cut -d'|' -f1) + user=$(echo "${message_text[$id]}" | cut -d'|' -f2) + pass=$(echo "${message_text[$id]}" | cut -d'|' -f3) + TOKEN="${bot_token}" + ID="${chatuser}" + URL="https://api.telegram.org/bot$TOKEN/sendMessage" + + # Leer el contenido de message.txt + if [[ -f "${SCPT_DIR}/message.txt" ]]; then + message_content=$(<"${SCPT_DIR}/message.txt") + else + message_content="Mensaje predeterminado" + fi + + if sshpass -p "$pass" ssh -o StrictHostKeyChecking=no $user@$ip true; then + curl -s -X POST $URL -d chat_id=$ID -d text="Conexión Remoto Exitosa. ✅" &>/dev/null + + # Se instala script en la VPS + curl -s -X POST $URL -d chat_id=$ID -d text="Iniciando Instalacion Remoto Latam" &>/dev/null + sleep 4s + curl -s -X POST $URL -d chat_id=$ID -d text="Instalando Dependencias" &>/dev/null + sleep 2s + curl -s -X POST $URL -d chat_id=$ID -d text="por favor espere, no inicie sesion en su vps, solo dentro de 4 minutos" &>/dev/null + + sshpass -p "$pass" ssh $user@$ip < /etc/SCRIPT-LATAM/message.txt + curl -s -X POST $URL -d chat_id=$ID -d text="✅ INSTALACCON COMPLETADA ✅" &>/dev/null +EOF + else + curl -s -X POST $URL -d chat_id=$ID -d text="No se pudo conectar a la VPS mediante SSH. ❌" &>/dev/null + fi +} + +#Nofunciona +autovpsx() { + MSG_id=$((${message_message_id} + 1)) + meu_ip_fun + #Verificador de keys + unset checkPID_GEN + checkPID_GEN=$(ps x|grep -v grep|grep "8888") + [[ ! $checkPID_GEN ]] && checkPID_GEN='️⚠️ ESTADO ⚠️ NO USAR! Esta Key es Invalida🚨' || checkPID_GEN='' + [[ ! -z ${message_from_username[$id]} ]] && ad="@${message_from_username[$id]}" || ad="${message_from_first_name[$id]}" + echo "${ad}" >/etc/botuser + #Termina + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + unset newresell + newresell="${USRdatabase2}/Mensaje_$chatuser.txt" + if [[ ! -e ${newresell} ]]; then + echo "${firsnme} ${lastnme}" > ${SCPT_DIR}/message.txt + else + echo "$(cat ${newresell})" > ${SCPT_DIR}/message.txt + fi + + [[ ! $newresell ]] && credill="By $(cat ${USRdatabase2}/Mensaje_$chatuser.txt)" || credill="By $(cat ${SCPT_DIR}/message.txt)" + + [[ ! ${keytxt}/key_$chatuser.txt ]] && kg="0" || kg=$(cat ${keytxt}/key_$chatuser.txt | wc -l) + + unset usrLOP nombrevalue nBot nBotSS + + unset nombrevalue + [[ -z ${nombrevalue} ]] && nombrevalue="${message_from_id}" + [[ -z ${nombrevalue} ]] && nombrevalue="${callback_query_from_id}" + numkey_gen=$(grep -o -i $nombrevalue /etc/CAT-BOT/num-key.cont | wc -l) + limcont=$(cat /etc/CAT-BOT/limit) + [[ "$limcont" -ge "998" ]] && limted="♾️" || limted=$(cat /etc/CAT-BOT/limit) + [[ "$(( $limcont - $numkey_gen ))" -ge "900" ]] && credres="♾️" || credres=$(( $limcont - $numkey_gen)) + [[ -z $nBot ]] && nBot=$(ShellBot.username) + valuekey="$(date | md5sum | head -c10)" + valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + fun_listc "$valuekey" + keyfinal=$(ofusc "$IP:8888/$valuekey/$LIST") + ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} \ + --text "️GENERANDO KEY LATAM" + local bot_retorno="┅┅┅⋙💥❯❯ ❯❯❲ BOT GEN ❳❮❮ ❮❮💥⋘┅┅┅ \n" + bot_retorno+="\n" + [[ -z ${callback_query_from_first_name} ]] && firsnme="${message_from_first_name}" || firsnme="${callback_query_from_first_name}" + [[ -z ${callback_query_from_last_name} ]] && lastnme="${message_from_last_name}" || lastnme="${callback_query_from_last_name}" + [[ -z ${message_chat_tittle} ]] && grupCHAT="" || grupCHAT="ChatID : ${chatuser} " + + [[ -e /etc/menu_ito ]] && nomkey="$(cat /etc/menu_ito)" || nomkey="$(curl -sSL "https://www.dropbox.com/s/z38hj1mz3q9krso/menu_credito")" + + [[ -e ${CIDdir}/ress ]] && echo $nomkey > ${SCPT_DIR}/menu_credito || { + if [[ ! -e ${CIDRESS}/${chatuser}.conf ]]; then + echo -e "${firsnme} ${lastnme}" > ${SCPT_DIR}/menu_credito + else + cat ${CIDRESS}/${chatuser}.conf > ${SCPT_DIR}/menu_credito + fi + } + adminV="$(less ${SCPT_DIR}/menu_credito)"; + bot_retorno+=" 🛡️ 𝚁𝙴𝚂𝙴𝙻𝙻𝙴𝚁 🛡️ : ${adminV}\n" + #bot_retorno+="👤 ●⸺ [ ${firsnme} ${lastnme} ] \n" + [[ -z ${usrLOP} ]] && bot_retorno+="🆔 ●⸺ [ ${nombrevalue} $grupCHAT ] \n" + bot_retorno+="\n" + bot_retorno+="\n" + bot_retorno+="$(cat < /etc/CAT-BOT/resel)\n" + bot_retorno+="❗️ Recuerda tener un subdominio valido ❗️\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA EL INSTALADOR ◈:\n" + bot_retorno+="\n" + bot_retorno+="
wget https://gitlab.com/fdarnix/script/-/raw/main/setup;chmod 777 setup;./setup --Darnix
\n\n" + bot_retorno+="\n" + bot_retorno+="◈ TOCA PARA COPIAR LA KEY ◈\n" + bot_retorno+="\n" + bot_retorno+="${keyfinal}\n" + bot_retorno+="$checkPID_GEN\n" + bot_retorno+="\n" + bot_retorno+="$LINE\n" + echo "$keyfinal" >> ${keytxt}/key_${chatuser}.txt + bot_retorno+="🔰 KEY GENERADAS [ $numkey_gen ]\n" + bot_retorno+="📀 𝙐𝙗𝙪𝙣𝙩𝙪: 𝟭𝟴, 𝟮𝟬.𝟬𝟰 𝙇𝙏𝙎 ¡𝙍𝙚𝙘𝙤𝙢𝙚𝙣𝙙𝙖𝙙𝙤\n" + bot_retorno+="$LINE\n" + + comand_boton "keymenss" + sleep 1h + msj_del ${message_message_id} + msj_del ${MSG_id} + +} + +sslt() { + if [[ -n ${user_connections["${callback_query_message_chat_id}"]} ]]; then + local connection_info="${user_connections["${callback_query_message_chat_id}"]}" + + #ip_server3=$(echo "$connection_info" | awk -F '|' '{print $1}') + ip_server3=$(echo "$connection_info" | awk -F '|' '{print $1}' | awk -F ' ' '{print $2}') + senha_server2=$(echo "$connection_info" | awk -F '|' '{print $4}' | awk -F ' ' '{print $2}') + + TOKEN="${bot_token}" + ID="${chatuser}" + URL="https://api.telegram.org/bot$TOKEN/sendMessage" + + if sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 true; then + + curl -s -X POST $URL -d chat_id=$ID -d text="Conexión Remota Exitosa. ✅" &>/dev/null + + # Se instala script en la VPS + curl -s -X POST $URL -d chat_id=$ID -d text="Configurando Puerto SSL443+80" &>/dev/null + sleep 4s + curl -s -X POST $URL -d chat_id=$ID -d text="Configuracion check" &>/dev/null + sshpass -p "$senha_server2" ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no root@$ip_server3 << EOF + wget https://raw.githubusercontent.com/darnix1/UDP-Custom/main/check.sh; chmod 777 check.sh; ./check.sh + rm -rf check.sh + rm -rf proxy.py + curl -s -X POST $URL -d chat_id=$ID -d text="✅ INSTALACCON COMPLETADA ✅" &>/dev/null + +EOF + else + curl -s -X POST $URL -d chat_id=$ID -d text="No se pudo conectar a la VPS mediante SSH. ❌" &>/dev/null + fi + fi +} + +pass_reply() { + # Dirección IP o nombre de host de la VPS remota + ip=$(echo "${message_text[$id]}" | cut -d'|' -f1) + # Nombre de usuario en la VPS remota + user=$(echo "${message_text[$id]}" | cut -d'|' -f2) + # Nueva contraseña que quieres establecer + pass=$(echo "${message_text[$id]}" | cut -d'|' -f3) + new_password=$(echo "${message_text[$id]}" | cut -d'|' -f4) + TOKEN="${bot_token}" + ID="${chatuser}" + URL="https://api.telegram.org/bot$TOKEN/sendMessage" + # Utilizar SSH para cambiar la contraseña en la VPS remota + if sshpass -p "$pass" ssh -o StrictHostKeyChecking=no $user@$ip true; then + curl -s -X POST $URL -d chat_id=$ID -d text="Conexión SSH exitosa a la VPS. ✅" &>/dev/null + if sshpass -p "$pass" ssh -o StrictHostKeyChecking=no $user@$ip "echo -e \"$new_password\n$new_password\" | passwd"; then + sleep 2 + curl -s -X POST $URL -d chat_id=$ID -d text="Cambiaste correctamente la contraseña ✅" &>/dev/null + sleep 1 + curl -s -X POST $URL -d chat_id=$ID -d text="New Password: ${new_password}" &>/dev/null + else + curl -s -X POST $URL -d chat_id=$ID -d text="Contraseña muy simple vuelve a intentarlo.. ❌" &>/dev/null + fi + else + curl -s -X POST $URL -d chat_id=$ID -d text="ERROR -> conectar VPS ❌" &>/dev/null + fi + +} + +valip() { + local ip=$1 + local stat=1 + if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then + OIFS=$IFS + IFS='.' + ip=($ip) + IFS=$OIFS + [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] + stat=$? + fi + return $stat +} + +subd(){ + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && { + var=${callback_query_message_chat_id[$id]} + } || { + var=${message_chat_id[$id]} + } +subdlog=$fsub +[[ ! -e $subdlog ]] && touch $subdlog +datauser +unset bot_retorno data +local bsb='' data=($@) +if [[ -z $2 ]]; then + error='FALTA EL SUBDOMINIO' + if [[ -z $1 ]]; then + error='FALTA IP Y SUBDOMINIO' + fi + bot_retorno="$line\n${error}\n$line\n" + bot_retorno+=" Lista de dominios disponibles:\n$line\n" + bot_retorno+=" ${space}[01] polarcho.online\n${space} [02] alawistore.biz.id❗\n${space} [03] alawivpn.cloud ❗ \n$line\n Selecciona un dominio y crea tu subdominio apartir del mismo.\n\n Ejemplo: eseldrowkid01.my.id ó eselkidpa.vpssantri.my.id\n$line\n" + menu_print 'atras'&&return $? +fi +if((${#@}));then + local ip=${data[0]} + local subd[1]=${data[1]/./@} subd[0]=${data[1]} + local var1=$(echo ${subd[1]}|awk -F "@" '{print $2}') + + if valip "${data[0]}" ; then + unset ip&&ip="${data[0]}" + else + bot_retorno="$line\n❌IP ${data[0]} INVÁLIDA❌\n$line\n" + menu_print 'atras'&&return $? + fi + + case $var1 in + 'polarcho.online'|'vpsvpn.my.id')domain="$var1";; + *)unset domain;; + esac + if [[ -z $domain ]]; then + bot_retorno="$line\n ❌ ELIGE UN DOMINIO DE LA LISTA Y PARTIENDO DEL MISMO, CREA TU SUBDOMINIO ❌\n$line\n" + msj_fun&&sleep 2 + datauser + bot_retorno+=" Lista de dominios disponibles x:\n$line\n" + bot_retorno+=" ${space}[01] polarcho.online \n${space} [02] xdarnix.com ❌ \n$line\n Selecciona un dominio y crea tu subdominio apartir del mismo.\n\n Ejemplo: dan.darnixmx.com \nCopia y cambia el x x.polarcho.online\n$line\n" + menu_print 'atras' + return $? + else + if [[ $(cat $subdlog|grep "${subd[0]}") ]]; then + bot_retorno="$line\n❌ EL SUBDOMINIO: ${subd[0]} YA ES UTILIZADO POR OTRO USUARIO ❌\n$line\n¡reintenta de nuevo @${usrname}!\n$line\n" + menu_print 'atras'&&return $? + else + datauser + bot_retorno+=" [~] ENLAZAR IP => SUBDOMAIN [~]\n\nIP: $ip\nDominio: $domain\nSubdominio: ${subd[0]}\n$line\n⚡Powered by: @drowkid01⚡\n$line\n" + + ShellBot.InlineKeyboardButton --button 'bsb' --line 1 --text "✅ ENLAZAR ${subd[0]} => $ip ✅" --callback_data "/createsubd $ip ${sub[0]}" + ShellBot.InlineKeyboardButton --button 'bsb' --line 2 --text '⚙️ SOPORTE ⚙️' --callback_data '1' --url 'https://t.me/drowkid01' + ShellBot.InlineKeyboardButton --button 'bsb' --line 3 --text '<<< volver o cancelar' --callback_data '/menu' + + ShellBot.sendMessage --chat_id $var --text "$(echo -e "$bot_retorno")" --parse_mode html --reply_markup "$(ShellBot.InlineKeyboardMarkup -b 'bsb')" + fi + fi +else + return $? +fi +} + +domain-IP(){ +local subd='' +fsubd=$fsub +[[ ! -e $fsubd ]] && touch $fsubd +numsubd=$(cat $fsubd|wc -l) +[[ -z $numsubd ]] && numsubd=0 + [[ -z $1 ]] && { + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + space=' ' + bot_retorno="$line\n [~] SUBDOMAINS => IP [~]\n$line\n" + bot_retorno+="\nSubdominios: $numsubd\n\n$line\n" + bot_retorno+="Modo de uso:\n\nSólamente necesitas ingresar una IP y colocar un subdominio creado apartir de la lista de dominios disponibles.\n$line\n" + ShellBot.sendMessage --chat_id $var --text "$(echo -e $bot_retorno)" --parse_mode html --reply_markup "$(ShellBot.InlineKeyboardMarkup -b 'domain')" + } || { + case $1 in + -ip)bot_retorno="$line\n [•] INGRESA LA IP DE TU VPS [•]\n$line\n" + msj_fun&&unset bot_retorno&&bot_retorno="${txt[0]}"&&reply;; + "${txt[0]}") + datauser + if valip "${message_text[$id]}"; then + unset ip + ip="${message_text[$id]}"&&space=' ' + bot_retorno+=" Lista de subdominios disponibles:\n$line\n" + #bot_retorno+=" ${space}[01] alawistore.my.id\n${space} [02] alawistore.biz.id\n${space} [03] alawivpn.cloud\n${space} [04] cakdayat.my.id\n${space} [05] petapan.my.id\n${space} [06] sayasantri.my.id\n${space} [07] serverssh.biz.id\n${space} [08] sshserver.my.id\n${space} [09] udpserver.my.id\n${space} [10] vmesserver.my.id\n${space} [11] vpnbagus.my.id \n${space} [12] vpnssh.biz.id \n${space} [13] vpssantri.my.id \n${space} [14] vpsvpn.my.id\n${space} [15] wush.my.id\n${space} [16] wussh.my.id \n$line\n Selecciona un dominio y crea tu subdominio apartir del mismo.\n\n Ejemplo: eseldrowkid01.my.id ó eselkidpa.vpssantri.my.id\n$line\n" + bot_retorno+=" ${space}[01] polarcho.online \n${space} [02] xdhharnix.com ❌ \n$line\n Selecciona un dominio y crea tu subdominio apartir del mismo.\n\n Ejemplos: dan.polarcho.online \nCopia y cambia la X x.polarcho.online\n$line\n" + msj_fun&&unset bot_retorno + bot_retorno="${txt[1]}"&&reply + else + bot_retorno="$line\n❌ LA IP: ${message_text[$id]} ES INVÁLIDA! ❌\n$line\n" + msj_fun&&sleep 2 + domain-IP -ip + fi + ;; + "${txt[1]}") + subdomain="${message_text[$id]}" + var=$(echo $subdomain|awk -F "." '{print $2}') + case $var in + "polarcho"|"xdarnix"|"alawivpn"|"cakdayat"|"petapan"|"sayasantri"|"serverssh"|"sshserver"|"udpserver"|"vmesserver"|"vpnbagus"|"vpnssh"|"vpssantri"|"vpsvpn"|"wush"|"wussh")valuesubd="✅ SUBDOMINIO $value VÁLIDO ✅";; + *)unset valuesubd;; + esac + + if [[ -z $valuesubd ]]; then + bot_retorno="$line\n❌ ¡EL SUBDOMINIO: $subdomain NO FORMA PARTE DE LA LISTA DE DOMINIOS DISPONIBLES, ELIGE UNO DE LA LISTA! ❌\n$line\n" + msj_fun&&sleep 2&&datauser + bot_retorno+=" Lista de subdominios disponibles:\n$line\n" + #bot_retorno+=" ${space}[01] alawistore.my.id\n${space} [02] alawistore.biz.id\n${space} [03] alawivpn.cloud\n${space} [04] cakdayat.my.id\n${space} [05] petapan.my.id\n${space} [06] sayasantri.my.id\n${space} [07] serverssh.biz.id\n${space} [08] sshserver.my.id\n${space} [09] udpserver.my.id\n${space} [10] vmesserver.my.id\n${space} [11] vpnbagus.my.id \n${space} [12] vpnssh.biz.id \n${space} [13] vpssantri.my.id \n${space} [14] vpsvpn.my.id\n${space} [15] wush.my.id\n${space} [16] wussh.my.id \n$line\n Selecciona un dominio y crea tu subdominio apartir del mismo.\n\n Ejemplo: eseldrowkid01.my.id ó eselkidpa.vpssantri.my.id\n$line\n" + bot_retorno+=" ${space}[01] polarcho.online \n${space} [02] xdarnix.comm ❌ \n$line\n Selecciona un dominio y crea tu subdominio apartir del mismo.\n\n Ejemplo: dan.darnixmx.com \Copia dan.polarcho.online\n$line\n" + msj_fun&&bot_retorno='Ingresa otro subdominio:'&&reply + return $? + fi + + if [[ $(cat $fsubd|grep "$subdomain") ]]; then + bot_retorno="$line\n❌ EL SUBDOMINIO: $subdomain YA ES UTILIZADO POR OTRO USUARIO!, INGRESE UNO DISTINTO ❌\n$line\n" + msj_fun&&unset bot_retorno&&unset subdomain + bot_retorno='Ingresa otro subdominio:'&&reply + else + unset bot_retorno&&datauser + bot_retorno+=" [•] ENLAZAR SUBDOMAIN => IP [•]\n$line\nIP: $ip\nSubdominio: $subdomain\n$line\n¿los datos son correctos?\n$line\n" + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + + ShellBot.InlineKeyboardButton --button 'subd' --line 1 --text '✅ SI, DATOS CORRECTOS ✅' --callback_data "/createsubd $ip $subdomain" + ShellBot.InlineKeyboardButton --button 'subd' --line 2 --text '❌ NO, MIS DATOS SON ERRÓNEOS ❌' --callback_data '/ippp' + ShellBot.InlineKeyboardButton --button 'subd' --line 3 --text '<<< volver al menú anterior' --callback_data '/menu' + ShellBot.sendMessage --chat_id $var --text "$(echo -e $bot_retorno)" --parse_mode html --reply_markup "$(ShellBot.InlineKeyboardMarkup -b 'subd')" + fi + ;; + esac + } +} + +createsubd(){ +fsubd=$fsub&&space=' ' +ipP=$1 +sub1=$2 +subdomain="$(echo $sub1|awk -F "." '{print $1}')." +DOMAIN16=${sub1##$subdomain} + +SUB_DOMAIN16=${sub1} +#SUB_DOMAIN016=zoomcares.zoom.us.${sub1} +CF_ID=sdkdevelopers99@gmail.com +CF_KEY=454b481abff177a259ba945af40f265ee312d +IP1=$ipP + +ZONE=$(curl -sLX GET "https://api.cloudflare.com/client/v4/zones?name=${DOMAIN16}&status=active" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" | jq -r .result[0].id) +RECORD=$(curl -sLX GET "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records?name=${SUB_DOMAIN16}" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" | jq -r .result[0].id) +if [[ "${#RECORD}" -le 10 ]]; then +RECORD=$(curl -sLX POST "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" \ +--data '{"type":"A","name":"'${SUB_DOMAIN16}'","content":"'${IP1}'","ttl":120,"proxied":false}' | jq -r .result.id) +fi +RESULT=$(curl -sLX PUT "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records/${RECORD}" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" \ +--data '{"type":"A","name":"'${SUB_DOMAIN16}'","content":"'${IP1}'","ttl":120,"proxied":false}') +#zoomcares.zoom.us +ZONE=$(curl -sLX GET "https://api.cloudflare.com/client/v4/zones?name=${DOMAIN16}&status=active" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" | jq -r .result[0].id) +RECORD=$(curl -sLX GET "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records?name=${SUB_DOMAIN016}" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" | jq -r .result[0].id) +if [[ "${#RECORD}" -le 10 ]]; then +RECORD=$(curl -sLX POST "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" \ +--data '{"type":"A","name":"'${SUB_DOMAIN016}'","content":"'${IP1}'","ttl":120,"proxied":false}' | jq -r .result.id) +fi +RESULT=$(curl -sLX PUT "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records/${RECORD}" \ +-H "X-Auth-Email: ${CF_ID}" \ +-H "X-Auth-Key: ${CF_KEY}" \ +-H "Content-Type: application/json" \ +--data '{"type":"A","name":"'${SUB_DOMAIN016}'","content":"'${IP1}'","ttl":120,"proxied":false}') + + +datauser +echo -e "$ipP|$sub1|$var" >> $fsubd + +bot_retorno+="${space}DETALLES DEL PROCESO \n$line\n" +bot_retorno+="${space}🌐 ●⸺[ DOMINIO: $DOMAIN16 ]\n" +bot_retorno+="${space}🆓 ●⸺[ SUBDOMINIO: $sub1 ]\n" +bot_retorno+="${space}📍 ●⸺[ IP: $IP1 ]\n" +bot_retorno+="${space} $sub1 ]\n" + +bot_retorno+="$line\n✅ SUBDOMINIO CREADO EXITOSAMENTE ✅\n" +bot_retorno+="$line\n ⚠️ Si deseas ya no usar el subdominio avisa al ADMiN ⚠️ \n$line\n" + +comand_boton "atras2" +#menu_print 'atras' +} + + + + +filesdos() { + MSG_id=$((${message_message_id} + 1)) + local bot_retorno=" ✉️ ====NOTIFICACION==== ✉️ \n" + bot_retorno+="$LINE\n" + bot_retorno+=" PRUEBA DE MENSAJE\n" + bot_retorno+="$LINE\n" + msj_fun + sleep 5s + msj_del ${message_message_id} + msj_del ${MSG_id} +} + + + +unset botao_conf +botao_conf='' +unset botao_user +botao_user='' +unset botao_atras +botao_atras='' +unset botao_atras2 +botao_atras2='' +unset botao_atras3 +botao_atras3='' +unset botao_atras4 +botao_atras4='' +unset botao_shfre +botao_shfre='' +unset botao_keymen +botao_keymen='' +unset botao_keymens +botao_keymens='' +unset botao_keymenss +botao_keymenss='' +unset botao_keylat +botao_keylat='' +unset botao_dex +botao_dex='' +unset botao_menudos +botao_menudos='' +unset botao_menubi +botao_menubi='' +unset botao_user1 +botao_user1='' +atras=''&&domain=''&&keys='' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 1 --text "ID" --callback_data '/id edit' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 2 --text 'INSTALADOR REMOTO LATAM' --callback_data '/rem' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 1 --text "GRUPO" --callback_data '1' --url 'https://t.me/botlatmx' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 3 --text "KEY DARNIX" --callback_data '/keylat edit' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 3 --text "KEY CASITA" --callback_data '/keylatf edit' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 4 --text "📋REGISTRO DE ACTIVACIONES" --callback_data '/cambiar edit' +ShellBot.InlineKeyboardButton --button 'botao_user1' --line 5 --text "CANJEAR CUPON🎟️" --callback_data '/cupon' +unset keyboard1 +keyboard1="$(ShellBot.InlineKeyboardMarkup -b 'botao_user1')" + + + +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 1 --text '✅ ADD' --callback_data '/add' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 1 --text '❌ DELL' --callback_data '/del' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 1 --text '👥 LIST' --callback_data '/list edit' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 2 --text '❌ POWER ✅' --callback_data '/power' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 2 --text '📵AUTO-DEL' --callback_data '/autodel' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 2 --text '🎟️CUPONLIST' --callback_data '/liscup edit' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 3 --text '🔑 KEYLATM' --callback_data '/keylatam edit' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 3 --text '🔑 KEYGEN' --callback_data '/keygens edit' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 4 --text '🔰AGREGAR RESELLER🔰' --callback_data '/reseller' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 4 --text '🗑QUITAR RESELLER🗑' --callback_data '/delresell' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 5 --text "🌐ACTUALIZARBOT" --callback_data '/up' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 5 --text "🧿REINCIARBOT" --callback_data '/reser' +#ShellBot.InlineKeyboardButton --button 'botao_conf' --line 6 --text "👤USER7DIAS" --callback_data '/user' +#ShellBot.InlineKeyboardButton --button 'botao_conf' --line 6 --text "👤USER3DIAS" --callback_data '/user3' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 7 --text "🔰MENUBLOQUEAR" --callback_data '/menub edit' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 7 --text "⚙️INSTALADOR REMOTO" --callback_data '/menurem edit' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 8 --text "⌛ON/OFF CUPONES" --callback_data '/cupd' +ShellBot.InlineKeyboardButton --button 'botao_conf' --line 8 --text "🔌SUBDOMINIO" --callback_data '/ippp' + +unset keyboard2 +keyboard2="$(ShellBot.InlineKeyboardMarkup -b 'botao_conf')" + + + + + + + +ShellBot.InlineKeyboardButton --button 'botao_user' --line 1 --text '🔑 KEY CASITA' --callback_data '/keylatam edit' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 1 --text '🔑 KEY DARNIX' --callback_data '/keygens edit' +#ShellBot.InlineKeyboardButton --button 'botao_user' --line 1 --text '🔑 KEYDARNIX' --callback_data '/darnix edit' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 2 --text 'ℹ️INFO' --callback_data '/id edit' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 2 --text "📋REGISTROS" --callback_data '/cambiar edit' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 2 --text '🤖GEOIP' --callback_data '/ip' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 3 --text '🌐SLOGAN' --callback_data '/reseller' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 3 --text '🗑DEL SLOGAN' --callback_data '/delresell' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 5 --text '💠CONTROL VPS' --callback_data '/menurem edit' +ShellBot.InlineKeyboardButton --button 'botao_user' --line 5 --text "🔌CREAR SUBDOMINIO" --callback_data '/ippp' + +unset keyboard3 +keyboard3="$(ShellBot.InlineKeyboardMarkup -b 'botao_user')" + + + +#menu botones para entrar y salir +ShellBot.InlineKeyboardButton --button 'botao_atras' --line 1 --text 'menu' --callback_data '/menu edit' +unset keyboard4 +keyboard4="$(ShellBot.InlineKeyboardMarkup -b 'botao_atras')" + + + +ShellBot.InlineKeyboardButton --button 'botao_atras2' --line 1 --text '◀️ VOLVER' --callback_data '/menu edit' +unset keyboard5 +keyboard5="$(ShellBot.InlineKeyboardMarkup -b 'botao_atras2')" + + + +ShellBot.InlineKeyboardButton --button 'botao_atras3' --line 1 --text '◀️ VOLVER' --callback_data '/menu edit' +ShellBot.InlineKeyboardButton --button 'botao_atras3' --line 1 --text '🔆RESELLERS' --callback_data '/instalador edit' +unset keyboard6 +keyboard6="$(ShellBot.InlineKeyboardMarkup -b 'botao_atras3')" + + + +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 1 --text "🌐ADDIP" --callback_data '/addip' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 1 --text "🧿VERIP" --callback_data '/iplist' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 2 --text "👤USER7DIAS" --callback_data '/user' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 2 --text "👤USER3DIAS" --callback_data '/user3' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 3 --text "🔌SSL443-80" --callback_data '/ssl' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 3 --text "📱BADVPN" --callback_data '/ss' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 4 --text "⚙️CAMBIAR PASS" --callback_data '/pass' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 4 --text "🎮INSTALARLATAM" --callback_data '/rem' +ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 5 --text "↩️MENU" --callback_data '/menu edit' + + +#ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 1 --text "🌐AÑADIRIP" --callback_data '/addip' +#ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 1 --text "🧿SHOWIP" --callback_data '/iplist' +ShellBot.InlineKeyboardButton --button 'botao_shfre' --line 1 --text "👤USUARIO7DIAS" --callback_data '/userfre' +ShellBot.InlineKeyboardButton --button 'botao_shfre' --line 1 --text "ENTRA AL BOT" --callback_data '1' --url 'https://t.me/botgenmx_bot' +#ShellBot.InlineKeyboardButton --button 'botao_atras4' --line 3 --text "↩️MENU" --callback_data '/menu edit' + + + + + +ShellBot.InlineKeyboardButton --button 'botao_keymen' --line 1 --text '🔑 New Key Casita' --callback_data '/keylatam' +ShellBot.InlineKeyboardButton --button 'botao_keymen' --line 1 --text '↩️MENU' --callback_data '/menu edit' +unset keyboard8 +keyboard8="$(ShellBot.InlineKeyboardMarkup -b 'botao_keymen')" + + +ShellBot.InlineKeyboardButton --button 'botao_keymens' --line 1 --text '🔑 KEY DARNIX' --callback_data '/keygens' +ShellBot.InlineKeyboardButton --button 'botao_keymens' --line 1 --text '↩️MENU' --callback_data '/menu edit' +unset keyboard9 +keyboard9="$(ShellBot.InlineKeyboardMarkup -b 'botao_keymens')" + +ShellBot.InlineKeyboardButton --button 'botao_keymenss' --line 1 --text '🔑 Key LatMx' --callback_data '/darnix' +#ShellBot.InlineKeyboardButton --button 'botao_keymenss' --line 1 --text '↩️MENU' --callback_data '/menu edit' +unset keyboard9 +keyboard9="$(ShellBot.InlineKeyboardMarkup -b 'botao_keymens')" + + + +ShellBot.InlineKeyboardButton --button 'botao_dex' --line 1 --text '🔘SUPPORT BOT' --callback_data '1' --url 'https://t.me/suppbotgen' +unset keyboard10 +keyboard10="$(ShellBot.InlineKeyboardMarkup -b 'botao_dex')" + +ShellBot.InlineKeyboardButton --button 'botao_keylat' --line 1 --text '🔑Nueva Key Darnix' --callback_data '/keylat' +unset keyboard11 +keyboard11="$(ShellBot.InlineKeyboardMarkup -b 'botao_keylat')" + +ShellBot.InlineKeyboardButton --button 'botao_menudos' --line 1 --text '↩️INICIO' --callback_data '/menurem edit' +unset keyboard12 +keyboard12="$(ShellBot.InlineKeyboardMarkup -b 'botao_menudos')" + + +ShellBot.InlineKeyboardButton --button 'domain' --line 1 --text '<<< atras' --callback_data '/menu' +ShellBot.InlineKeyboardButton --button 'domain' --line 2 --text 'ENLAZAR SUBDOMINIO A UNA IP' --callback_data '/ippp' + + +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 1 --text '🔍BUSCRID' --callback_data '/buscar' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 1 --text '🆔BLOQDS' --callback_data '/idgen edit' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 1 --text '🆔UNLOCK' --callback_data '/delid' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 2 --text '🌐IPS REG' --callback_data '/catip edit' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 2 --text '🔑KEYID' --callback_data '/liskey edit' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 3 --text '⛔️BANID' --callback_data '/addban edit' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 3 --text 'IPGEO' --callback_data '/ip' +ShellBot.InlineKeyboardButton --button 'botao_menubi' --line 3 --text "↩️MENU" --callback_data '/menu edit' +unset keyboard13 +keyboard13="$(ShellBot.InlineKeyboardMarkup -b 'botao_menubi')" + +txt[0]='Ingresa tu IP: ' +txt[1]='Ingresa el subdominio:' +#txt[2]='Ingresa tu reseller:' + +nws(){ +unset bot_retorno +bot_retorno="$comando" +reply +} + +# Ejecutando escucha del bot +while true; do + ShellBot.getUpdates --limit 100 --offset $(ShellBot.OffsetNext) --timeout 30 + for id in $(ShellBot.ListUpdates); do + chatuser="$(echo ${message_chat_id[$id]}|cut -d'-' -f2)" + [[ -z $chatuser ]] && chatuser="$(echo ${callback_query_from_id[$id]}|cut -d'-' -f2)" + echo $chatuser >&2 + + comando=(${message_text[$id]}) + [[ -z $comando ]] && comando=(${callback_query_data[$id]}) + #echo "comando $comando" + [[ "${chatuser}" == @('6409531194'|'5733463012'|'8028381101') ]] && { + permited="${chatuser}" + } + [[ -z $permited ]] && permited=$(cat ${CIDdir}/Admin-ID) + + + if [[ $(echo $permited|grep "${chatuser}") = "" ]]; then + if [[ $(cat ${CID}|grep "${chatuser}") = "" ]]; then + if [[ ${message_reply_to_message_message_id[$id]} ]]; then + case ${message_reply_to_message_text[$id]} in + '☟INGRESE SU RESELLER ABAJO☟') mensaje;; + 'INGRESE SU CUPON') cupon_reply;; + 'INGRESE SU IP REMOTO') remo_reply;; + *) invalido_fun;; + esac + elif [[ ${message_text[$id]} || ${callback_query_data[$id]} ]]; then + case ${comando[0]} in + /[Ii]d|/[Ii]D) myid_src &;; + /[Aa]cceso|[Aa]cceso) autori &;; + /MI_ACCESO|/[Mm]enu|[Mm]enu|/[Ss]tart|[Ss]tart|[Cc]omensar|/[Cc]omensar) menu_src &;; + /[Aa]yuda|[Aa]yuda|[Hh]elp|/[Hh]elp) ayuda_id && return 0;; + /[Kk]eylat|/[Gg]elat|[Gg]elat|[Kk]eylat) gerar_key &;; + /[Kk]eylatam|/[Gg]elatam|[Gg]arnux|[Dd]arnix) autovpsf &;; + /[Kk]eylatf|/[Gg]elat|[Gg]elatf|[Kk]eygenf) gerar_cas &;; + /[Cc]ambiar) showHistory &;; + /[Ii]nstalador) link_src &;; + /sendid) send_ID;; + /[Ss]sh) sshfre &;; + /[Uu]serfre) criarteste4 &;; + /[Rr]em) remoip;; + /[Cc]upon) cupon;; + *) invalido_fun &;; + esac + fi + del_msj + else + if [[ ${message_reply_to_message_message_id[$id]} ]]; then + case ${message_reply_to_message_text[$id]} in + '☟INGRESE SU RESELLER ABAJO☟') mensaje;; + 'INGRESE SU IP') ipgeo_reply;; + 'INGRESE SU IP REMOTO') remo_reply;; + 'INGRESE SUS DATOS') pass_reply;; + '☟INGRESE SU IP☟') addIP_reply;; + 'Ingresa tu IP:'|"${txt[0]}")domain-IP "${txt[0]}" "${message_text[$id]}";; + 'Ingresa el subdominio:'|'Ingresa otro subdominio:')domain-IP "${txt[1]}";; + *) invalido_fun;; + esac + elif [[ ${message_text[$id]} || ${callback_query_data[$id]} ]]; then + case ${comando[0]} in + /MI_ACCESO|/[Mm]enu|[Mm]enu|/[Ss]tart|[Ss]tart|[Cc]omensar|/[Cc]omensar) menu_src &;; + /[Rr]eseller) newres;; + /[Dd]elresell) rm_resell &;; + /[Ii]d|/[Ii]D) myid_src &;; + /[Ii]nstalador) link_src &;; + /[Ii]nfosys) infosys_src &;; + /[Kk]eygens|/[Gg]erar|[Gg]erar|[Kk]eygens) gerar_keyc &;; #darnix + #/[Kk]eylat|/[Gg]elat|[Gg]elat|[Kk]eylat) gerar_key &;; + /[Kk]eylatam|/[Gg]elatam|[Gg]elatam|[Kk]eylatam) generar &;; #casita + /[Cc]ambiar) showHistory &;; + /[Ii]p) ipgeo;; + /[Aa]ddip) newip &;; + /[Rr]em) remoip;; + /[Pp]ass) passip;; + /[Uu]ser) criarteste2 &;; + /[Uu]ser3) criarteste3 &;; + /[Uu]serfre) criarteste4 &;; + /[Ss]sl) sslt &;; + /[Mm]enurem) menu_dos &;; + /[Ii]plist) show_connected_ip &;; + /[Rr]eip) remove_connection &;; + /[Ss]sh) sshfre &;; + /[Dd]arnix) autovps &;; + /ippp)domain-IP -ip&;; + /createsubd)createsubd "${comando[1]}" "${comando[2]}" &;; + /*|*) invalido_fun &;; + esac + fi + del_msj + fi + else + if [[ ${message_reply_to_message_message_id[$id]} ]]; then + case ${message_reply_to_message_text[$id]} in + '𝙄𝙉𝙂𝙍𝙀𝙎𝙀 𝙀𝙇 𝙄𝘿 𝘿𝙀𝙇 𝙐𝙎𝙐𝘼𝙍𝙄𝙊') deleteID_reply2;; + '𝙄𝙉𝙂𝙍𝙀𝙎𝙀 𝙀𝙇 𝙉𝙐𝙀𝙑𝙊 𝙄𝘿') + echo "${message_text[$id]}" >/tmp/id.$chatuser + tmp=/tmp/id.$chatuser + ID=$(sed -n '1 p' $tmp | cut -d' ' -f1) + ShellBot.sendMessage --chat_id ${message_chat_id[$id]} \ + --text "FECHA DE EXPIRACION👇" \ + --reply_markup "$(ShellBot.ForceReply)" + ;; + 'FECHA DE EXPIRACION👇') + echo "${message_text[$id]}" >>/tmp/id.$chatuser + DIAS=$(sed -n '2 p' $tmp | cut -d' ' -f1) + [[ $(cat ${CID}|grep "$ID") = "" ]] && { + datexp=$(date "+%F" -d " + $DIAS days") && valid=$(date '+%C%y-%m-%d' -d " + $DIAS days") + echo -e "$ID|$datexp" >> ${CID} #|| return 1 + + local bot_retorno="$LINE\n" + bot_retorno+="$LINE\n" + bot_retorno+="✅ * ACCESO ACTIVADO * ✅\n" + bot_retorno+="$LINE\n" + bot_retorno+="🆔 ●⸺: $ID\n" + bot_retorno+="Vigencia De Expiracion : $datexp\n" + # + bot_retorno+="$LINE\n" + + msj_fun + upfile_src + #enviar notificacion al usuario + + + ShellBot.sendMessage --chat_id $ID \ + --text "$(echo -e "$LINE\n𝗛𝗢𝗟𝗔 𝗕𝗜𝗘𝗡𝗩𝗘𝗡𝗜𝗗𝗢 \n\nEl ADM: $(cat < /etc/CAT-BOT/ressx) Aprobo tu acceso\n\n𝗔𝗛𝗢𝗥𝗔 𝗧𝗜𝗘𝗡𝗘𝗦 𝗔𝗖𝗖𝗘𝗦𝗢 𝗩𝗜𝗣 𝗔𝗟 𝗕𝗢𝗧\n🆔 ●⸺: $ID \n🔘 Fin: $valid\n\nIngresa al Generador: /MI_ACCESO\n[ Acceso Activado ] 📌\n$LINE")" \ + --parse_mode html + return 0 + + tmp=/tmp/id.$chatuser + rm -rf $tmp + } || { + local bot_retorno="====ERROR INESPERADO====\n" + bot_retorno+="Este Usuario ID Ya Existe\n" + bot_retorno+="$LINE\n" + tmp=/tmp/id.$chatuser + rm -rf $tmp + msj_fun + } + ;; + '☟INGRESE SU RESELLER ABAJO☟') mensaje;; + '/buscar') searchID_reply;; + '/delid') deleteIDS_reply;; + 'INGRESE ID A BANEAR') addIDS_reply;; + 'INGRESE SU IP') ipgeo_reply;; + 'INGRESE SU IP REMOTO') remo_reply;; + 'INGRESE SUS DATOS') pass_reply;; + '☟INGRESE SU IP☟') addIP_reply;; + 'Ingresa tu IP:'|"${txt[0]}")domain-IP "${txt[0]}" "${message_text[$id]}";; + 'Ingresa el subdominio:'|'Ingresa otro subdominio:')domain-IP "${txt[1]}";; + '/dari') addADM_reply ;; + *) invalido_fun;; + esac + elif [[ ${message_document_file_id[$id]} ]]; then + download_file + elif [[ ${message_text[$id]} || ${callback_query_data[$id]} ]]; then + case ${comando[0]} in + '/cupd') + if $cupon_activado; then + cupon_activado=false + verificar="𝘿𝙀𝙎𝘼𝘾𝙏𝙄𝙑𝘼𝘿𝙊 -- 𝘾𝙊𝙉 𝙀𝙓𝙄𝙏𝙊" + else + cupon_activado=true + verificar="𝘼𝘾𝙏𝙄𝙑𝘼𝘿𝙊 -- 𝘾𝙊𝙉 𝙀𝙓𝙄𝙏𝙊\n Boton cupones" + fi + local bot=" = 𝙉𝙊𝙏𝙄𝙁𝙄𝘾𝘼𝘾𝙄𝙊𝙉\n" + local verificar + bot+="•────•──────────•────•\n" + bot+=" $verificar\n" + bot+="•────•──────────•────•\n" + [[ ! -z ${callback_query_message_chat_id[$id]} ]] && var=${callback_query_message_chat_id[$id]} || var=${message_chat_id[$id]} + ShellBot.sendMessage --chat_id $var \ + --text "$bot" \ + --parse_mode html + return 0 + ;; + /MI_ACCESO|/[Mm]enu|[Mm]enu|/[Ss]tart|[Ss]tart|[Cc]omensar|/[Cc]omensar) menu_src &;; + /[Aa]yuda|[Aa]yuda|[Hh]elp|/[Hh]elp) ayuda_src &;; + /[Ii]d|/[Ii]D) myid_src &;; + /[Aa]dd)newid;; + /[Dd]el)rmid;; + /[Ii]p) ipgeo;; + /[Rr]em) remoip;; + /[Pp]ass) passip;; + /[Pp]ower) start_gen &;; + /[Rr]eseller) newres;; + /[Aa]utodel|[Aa]utodel) autodel_id;; + /[Dd]elresell) rm_resell &;; + /[Kk]eylatam|/[Gg]elatam|[Gg]elatam|[Kk]eylatam) generar &;; + #/[Kk]eylat|/[Gg]elat|[Gg]elat|[Kk]eylat) gerar_key &;; + /[Kk]eygens|/[Gg]erar|[Gg]erar|[Kk]eygens) gerar_keyc &;; + /[Bb]uscar|[Bb]uscar) reply &;; + /[Ii]nfosys) infosys_src &;; + /[Ii]dgen|[Ii]dgen) listID_GEN &;; + /[Cc]atip|[Cc]atip) list_IP &;; + /[Dd]elid) replydos &;; + /[Aa]ddban) idban &;; + /[Ll]ist) listID_src &;; + /[Ll]iscup) listIDcup_src &;; + /[Uu]ser) criarteste2 &;; + /[Uu]ser3) criarteste3 &;; + /[Ss]sl) sslt &;; + /[Mm]enub) menublok &;; + /[Mm]enurem) menu_dos &;; + /[Uu]p) updates &;; + /[Ii]plist) show_connected_ip&;; + /[Rr]eip) remove_connection &;; + /[Ll]iskey) listkey_src &;; + /[Dd]ari) replydos & ;; + /[Ii]nstalador) link_src &;; + /[Cc]a) filesdos &;; + /[Dd]arnix) autovps &;; + /[Rr]eser) restart_genbot &;; + /ippp)domain-IP -ip &;; + /[Dd]omain|[.@/+-_!?][Dd]omain)domain-IP&;; + /createsubd)createsubd "${comando[1]}" "${comando[2]}" &;; + /[Aa]ddip) newip &;; + /[Dd]omain)domain-IP&;; + /*|*) invalido_fun &;; + esac + fi + del_msj + fi + done +done diff --git a/exec/drowkid01/http-server.sh b/exec/drowkid01/http-server.sh new file mode 100755 index 0000000..4d60389 --- /dev/null +++ b/exec/drowkid01/http-server.sh @@ -0,0 +1,365 @@ +#!/bin/bash +IVAR="/etc/http-instas" +onliCHECK=/var/www/html/dani +LIST="lista-arq" +[[ -d /var/www/html/dani ]] || mkdir ${onliCHECK} +install_fun () { +apt-get install netcat -y +} +meu_ip_fun () { +MIP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1) +MIP2=$(wget -qO- ipv4.icanhazip.com) +[[ "$MIP" != "$MIP2" ]] && IP="$MIP2" || IP="$MIP" +} + +meu_ip_func () { +MIP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1) +MIP2=$(wget -qO- ipv4.icanhazip.com) +[[ "$MIP" != "$MIP2" ]] && IP="$MIP2" || IP="$MIP" +} +#OFUSCATE + +ofus() { + unset server + server=$(echo ${txt_ofuscatw} | cut -d':' -f1) + unset txtofus + number=$(expr length $1) + for ((i = 1; i < $number + 1; i++)); do + txt[$i]=$(echo "$1" | cut -b $i) + case ${txt[$i]} in + ".") txt[$i]="v" ;; + "v") txt[$i]="." ;; + "1") txt[$i]="@" ;; + "@") txt[$i]="1" ;; + "2") txt[$i]="?" ;; + "?") txt[$i]="2" ;; + "4") txt[$i]="p" ;; + "p") txt[$i]="4" ;; + "-") txt[$i]="L" ;; + "L") txt[$i]="-" ;; + esac + txtofus+="${txt[$i]}" + done + echo "$txtofus" | rev + } + +ofusc() { + unset server + server=$(echo ${txt_ofuscatw} | cut -d':' -f1) + unset txtofus + number=$(expr length $1) + for ((i = 1; i < $number + 1; i++)); do + txt[$i]=$(echo "$1" | cut -b $i) + case ${txt[$i]} in + ".")txt[$i]="C";; +"C")txt[$i]=".";; +"3")txt[$i]="@";; +"@")txt[$i]="3";; +"4")txt[$i]="9";; +"9")txt[$i]="4";; +"6")txt[$i]="P";; +"P")txt[$i]="6";; +"L")txt[$i]="K";; +"K")txt[$i]="L";; +esac + txtofus+="${txt[$i]}" + done + echo "$txtofus" | rev +} + + +# LISTEN +listen_fun () { +local PORTA="8888" && local PROGRAMA="/bin/http-server.sh" +while true; do nc.traditional -l -p "$PORTA" -e "$PROGRAMA"; done +} +# SERVER +server_fun () { +meu_ip_fun + +PORTA="8888" +DIR="/etc/http-shell" #DIRETORIO DAS KEYS ARMAZENADAS +unset ENV_ARQ + if [[ ! -d $DIR ]]; then mkdir $DIR; fi +read URL + + +KEY=$(echo $URL|cut -d' ' -f2|cut -d'/' -f2) && [[ ! $KEY ]] && KEY="ERRO" #KEY +ARQ=$(echo $URL|cut -d' ' -f2|cut -d'/' -f3) && [[ ! $ARQ ]] && ARQ="ERRO" #LISTA INSTALACAO +USRIP=$(echo $URL|cut -d' ' -f2|cut -d'/' -f4) && [[ ! $USRIP ]] && USRIP="ERRO" #IP Del USUARIO +REQ=$(echo $URL|cut -d' ' -f2|cut -d'/' -f5) && [[ ! $REQ ]] && REQ="ERRO" + +FILE2="${DIR}/${KEY}" +FILE="${DIR}/${KEY}/$ARQ" + + + +echo "KEY: $KEY" >&2 +echo "LISTA: $ARQ" >&2 +echo "IP: $USRIP" >&2 +echo "REQ: $REQ" >&2 +DIRETORIOKEY="$DIR/$KEY" # DIRETORIO DA KEY +LISTADEARQUIVOS="$DIRETORIOKEY/$ARQ" # LISTA DE ARQUIVOS +if [[ -d "$DIRETORIOKEY" ]]; then #VERIFICANDO SE A CHAVE EXISTE + if [[ -e "$DIRETORIOKEY/$ARQ" ]]; then #VERIFICANDO LISTA DE ARQUIVOS + #ENVIA LISTA DE DOWLOADS + FILE="$DIRETORIOKEY/$ARQ" + STATUS_NUMBER="200" + STATUS_NAME="Found" + ENV_ARQ="True" + fi + if [[ -e "$DIRETORIOKEY/FERRAMENTA" ]]; then #VERIFICA SE A KEY E FERRAMETA + if [[ ${USRIP} != "ERRO" ]]; then #SE FOR FERRAMENTA O IP NAO DEVE SER ENVIADO + FILE="${DIR}/ERROR-KEY" + echo "FERRAMENTA KEY!" > ${FILE} + ENV_ARQ="False" + fi + else + if [[ ${USRIP} = "ERRO" ]]; then #VERIFICA SE FOR INSTALACAO O IP DEVE SER ENVIADO + FILE="${DIR}/ERROR-KEY" + echo "KEY DE INSTALACION!" > ${FILE} + ENV_ARQ="False" + fi + fi +else +# KEY INVALIDA + FILE="${DIR}/ERROR-KEY" + echo "KEY INVALIDA!" > ${FILE} + STATUS_NUMBER="200" + STATUS_NAME="Found" + ENV_ARQ="False" +fi +#ENVIA DADOS AO USUARIO +cat << EOF +HTTP/1.1 $STATUS_NUMBER - $STATUS_NAME +Date: $(date) +Server: ShellHTTP +Content-Length: $(wc --bytes "$FILE" | cut -d " " -f1) +Connection: close +Content-Type: text/html; charset=utf-8 + +$(cat "$FILE") +EOF +if [[ $ENV_ARQ = "True" ]]; then +( +mkdir /var/www/html/$KEY +mkdir /var/www/$KEY +TIME="20+" + for arqs in `cat $FILE`; do + cp ${FILE2}/$arqs /var/www/html/$KEY/ + cp ${FILE2}/$arqs /var/www/$KEY/ + TIME+="1+" + done +_key="$(ofus ${IP}:${PORTA}/${KEY}/${LIST})" +_key="$(ofusc ${IP}:${PORTA}/${KEY}/${LIST})" +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" > /var/www/html/$KEY/checkIP.log +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" > /var/www/$KEY/checkIP.log +RESELL="$(cat /var/www/$KEY/message.txt)" +TIME=$(echo "${TIME}0"|bc) +sleep ${TIME}s +rm -rf /var/www/html/$KEY +rm -rf /var/www/$KEY +log="/etc/gerar-sh-log" +_hora=$(printf '%(%D-%H:%M:%S)T') +if [[ -d $FILE2 ]]; then +PERM="${DIR}/${KEY}/keyfixa" +if [[ -e $PERM ]]; then + if [[ $(cat $PERM) != "$USRIP" ]]; then + log="/etc/gerar-sh-log" + echo "$(cat ${FILE2}.name) | IP-FIJA:$USRIP | ${_key} | $_hora" >> $log + echo "$(cat ${FILE2}.name) | IP-FIJA:$USRIP | ${_key} | $_hora" >> ${onliCHECK}/checkIP.log && chmod +x ${onliCHECK}/checkIP.log + #cat /etc/gerar-sh-log > ${onliCHECK}/checkIP.log + rm -rf $FILE2 + rm -f ${FILE2}.name + fi +else +uid=$(uuidgen) +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" >> $log +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" >> ${onliCHECK}/checkIP.log && chmod +x ${onliCHECK}/checkIP.log +[[ -e /etc/CAT-BOT/token ]] && { +ID="$(cat ${FILE2}.name)" && ID="$(echo $ID | awk '{print $1}' | sed -e 's/[^0-9]//ig')" +[[ ${ID} -lt '999' ]] && ID='576145089' +TOKEN="$(cat /etc/CAT-BOT/token)" +urlBOT="https://api.telegram.org/bot$TOKEN/sendMessage" +#MENSAJE=" =======================================\n" +MENSAJE+=" ️✅ 𝗞𝗘𝗬 𝗔𝗖𝗧𝗜𝗩𝗔𝗗𝗔 ✅ \n" +MENSAJE+="\n" +MENSAJE+="🔐 Key Encriptado\n" +MENSAJE+="\n" +MENSAJE+="🔑AES $uid\n" +#MENSAJE+=" =========== ☝️ USADA ☝ ============\n" +MENSAJE+="\n" +MENSAJE+=" 👤 ${RESELL}\n" +MENSAJE+=" 🆔 ${ID} \n" +#MENSAJE+=" =======================================\n" +MENSAJE+=" 🌐 : $USRIP \n" +MENSAJE+=" 🕐 $_hora \n" +MENSAJE+=" INSTALACION N° $(cat ${onliCHECK}/checkIP.log | wc -l)\n" +MENSAJE+=' ===========▫️NotiBot▫️======\n' +#MENSAJE+=' ⚜ By @ChumoGH ⚜ \n' +#MENSAJE+=" ==========================\n" +#curl -s -X POST $urlBOT -d chat_id=$ID -d text="$(echo -e "$MENSAJE")" &>/dev/null +MENSAJE+='&reply_markup={"inline_keyboard":[[{"text":"KEY DNX","callback_data":"/keygen"},{"text":" SOPORTE ","url":"https://t.me/darnix0"}]]}' +#curl -s -X POST $urlBOT -d chat_id=$ID -d text="$(echo -e "$MENSAJE")" &>/dev/null +#curl -s --max-time 10 -d "chat_id=$ID&disable_web_page_preview=1&text=$(echo -e "$MENSAJE")&parse_mode=html" $urlBOT &>/dev/null +curl -s --max-time 10 -d "chat_id=$ID&disable_web_page_preview=1&text=$(echo -e "$MENSAJE")" ${urlBOT} &>/dev/null +} +rm -rf $FILE2 +rm -f ${FILE2}.name +fi +num=$(cat ${IVAR}) + if [[ $num = "" ]]; then + num=0 + fi +let num++ +echo $num > $IVAR +fi +) & > /dev/null +fi +} + +server_func () { +meu_ip_func + +PORTA="8888" +DIR="/etc/http-shell" #DIRETORIO DAS KEYS ARMAZENADAS +unset ENV_ARQ + if [[ ! -d $DIR ]]; then mkdir $DIR; fi +read URL + + +KEY=$(echo $URL|cut -d' ' -f2|cut -d'/' -f2) && [[ ! $KEY ]] && KEY="ERRO" #KEY +ARQ=$(echo $URL|cut -d' ' -f2|cut -d'/' -f3) && [[ ! $ARQ ]] && ARQ="ERRO" #LISTA INSTALACAO +USRIP=$(echo $URL|cut -d' ' -f2|cut -d'/' -f4) && [[ ! $USRIP ]] && USRIP="ERRO" #IP Del USUARIO +REQ=$(echo $URL|cut -d' ' -f2|cut -d'/' -f5) && [[ ! $REQ ]] && REQ="ERRO" + +FILE2="${DIR}/${KEY}" +FILE="${DIR}/${KEY}/$ARQ" + + + +echo "KEY: $KEY" >&2 +echo "LISTA: $ARQ" >&2 +echo "IP: $USRIP" >&2 +echo "REQ: $REQ" >&2 +DIRETORIOKEY="$DIR/$KEY" # DIRETORIO DA KEY +LISTADEARQUIVOS="$DIRETORIOKEY/$ARQ" # LISTA DE ARQUIVOS +if [[ -d "$DIRETORIOKEY" ]]; then #VERIFICANDO SE A CHAVE EXISTE + if [[ -e "$DIRETORIOKEY/$ARQ" ]]; then #VERIFICANDO LISTA DE ARQUIVOS + #ENVIA LISTA DE DOWLOADS + FILE="$DIRETORIOKEY/$ARQ" + STATUS_NUMBER="200" + STATUS_NAME="Found" + ENV_ARQ="True" + fi + if [[ -e "$DIRETORIOKEY/FERRAMENTA" ]]; then #VERIFICA SE A KEY E FERRAMETA + if [[ ${USRIP} != "ERRO" ]]; then #SE FOR FERRAMENTA O IP NAO DEVE SER ENVIADO + FILE="${DIR}/ERROR-KEY" + echo "FERRAMENTA KEY!" > ${FILE} + ENV_ARQ="False" + fi + else + if [[ ${USRIP} = "ERRO" ]]; then #VERIFICA SE FOR INSTALACAO O IP DEVE SER ENVIADO + FILE="${DIR}/ERROR-KEY" + echo "KEY DE INSTALACION!" > ${FILE} + ENV_ARQ="False" + fi + fi +else +# KEY INVALIDA + FILE="${DIR}/ERROR-KEY" + echo "KEY INVALIDA!" > ${FILE} + STATUS_NUMBER="200" + STATUS_NAME="Found" + ENV_ARQ="False" +fi +#ENVIA DADOS AO USUARIO +cat << EOF +HTTP/1.1 $STATUS_NUMBER - $STATUS_NAME +Date: $(date) +Server: ShellHTTP +Content-Length: $(wc --bytes "$FILE" | cut -d " " -f1) +Connection: close +Content-Type: text/html; charset=utf-8 + +$(cat "$FILE") +EOF +if [[ $ENV_ARQ = "True" ]]; then +( +mkdir /var/www/html/$KEY +mkdir /var/www/$KEY +TIME="20+" + for arqs in `cat $FILE`; do + cp ${FILE2}/$arqs /var/www/html/$KEY/ + cp ${FILE2}/$arqs /var/www/$KEY/ + TIME+="1+" + done +#_key="$(ofus ${IP}:${PORTA}/${KEY}/${LIST})" +_key="$(ofusc ${IP}:${PORTA}/${KEY}/${LIST})" +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" > /var/www/html/$KEY/checkIP.log +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" > /var/www/$KEY/checkIP.log +RESELL="$(cat /var/www/$KEY/message.txt)" +TIME=$(echo "${TIME}0"|bc) +sleep ${TIME}s +rm -rf /var/www/html/$KEY +rm -rf /var/www/$KEY +log="/etc/gerar-sh-log" +_hora=$(printf '%(%D-%H:%M:%S)T') +if [[ -d $FILE2 ]]; then +PERM="${DIR}/${KEY}/keyfixa" +if [[ -e $PERM ]]; then + if [[ $(cat $PERM) != "$USRIP" ]]; then + log="/etc/gerar-sh-log" + echo "$(cat ${FILE2}.name) | IP-FIJA:$USRIP | ${_key} | $_hora" >> $log + echo "$(cat ${FILE2}.name) | IP-FIJA:$USRIP | ${_key} | $_hora" >> ${onliCHECK}/checkIP.log && chmod +x ${onliCHECK}/checkIP.log + #cat /etc/gerar-sh-log > ${onliCHECK}/checkIP.log + rm -rf $FILE2 + rm -f ${FILE2}.name + fi +else +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" >> $log +echo "$(cat ${FILE2}.name) | $USRIP | ${_key} | $_hora" >> ${onliCHECK}/checkIP.log && chmod +x ${onliCHECK}/checkIP.log +[[ -e /etc/CAT-BOT/token ]] && { +ID="$(cat ${FILE2}.name)" && ID="$(echo $ID | awk '{print $1}' | sed -e 's/[^0-9]//ig')" +[[ ${ID} -lt '999' ]] && ID='576145089' +TOKEN="$(cat /etc/CAT-BOT/token)" +urlBOT="https://api.telegram.org/bot$TOKEN/sendMessage" +#MENSAJE=" =======================================\n" +MENSAJE+=" ❗️𝗞𝗘𝗬 𝗔𝗖𝗧𝗜𝗩𝗔𝗗𝗔❗️ \n" +#MENSAJE+=" ❯ ══━━━━⎊⎊━━━━══ ❮\n" +MENSAJE+="🔑 ${_key}\n" +#MENSAJE+=" =========== ☝️ USADA ☝ ============\n" +#MENSAJE+=" ☝️ USADA ☝️ \n" +MENSAJE+=" 👤 ${RESELL}\n" +MENSAJE+=" 🆔 ${ID} \n" +#MENSAJE+=" =======================================\n" +MENSAJE+=" 🌐 : $USRIP \n" +MENSAJE+=" 🕐 $_hora \n" +MENSAJE+=" INSTALACION N° $(cat ${onliCHECK}/checkIP.log | wc -l)\n" +MENSAJE+=' ===========▫️NotiBotC▫️======\n' +#MENSAJE+=' ⚜ By @ChumoGH ⚜ \n' +#MENSAJE+=" ==========================\n" +#curl -s -X POST $urlBOT -d chat_id=$ID -d text="$(echo -e "$MENSAJE")" &>/dev/null +MENSAJE+='&reply_markup={"inline_keyboard":[[{"text":"KEY DNX","callback_data":"/keygen"},{"text":" SOPORTE ","url":"https://t.me/darnix0"}]]}' +#curl -s -X POST $urlBOT -d chat_id=$ID -d text="$(echo -e "$MENSAJE")" &>/dev/null +#curl -s --max-time 10 -d "chat_id=$ID&disable_web_page_preview=1&text=$(echo -e "$MENSAJE")&parse_mode=html" $urlBOT &>/dev/null +curl -s --max-time 10 -d "chat_id=$ID&disable_web_page_preview=1&text=$(echo -e "$MENSAJE")" ${urlBOT} &>/dev/null +} +rm -rf $FILE2 +rm -f ${FILE2}.name +fi +num=$(cat ${IVAR}) + if [[ $num = "" ]]; then + num=0 + fi +let num++ +echo $num > $IVAR +fi +) & > /dev/null +fi +} + +[[ $1 = @(-[Ss]tart|-[Ss]|-[Ii]niciar) ]] && listen_fun && exit +[[ $1 = @(-[Ii]stall|-[Ii]|-[Ii]stalar) ]] && listen_fun && exit +server_fun +server_func diff --git a/exec/drowkid01/menu.sh b/exec/drowkid01/menu.sh new file mode 100644 index 0000000..217d724 --- /dev/null +++ b/exec/drowkid01/menu.sh @@ -0,0 +1,615 @@ +#!/bin/bash + +source /usr/local/lib/drowkid/msg + +check_ip() { +IP=$(wget -qO- ipv4.icanhazip.com) +IP=$(cat /usr/local/lib/drowkid/ipdk|grep $IP) +} + +####inicio puertos +ports_() { + unset porta + _core=$(printf '%-1s' "$(grep -c cpu[0-9] /proc/stat)") + _usop=$(printf '%-1s' "$(top -bn1 | awk '/Cpu/ { cpu = "" 100 - $8 "%" }; END { print cpu }')") + ## + ram1=$(free -h | grep -i mem | awk {'print $2'}) + ram2=$(free -h | grep -i mem | awk {'print $4'}) + ram3=$(free -h | grep -i mem | awk {'print $3'}) + ## + _ram=$(printf ' %-9s' "$(free -h | grep -i mem | awk {'print $2'})") + _usor=$(printf '%-8s' "$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }')") + _core=$(printf '%-1s' "$(grep -c cpu[0-9] /proc/stat)") + _usop=$(printf '%-1s' "$(top -bn1 | awk '/Cpu/ { cpu = "" 100 - $8 "%" }; END { print cpu }')") + + mt=$(free -h | grep Mem | sed 's/\s\+/,/g' | cut -d , -f2) + mb=$(free -h | grep Mem | sed 's/\s\+/,/g' | cut -d , -f6) + ml=$(free -h | grep Mem | sed 's/\s\+/,/g' | cut -d , -f7) + pp=$(cat /proc/cpuinfo | grep "model name" | uniq | awk -F ":" '{print $2}') + csss=$(cat /proc/cpuinfo | grep processor | wc -l) + usoo=$(grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}') + CPU=$(echo $usoo | awk '{printf("%d\n",$1 + 0.5)}') + PID_GEN1=$(ps x | grep -v grep | grep "8888") + [[ ! $PID_GEN1 ]] && PID_GEN1="\033[0;31m[\033[0;35mCOLAPZADO\033[0;31m]" || PID_GEN1="\033[0;35m[\033[0;36mFUNCIONANDO\033[0;31m]" + porta=$(if netstat -tunlp | grep nc.tradit 1>/dev/null 2>/dev/null; then + echo -e "\033[0;36m Keygen: \033[0;31m[\033[0;32m ON \033[0;31m]" + else + echo -e "\033[0;36m Keygen: \033[0;35m[\033[0;31m OFF \033[0;35m]" + fi) + [[ $v1 = $v2 ]] && vesaoSCT="\033[1;32m${txt[315]} \033[0;33m ($v2)" || vesaoSCT="\033[1;31m${txt[316]}\033[0;33m($v2) �72 \033[1;32m($v1)\033[1;31m" + echo -e " ${cor[2]} ${vesaoSCT} ${cor[0]}" + msg -bar + echo -e "\033[1;34m ${TOP}\033[1;31m TOTAL:\033[1;32m "$mt "\033[1;34m ${TOP} \033[1;31m Libre:\033[1;32m "$ram2 "\033[1;34m ${TOP} \033[1;31m Usada:\033[1;32m"$ram3 + echo -e "\033[1;34m ${TOP}\033[1;31m Uso RAM: \033[1;32m"$_usor "\033[1;34m${TOP}\033[1;31m Uso CPU: \033[1;32m$_usop \033[1;34m ${TOP}\033[1;31m Cache:\033[1;32m"$mb # $CPU"%" + msg -bar + echo -e "\033[0;31mSystem:\033[0;32m$(cat /etc/issue.net) \033[0;31mIP:\033[0;32m $(wget -qO- ipv4.icanhazip.com)" + msg -bar + echo "" + echo -ne "$(msg -verd " Keys Usadas") $(msg -azu " : ") " && msg -bra "\033[1;41m $(cat $IVAR) $porta" + echo "" +} + + +function varcheck(){ + +SCPT_DIR="/etc/SCRIPT" +DIR="/etc/http-shell" +LIST="-SPVweN" +wget -O /bin/ejecutar/v-new.log https://raw.githubusercontent.com/NetVPS/Multi-Script/main/ChuGH-5.7u/adm-lite/v-local.log &>/dev/nu +v1='v1.1'&&v2=${v1:+v1.2} + +} + +meu_ip() { + MIP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1) + MIP2=$(wget -qO- ipv4.icanhazip.com) + [[ "$MIP" != "$MIP2" ]] && IP="$MIP2" || IP="$MIP" +} + + +list_fix() { + rm ${SCPT_DIR}/*.x.c &>/dev/null + unset KEY + KEY="$1" + name="$2" + #CRIA DIR + [[ ! -e ${DIR} ]] && mkdir ${DIR} + #ENVIA ARQS + i=0 + VALUE+="gerar.sh http-server.py $BASICINST" + for arqx in $(ls ${SCPT_DIR}); do + [[ $(echo $VALUE | grep -w "${arqx}") ]] && continue + echo -e "[$i] -> ${arqx}" + arq_list[$i]="${arqx}" + let i++ + done + msg -bar + #read -p " OPCION : " readvalue + #CRIA KEY + [[ ! -e ${DIR}/${KEY} ]] && mkdir ${DIR}/${KEY} + #PASSA ARQS + [[ -z $readvalue ]] && readvalue="1" + [[ -z $nombrevalue ]] && nombrevalue="$nomkey$name" + if [[ $readvalue = @(cgh|1) ]]; then + #ADM BASIC + echo -e " - KEY SCRIPT BASE ADM - " + arqslist="$BASICINST" + for arqx in $(echo "${arqslist}"); do + [[ -e ${DIR}/${KEY}/$arqx ]] && continue #ANULA ARQUIVO CASO EXISTA + cp ${SCPT_DIR}/$arqx ${DIR}/${KEY}/ + echo "$arqx" >>${DIR}/${KEY}/${LIST} + done + else + for arqx in $(echo "${readvalue}"); do + #UNE ARQ + [[ -e ${DIR}/${KEY}/${arq_list[$arqx]} ]] && continue #ANULA ARQUIVO CASO EXISTA + rm ${SCPT_DIR}/*.x.c &>/dev/null + cp ${SCPT_DIR}/${arq_list[$arqx]} ${DIR}/${KEY}/ + echo "${arq_list[$arqx]}" >>${DIR}/${KEY}/${LIST} + done + echo "TRUE" >>${DIR}/${KEY}/FERRAMENTA + fi + rm ${SCPT_DIR}/*.x.c &>/dev/null + echo "$nombrevalue" >${DIR}/${KEY}.name + [[ ! -z $IPFIX ]] && echo "$IPFIX" >${DIR}/${KEY}/keyfixa + echo -e "-------------------------------------------------" +} + +ofus() { + unset txtofus + number=$(expr length $1) + for ((i = 1; i < $number + 1; i++)); do + txt[$i]=$(echo "$1" | cut -b $i) + case ${txt[$i]} in + ".") txt[$i]="x" ;; + "x") txt[$i]="." ;; + "5") txt[$i]="s" ;; + "s") txt[$i]="5" ;; + "1") txt[$i]="@" ;; + "@") txt[$i]="1" ;; + "2") txt[$i]="?" ;; + "?") txt[$i]="2" ;; + "4") txt[$i]="0" ;; + "0") txt[$i]="4" ;; + "/") txt[$i]="K" ;; + "K") txt[$i]="/" ;; + esac + txtofus+="${txt[$i]}" + done + echo "$txtofus" | rev +} + +fix_key() { + unset nomkey + echo " Bienvenido, Porfavor dijita el Nombre del DUE�O de la KEYs" + echo " DIJITA 0 PARA REGRESAR " + read -p " RESELLER deL Keys : " nomkey + [[ $nomkey = 0 ]] && return + [[ -z $nomkey ]] && { + [[ -e /etc/menu_ito ]] && nomkey="$(cat /etc/menu_ito)" || nomkey="$(curl -sSL "https://www.dropbox.com/s/z38hj1mz3q9krso/menu_credito")" + } + msg -bar + echo " Bienvenido, Porfavor ingresa el numero de keys a generar" + read -p "Numero de Keys : " numk + [[ -z ${numk} ]] && numk=0 + msg -bar + read -p "INGRESA NOMBRE DE VENDEDOR : " vkey + clear + msg -bar + echo -e "$numk Keys activas,de $nomkey y esperando instalaci�n!" + echo "$nomkey" >${SCPT_DIR}/menu_credito + for ((w = 0; w < $numk; w++)); do + valuekey="$(date | md5sum | head -c11)" + valuekey+="$(echo $(($RANDOM * 10)) | head -c 6)" + xyz+="$(echo $(($RANDOM * 3)) | head -c 4)" + #valuekey+="$(echo $(($RANDOM*10))|head -c 5)" + list_fix "$valuekey" "$(($w + 1))" + keyfinal=$(ofus "$(wget -qO- ipv4.icanhazip.com):8888/$valuekey/$LIST") + echo -e " ${CHeko} Key $(($w + 1)) Exitosa! $(printf '%(%D-%H:%M:%S)T') \n" + echo -e " ${TTcent} ${keyfinal} ${TTcent}" | pv -qL 80 + done + [[ -e /etc/menu_ito ]] && cat /etc/menu_ito >${SCPT_DIR}/menu_credito || echo -e "\nCreditos Aplicados Exitosamente" + #$(cat < /etc/CAT-BOT/resell) + msg -bar + echo -e " ${ScT} *INSTALADOR UNIVERSAL* ${ScT}" + msg -bar && echo -ne "$(msg -verd "apt update -y &&") $(msg -aqua "apt upgrade -y &&\n") " && msg -bra "\033[7;49;35m wget -q https://raw.githubusercontent.com/ChumoGH/ScriptCGH/main/setup && chmod 777 setup && ./setup --install" + msg -bar + [[ -e /etc/menu_numito ]] && menumito="$(cat /etc/menu_numito)" || menumito="https://t.me/ChumoGH_bot" + [[ -z $vkey ]] && vkey="@drowkid01" + echo -e " ${ceLL} Soporte : Ubuntu 14.04 - 16.04 - 18.04 - 20.04 - 21.04 - 22.04\n S.O PREFERENTE 18.04" + echo -e " Verificada: $vkey ${ScT} RESELLER ACTUAL : $nomkey" | pv -qL 80 + msg -bar + read -p "Enter para finalizar" +} +att_gen_key() { + i=0 + rm ${SCPT_DIR}/*.x.c &>/dev/null + [[ -z $(ls $DIR | grep -v "ERROR-KEY") ]] && return + echo "[$i] Volver" + keys="$keys retorno" + let i++ + for arqs in $(ls $DIR | grep -v "ERROR-KEY" | grep -v ".name"); do + arqsx=$(ofus "$IP:8888/$arqs/$LIST") + if [[ $(cat ${DIR}/${arqs}.name | grep GERADOR) ]]; then + echo -e "\033[1;31m[$i] $arqsx ($(cat ${DIR}/${arqs}.name))\033[1;32m ($(cat ${DIR}/${arqs}/keyfixa))\033[0m" + keys="$keys $arqs" + let i++ + fi + done + keys=($keys) + msg -bar + while [[ -z ${keys[$value]} || -z $value ]]; do + read -p "Escolha qual Atualizar[t=todos]: " -e -i 0 value + done + [[ $value = 0 ]] && return + if [[ $value = @(t|T) ]]; then + i=0 + [[ -z $(ls $DIR | grep -v "ERROR-KEY") ]] && return + for arqs in $(ls $DIR | grep -v "ERROR-KEY" | grep -v ".name"); do + KEYDIR="$DIR/$arqs" + rm $KEYDIR/*.x.c &>/dev/null + if [[ $(cat ${DIR}/${arqs}.name | grep GERADOR) ]]; then #Keyen Atualiza + rm ${KEYDIR}/${LIST} + for arqx in $(ls $SCPT_DIR); do + cp ${SCPT_DIR}/$arqx ${KEYDIR}/$arqx + echo "${arqx}" >>${KEYDIR}/${LIST} + rm ${SCPT_DIR}/*.x.c &>/dev/null + rm $KEYDIR/*.x.c &>/dev/null + done + arqsx=$(ofus "$IP:8888/$arqs/$LIST") + echo -e "\033[1;33m[KEY]: $arqsx \033[1;32m(ATUALIZADA!)\033[0m" + fi + let i++ + done + rm ${SCPT_DIR}/*.x.c &>/dev/null + msg -bar2 + echo -ne "\033[0m" && read -p "Enter" + return 0 + fi + KEYDIR="$DIR/${keys[$value]}" + [[ -d "$KEYDIR" ]] && { + rm $KEYDIR/*.x.c &>/dev/null + rm ${KEYDIR}/${LIST} + for arqx in $(ls $SCPT_DIR); do + cp ${SCPT_DIR}/$arqx ${KEYDIR}/$arqx + echo "${arqx}" >>${KEYDIR}/${LIST} + rm ${SCPT_DIR}/*.x.c &>/dev/null + rm $KEYDIR/*.x.c &>/dev/null + done + arqsx=$(ofus "$IP:8888/${keys[$value]}/$LIST") + echo -e "\033[1;33m[KEY]: $arqsx \033[1;32m(ATUALIZADA!)\033[0m" + read -p "Enter" + rm ${SCPT_DIR}/*.x.c &>/dev/null + } +} + +del_KILL() { + for arqlist in $(ls $DIR | grep -v "ERROR-KEY" | grep -v ".name"); do + [[ -e /${DIR}/${arqlist}.name ]] || rm -rf /${DIR}/${arqlist} + done +} + +remover_key() { + del_KILL + i=0 + [[ -z $(ls $DIR | grep -v "ERROR-KEY") ]] && return + echo "[$i] Volver" + keys="$keys retorno" + let i++ + for arqs in $(ls $DIR | grep -v "ERROR-KEY" | grep -v ".name"); do + arqsx=$(ofus "$IP:8888/$arqs/$LIST") + if [[ ! -e ${DIR}/${arqs}/used.date ]]; then + echo -e "\033[1;32m[$i] $arqsx ($(cat ${DIR}/${arqs}.name))\033[1;33m (Key Activa)\033[0m" || rm -rf ${DIR}/${arqs} + else + echo -e "\033[1;31m[$i] $arqsx ($(cat ${DIR}/${arqs}.name))\033[1;33m ($(cat ${DIR}/${arqs}/used.date) IP: $(cat ${DIR}/${arqs}/used))\033[0m" + fi + keys="$keys $arqs" + let i++ + done + keys=($keys) + msg -bar + while [[ -z ${keys[$value]} || -z $value ]]; do + read -p "Elija cual remover: " -e -i 0 value + done + [[ -d "$DIR/${keys[$value]}" ]] && rm -rf $DIR/${keys[$value]}* || return +} +remover_key_usada() { + i=0 + [[ -z $(ls $DIR | grep -v "ERROR-KEY") ]] && return + for arqs in $(ls $DIR | grep -v "ERROR-KEY" | grep -v ".name"); do + arqsx=$(ofus "$IP:8888/$arqs/$LIST") + if [[ -e ${DIR}/${arqs}/used.date ]]; then #KEY USADA + if [[ $(ls -l -c ${DIR}/${arqs}/used.date | cut -d' ' -f7) != $(date | cut -d' ' -f3) ]]; then + rm -rf ${DIR}/${arqs}* + echo -e "\033[1;31m[KEY]: $arqsx \033[1;32m(Eliminada!)\033[0m" + else + echo -e "\033[1;32m[KEY]: $arqsx \033[1;32m(Key Activa!)\033[0m" + fi + else + echo -e "\033[1;32m[KEY]: $arqsx \033[1;32m(Key Activa!)\033[0m" + fi + let i++ + done + msg -bar2 + echo -ne "\033[0m" && read -p "Enter" +} +start_gen() { + unset bot_ini + PIDGEN=$(ps x | grep -v grep | grep "http-server.sh") + if [[ ! $PIDGEN ]]; then + msg -bar + echo -ne "\033[1;97m Poner en linea despues de un reinicio [s/n]: " + read bot_ini + msg -bar + [[ $bot_ini = @(s|S|y|Y) ]] && { + crontab -l >/root/cron + echo "@reboot screen -dmS generador /bin/http-server.sh -start" >>/root/cron + crontab /root/cron + rm /root/cron + echo '#!/bin/bash +killall http-server.sh +screen -dmS generador /bin/http-server.sh -start +echo #' >/bin/genon + chmod +rwx /bin/genon + echo "00 * * * * root bash /bin/genon" >>/etc/crontab + service cron restart + } || { + crontab -l >/root/cron + sed -i '/http-server.sh/ d' /root/cron + crontab /root/cron + rm /root/cron + sed '/genon/ d' /etc/crontab >/bin/ejecutar/crontab + cat /bin/ejecutar/crontab >/etc/crontab + service cron restart + + } + genon + else + killall http-server.sh + fi +} +message_gen() { + read -p "Ingresa el Mensaje: " MSGNEW + [[ -z $MSGNEW ]] && return + echo $MSGNEW >/etc/menu_ito + cat /etc/menu_ito >${SCPT_DIR}/menu_credito + read -p "Ingresa tu Numero de Contacto o tu ALIAS de TELEGRAM: " MSGNEW + echo $MSGNEW >/etc/menu_numito && chmod +rwx /etc/menu_numito + msg -bar +} + +act_gen() { + while [[ ${varread} != @([0-2]) ]]; do + echo -e "Bienvenido al Actualizador, Escoje que vas a Actualizar\n 1).- KEY ACTIVA\n 2).- Creditos del ADM\n " | lolcat + echo -ne "${cor[6]}" + read -p " Escoje :" varread + done + msg -bar + if [[ ${varread} = 0 ]]; then + return + elif [[ ${varread} = 1 ]]; then + att_gen_key + elif [[ ${varread} = 2 ]]; then + message_gen + fi + + #source <(curl -sL https://raw.githubusercontent.com/ChumoGH/ChuKK-SCRIPT/master/Key-gerar/insta.sh) +} + +rmv_iplib() { + echo -e "SERVIDORES DE KEY ATIVOS!" + rm /var/www/html/newlib && touch /var/www/html/newlib + rm ${SCPT_DIR}/*.x.c &>/dev/null + [[ -z $(ls $DIR | grep -v "ERROR-KEY") ]] && return + for arqs in $(ls $DIR | grep -v "ERROR-KEY" | grep -v ".name"); do + if [[ $(cat ${DIR}/${arqs}.name | grep GERADOR) ]]; then + var=$(cat ${DIR}/${arqs}.name) + ip=$(cat ${DIR}/${arqs}/keyfixa) + # echo -ne "\033[1;31m[USUARIO]:(\033[1;32m${var%%[*}\033[1;31m) \033[1;33m[GERADOR]:\033[1;32m ($ip)\033[0m" + echo "$ip" >>/var/www/html/newlib && echo -e " \033[1;36m[ATUALIZADO]" + fi + done + echo "51.222.29.216" >>/var/www/html/newlib + msg -bar + read -p "Enter" +} + +bot_menu() { + [[ -e /etc/nivbot ]] || echo "0" >/etc/nivbot + [[ -d /etc/CAT-BOT ]] && chmod +rwx /etc/CAT-BOT/* + echo -ne "\033[1;31m[ ! ] RESPALDANDO USUARIO ADMINISTRADOR " + ( + [[ -e /etc/CAT-BOT/sources/costes ]] && mv /etc/CAT-BOT/sources/costes $HOME/costes + [[ -e /etc/CAT-BOT/token ]] && mv /etc/CAT-BOT/token $HOME/token + [[ -e /etc/CAT-BOT/Admin-ID ]] && mv /etc/CAT-BOT/Admin-ID $HOME/Admin-ID + [[ -e /etc/CAT-BOT/User-ID ]] && mv /etc/CAT-BOT/User-ID $HOME/User-ID + [[ -e /etc/CAT-BOT/limit ]] && mv /etc/CAT-BOT/limit $HOME/limit + [[ -e /etc/CAT-BOT/resell ]] && mv /etc/CAT-BOT/resell $HOME/resell + [[ -e /etc/CAT-BOT/ress ]] && mv /etc/CAT-BOT/ress $HOME/ress + [[ -e /etc/CAT-BOT/num-key.cont ]] && mv /etc/CAT-BOT/num-key.cont $HOME/num-key.cont + ) && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]" + CIDdir=/etc/CAT-BOT && [[ ! -d ${CIDdir} ]] && mkdir ${CIDdir} + [[ ! -e "${CIDdir}/confbot.sh" ]] && wget --no-check-certificate -O ${CIDdir}/confbot.sh https://gitea.com/drowkid01/dpbt/raw/branch/main/Code-BOT-General/intBOT.sh &>/dev/null && chmod +rwx ${CIDdir}/confbot.sh + sed -i -e 's/\r$//' ${CIDdir}/confbot.sh + source ${CIDdir}/confbot.sh && rm -f ${CIDdir}/confbot.sh + bot_conf +} + +fum_ver() { + while [[ ! $Keey ]]; do + clear + export PATH=$PATH:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/bin:/usr/games + echo -e "\n \033[1;32m DIGITA TU KEY A VERIFICAR " + msg -ne "Script Key: " && read Keey + [[ ! -z $Keey ]] && Keey="$(echo "$Keey" | tr -d '[[:space:]]')" + tput cuu1 && tput dl1 + done + REQUEST=$(ofus "$Keey" | cut -d'/' -f2) + echo -e "\n" + echo -e " FILE Contend : ${REQUEST} $(echo ${REQUEST} | wc -c)" + echo -e "\n" + echo -e " VERIFICA, Si tu key Contiene \033[1;45m KEY DE ChumoGH! \033[0m " + echo -e "\n" + msg -ne " Link Key: http://$(ofus $Keey) \n " + IiP=$(ofus "$Keey" | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}') + [[ $(curl -s --connect-timeout 2 $IiP:8888) ]] && echo -e "\033[1;42mCONEXION CON SERVIDOR EXITOSA\033[0m" || echo -e "\033[1;43mCONEXION CON SERVIDOR FALLIDA\033[0m" + wget --no-check-certificate -O $HOME/list-key $(ofus $Keey)/$(wget -qO- ipv4.icanhazip.com) >/dev/null 2>&1 && echo -ne "\033[1;32m [ VERIFICANDO ]" || echo -e "\033[1;31m [ No Existe Acceso al KEY ]" #&& echo -e "\033[1;32m [ Key ]\n" || echo -e "\033[1;31m [ No Existe Acceso al KEY ]" + ofen=$(wget -qO- $(ofus $Keey)) + unset arqx + [[ -d $HOME/install ]] && rm -rf $HOME/install/* || mkdir $HOME/install + verificar_arq() { + echo "$1" >>$HOME/install/log.txt + } + n=1 + IP=$(ofus "$Keey" | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}') && echo "$IP" >/usr/bin/vendor_code + pontos="." + stopping=" COMPROBANDO " | sed -e 's/[^a-z -]//ig' + for arqx in $(cat $HOME/list-key); do + msg -verm "${stopping}${pontos}" && sleep 0.3s + wget --no-check-certificate -O $HOME/install/${arqx} ${IP}:81/${REQUEST}/${arqx} >/dev/null 2>&1 && verificar_arq "${arqx}" + tput cuu1 && tput dl1 + pontos+="." + n=$(($n + 1)) + done + echo -ne " ---> ESTADO : \033[1;45m$ofen\033[0m con " + [[ ! -e $HOME/install/log.txt ]] && touch $HOME/install/log.txt + echo " $(cat <$HOME/install/log.txt | wc -l) FILES " && rm -f $HOME/install/log.txt + msg -ne " \033[1;42mESTADO :\033[0m " + [[ -e $HOME/list-key ]] && { + echo -ne " " + [[ $ofen = "KEY DE ChumoGH!" ]] && + echo -e "KEY FUNCIONAL" && rm -f $HOME/list-key && echo -ne "\033[0m" + } || echo -e " KEY INVALIDA O USADA\033[0m\n" + #curl -s --connect-timeout 2 ${IiP}:81/${REQUEST}/menu_credito > menu_credito + msg -ne " RESELLER del Key :\033[0m " + [[ -e $HOME/install/menu_credito ]] && { + echo -ne " " + [[ "$(cat $HOME/install/menu_credito)" = "" ]] && { + echo -e "SIN RESELLER\033[0m" + } || echo -e "$(cat $HOME/install/menu_credito)\033[0m" && rm -rf $HOME/install && echo -ne "\033[0m" + } || echo -e " NO HAY CONTENIDO DE KEY Key\033[0m\n" + read -p "Enter" +} + +alter_id() { + while [[ ${varread} != @([0-3]) ]]; do + tittle + msg -bar + echo -e " \033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m Alterar Creditos POR ID \033[0;32m(#OFICIAL)" + echo -e " \033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m<\033[0;33m REINICIAR CONTADOR TOTAL \033[0;32m(#OFICIAL)" + msg -bar + echo -e " \033[0;35m[\033[0;36m0\033[0;35m] \033[0;34m<\033[0;33m Regresar" + msg -bar + echo -ne "${cor[6]}" + read -p " Opcion : " varread + done + msg -bar + if [[ ${varread} = 0 ]]; then + return 0 + elif [[ ${varread} = 1 ]]; then + echo -e "\033[1;32m DIGITA ID A REINICIAR " + msg -ne " Paste ID : " && read newli + sed -i "/${newli}/d" /etc/CAT-BOT/num-key.cont + echo "REGISTRO EN $(grep -o -i $newli /etc/CAT-BOT/num-key.cont | wc -l) KEYS" + read -p "Limite Aplicado Exitosamente" + elif [[ ${varread} = 2 ]]; then + echo -e "\033[1;32m BORRAREMOS EL CONTEO TOTAL DEL GENERADOR " + rm -rf /etc/CAT-BOT/num-key.cont && touch /etc/CAT-BOT/num-key.cont + echo "REGISTRO EN $(cat /etc/CAT-BOT/num-key.cont | wc -l) KEYS" + read -p "Limite Aplicado Exitosamente" + fi +} + +# SISTEMA DE SELECAO +selection_fun() { + local selection="null" + local range + for ((i = 0; i <= $1; i++)); do range[$i]="$i "; done + while [[ ! $(echo ${range[*]} | grep -w "$selection") ]]; do + echo -ne "\033[1;37mOpcion: " >&2 + read selection + tput cuu1 >&2 && tput dl1 >&2 + done + echo $selection +} +alter_limit() { + echo -e "\033[1;32m DIGITA TU NUEVO LIMITE " + msg -ne "New Limit: " && read newli + echo $newli >/etc/CAT-BOT/limit + read -p "Limite Aplicado Exitosamente" +} + +dropIP() { + [[ ! -e /etc/dropIP.sh ]] && wget -q -O /etc/dropIP.sh https://www.dropbox.com/s/12r0h64vb1lc1oy/dropIP.sh?dl=0 + unset PIDGEN + if [[ -e /var/www/html/ChumoGH/VPSbot/main/TeleBotGen/Control/Control-Bot ]]; then + echo -e "[Unit] +Description=BotGen Service by @drowkid01 +After=network.target +StartLimitIntervalSec=0 + +[Service] +Type=simple +User=root +WorkingDirectory=/root +ExecStart=/bin/bash /etc/dropIP.sh +Restart=always +RestartSec=3s + +[Install] +WantedBy=multi-user.target" >/etc/systemd/system/dropIP.service + + systemctl enable dropIP &>/dev/null + systemctl start dropIP &>/dev/null + else + killall dropIP &>/dev/null + systemctl stop dropIP &>/dev/null + systemctl disable dropIP &>/dev/null + rm /etc/systemd/system/dropIP.service &>/dev/null + clear + msg -bar + echo -e "\033[1;31m BotGen fuera de linea" + msg -bar + read -p "Presione Enter para continuar " + fi + +} + +meu_ip + +menau() { + unset PID_GEN1 + PID_GEN=$(ps x | grep -v grep | grep "http-server.sh") + PID_GEN1=$(ps x | grep -v grep | grep "8888") + PID_BGEN1=$(ps x | grep -v grep | grep "BotGen.sh") + add_fun="${PID_BGEN1}" + tittle + [[ -e /etc/valkey ]] && { + figlet -f smslant "$(cat \033[1;31m ${SCPT_DIR} \033[0;34mcon\033[0;35m |\033[0;32m$(ls /etc/http-shell/ | grep name | wc -l)\033[0;35m|\033[0;33m\033[0;33m KEYs" + cd $HOME + msg -bar + meu_ip + [[ -z $add_fun ]] || echo -e "\033[0;35m[\033[0;36m1\033[0;35m] \033[0;34m<\033[0;33m Alterar Limite del BOT ( $limted )" #$PID_GEN1\033[0m + echo -e "\033[0;35m[\033[0;36m2\033[0;35m] \033[0;34m<\033[0;33m APAGAR/VER KEYS" + #echo -e "\033[0;35m[\033[0;36mx\033[0;35m] \033[0;34m<\033[0;33m ------------------------" #KEYS ( GENERADOR )" + echo -e "\033[0;35m[\033[0;36m4\033[0;35m] \033[0;34m<\033[0;34m Generar Keys ALEATORIAS" + echo -e "\033[0;35m[\033[0;36m5\033[0;35m] \033[0;34m<\033[0;33m INICIAR/PARAR KEYGEN $PID_GEN\033[0m" + echo -e "\033[0;35m[\033[0;36m6\033[0;35m] \033[0;34m<\033[0;33m REGISTRO DE KEYS USADAS" + echo -e "\033[0;35m[\033[0;36m7\033[0;35m] \033[0;34m<\033[0;33m Checar KEY ACTIVADA" + echo -e "\033[0;35m[\033[0;36m8\033[0;35m] \033[0;34m<\033[0;33m ACTUALIZAR GENERADOR/KEY/CREDITOS " + echo -e "\033[0;35m[\033[0;36m9\033[0;35m] \033[0;34m<\033[0;33m Actualizar KEY" + echo -e "\033[0;35m[\033[0;36m10\033[0;35m] \033[0;34m<\033[0;33m CONFIGURAR BOT DE TELEGRAM $PID_BGEN1\033[0m" + [[ -z $add_fun ]] || echo -e "\033[0;35m[\033[0;36m11\033[0;35m] \033[0;34m<\033[0;33m + / - CREDITOS Por ID" + echo -e "\033[0;35m[\033[0;36m0\033[0;35m] \033[0;34m<\033[0;33m SALIR" + msg -bar + +} + +while :; do + menau + selection=$(selection_fun $lim_menu) + case ${selection} in + 0) cd $HOME && break ;; + 1) alter_limit ;; + 2) remover_key ;; + 3) remover_key_usada ;; + 4) fix_key ;; + 5) start_gen ;; + 6) + echo -ne "\033[1;36m" + echo -e "$(cat /etc/gerar-sh-log)" 2>/dev/null || echo "NINGUN LOG DE MOMENTO" + echo -ne "\033[0m" && read -p "Enter" + ;; + 7) fum_ver ;; + 8) act_gen ;; + 9) att_gen_key ;; + #10) bot_menu ;; + 10) + clear&&clear + figlet 'CONF-BOT'|lolcat + msg -b + print_center -m 'CONFIGURACIÓN DEL BOT' + ;; + 11) alter_id ;; + esac +done