1
0

adduser.sh 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. #!/bin/sh
  2. #Autor: Henry Chumo
  3. #Alias : ChumoGH
  4. config="/etc/v2ray/config.json"
  5. temp="/etc/v2ray/temp.json"
  6. v2rdir="/etc/v2r" && [[ ! -d $v2rdir ]] && mkdir $v2rdir
  7. user_conf="/etc/v2r/user" && [[ ! -e $user_conf ]] && touch $user_conf
  8. backdir="/etc/v2r/back" && [[ ! -d ${backdir} ]] && mkdir ${backdir}
  9. tmpdir="$backdir/tmp"
  10. [[ ! -e $v2rdir/conf ]] && echo "autBackup 0" > $v2rdir/conf
  11. if [[ $(cat $v2rdir/conf | grep "autBackup") = "" ]]; then
  12. echo "autBackup 0" >> $v2rdir/conf
  13. fi
  14. barra="\033[0;31m=====================================================\033[0m"
  15. numero='^[0-9]+$'
  16. hora=$(printf '%(%H:%M:%S)T')
  17. fecha=$(printf '%(%D)T')
  18. on_off_res(){
  19. if [[ $(cat $v2rdir/conf | grep "autBackup" | cut -d " " -f2) = "0" ]]; then
  20. echo -e "\033[0;31m[off]"
  21. else
  22. echo -e "\033[1;92m[on]"
  23. fi
  24. }
  25. blanco(){
  26. [[ ! $2 = 0 ]] && {
  27. echo -e "\033[1;37m$1\033[0m"
  28. } || {
  29. echo -ne " \033[1;37m$1:\033[0m "
  30. }
  31. }
  32. verde(){
  33. [[ ! $2 = 0 ]] && {
  34. echo -e "\033[1;32m$1\033[0m"
  35. } || {
  36. echo -ne " \033[1;32m$1:\033[0m "
  37. }
  38. }
  39. rojo(){
  40. [[ ! $2 = 0 ]] && {
  41. echo -e "\033[1;31m$1\033[0m"
  42. } || {
  43. echo -ne " \033[1;31m$1:\033[0m "
  44. }
  45. }
  46. col(){
  47. nom=$(printf '%-55s' "\033[0;92m${1} \033[0;31m>> \033[1;37m${2}")
  48. echo -e " $nom\033[0;31m${3} \033[0;92m${4}\033[0m"
  49. }
  50. col2(){
  51. echo -e " \033[1;91m$1\033[0m \033[1;37m$2\033[0m"
  52. }
  53. vacio(){
  54. blanco "\n no se puede ingresar campos vacios..."
  55. }
  56. cancelar(){
  57. echo -e "\n \033[3;49;31minstalacion cancelada...\033[0m"
  58. }
  59. continuar(){
  60. echo -e " \033[3;49;32mEnter para continuar...\033[0m"
  61. }
  62. title2(){
  63. v1=$(cat /etc/adm-lite/v-local.log)
  64. v2=$(cat /bin/ejecutar/v-new.log)
  65. echo -e $barra
  66. [[ $v1 = $v2 ]] && echo -e " \e[97m\033[1;41m V2ray by @Rufu99 Remasterizado @ChumoGH [$v1] \033[0m" || echo -e " \e[97m\033[1;41m V2ray by @Rufu99 Remasterizado @ChumoGH [$v1] >> \033[1;92m[$v2] \033[0m"
  67. }
  68. title(){
  69. echo -e $barra
  70. blanco "$1"
  71. echo -e $barra
  72. }
  73. userDat(){
  74. blanco " N° Usuarios fech exp dias"
  75. echo -e $barra
  76. }
  77. restart_v2r(){
  78. v2ray restart
  79. #echo "reiniciando"
  80. }
  81. add_user(){
  82. users="$(cat $config | jq -r .inbounds[].settings.clients[].email)"
  83. opcion=$name
  84. dias=$tdias
  85. espacios=$(echo "$opcion" | tr -d '[[:space:]]')
  86. opcion=$espacios
  87. mv $config $temp
  88. num=$(jq '.inbounds[].settings.clients | length' $temp)
  89. new=".inbounds[].settings.clients[$num]"
  90. new_id=$(uuidgen)
  91. new_mail="email:\"$opcion\""
  92. aid=$(jq '.inbounds[].settings.clients[0].alterId' $temp)
  93. echo jq \'$new += \{alterId:${aid},id:\"$new_id\","$new_mail"\}\' $temp \> $config | bash
  94. echo "$opcion | $new_id | $(date '+%y-%m-%d' -d " +$dias days")" >> $user_conf
  95. chmod 777 $config
  96. rm $temp
  97. restart_v2r
  98. view_user $opcion
  99. }
  100. view_user(){
  101. name=$1
  102. unset seg
  103. seg=$(date +%s)
  104. while :
  105. do
  106. users=$(cat $config | jq .inbounds[].settings.clients[] | jq -r .email)
  107. n=1
  108. for i in $users
  109. do
  110. unset DateExp
  111. unset seg_exp
  112. unset exp
  113. [[ $name = "$i" ]] && escopt="$n"
  114. let n++
  115. done
  116. opcion=$escopt
  117. let opcion--
  118. ps=$(jq .inbounds[].settings.clients[$opcion].email $config) && [[ $ps = null ]] && ps="default"
  119. id=$(jq .inbounds[].settings.clients[$opcion].id $config)
  120. aid=$(jq .inbounds[].settings.clients[$opcion].alterId $config)
  121. add=$(jq '.inbounds[].domain' $config) && [[ $add = null ]] && add=$(wget -qO- ipv4.icanhazip.com)
  122. host=$(jq '.inbounds[].streamSettings.wsSettings.headers.Host' $config) && [[ $host = null ]] && host=''
  123. net=$(jq '.inbounds[].streamSettings.network' $config)
  124. path=$(jq '.inbounds[].streamSettings.wsSettings.path' $config) && [[ $path = null ]] && path=''
  125. port=$(jq '.inbounds[].port' $config)
  126. tls=$(jq '.inbounds[].streamSettings.security' $config)
  127. addip=$(wget -qO- ifconfig.me)
  128. tput cuu1 >&2 && tput dl1 >&2
  129. tput cuu1 >&2 && tput dl1 >&2
  130. blanco $barra
  131. blanco " VMESS LINK CONFIG"
  132. blanco $barra
  133. vmess
  134. blanco $barra
  135. echo -n "vmess://$(echo {\"v\": \"2\", \"ps\": $ps, \"add\": $addip, \"port\": $port, \"aid\": $aid, \"type\": \"none\", \"net\": $net, \"path\": $path, \"host\": $host, \"id\": $id, \"tls\": $tls} | base64 -w 0)" | qrencode -s8 -o /bin/ejecutar/${name}_vmess_qr.png
  136. [[ -e /bin/ejecutar/${name}_vmess_qr.png ]] && {
  137. mv /bin/ejecutar/${name}_vmess_qr.png /var/www/html/${name}_vmess_qr.png
  138. echo -e "vmess://$(echo {\"v\": \"2\", \"ps\": $ps, \"add\": $addip, \"port\": $port, \"aid\": $aid, \"type\": \"none\", \"net\": $net, \"path\": $path, \"host\": $host, \"id\": $id, \"tls\": $tls} | base64 -w 0)" > /bin/ejecutar/${name}_vmess.txt
  139. echo -e "QR Code : http://$(wget -qO- ipv4.icanhazip.com):81/${name}_vmess_qr.png "
  140. } || echo -e "ERROR AL CREAR QR"
  141. blanco $barra
  142. break
  143. done
  144. }
  145. vmess() {
  146. echo -ne "\033[3;32mvmess://$(echo {\"v\": \"2\", \"ps\": $ps, \"add\": $addip, \"port\": $port, \"aid\": $aid, \"type\": \"none\", \"net\": $net, \"path\": $path, \"host\": $host, \"id\": $id, \"tls\": $tls} | base64 -w 0)\033[3;32m" && echo
  147. }
  148. [[ $1 = "" && $2 = "" ]] && {
  149. exit
  150. } || {
  151. name="$1"
  152. tdias="$2"
  153. add_user
  154. }