#!/bin/bash
# AUTOSCRIPT INTERFLAZZ ID

# Getting
CHATID=$(cat /root/telebotvpn/idteleowner 2>/dev/null)
KEY=$(cat /root/telebotvpn/tokentelebotserver 2>/dev/null)
TIME="10"
URL="https://api.telegram.org/bot$KEY/sendMessage"
IP=$(cat /etc/xray/ipvps 2>/dev/null || wget -qO- ipv4.icanhazip.com)
ISP=$(cat /etc/xray/isp 2>/dev/null || echo "Unknown ISP")
CITY=$(cat /etc/xray/city 2>/dev/null || echo "Unknown City")
domain=$(cat /etc/xray/domain 2>/dev/null || hostname -f)

read -p "Input Username Account : " User
read -p "Day Extend : " Days

if ! grep -qiw "$User" /etc/passwd; then
    echo -e "Username tidak ada."
    exit 0
fi

Pass=$(grep -w "^### $User" /etc/ssh/.ssh.db 2>/dev/null | awk '{print $4}')
if [ -z "$Pass" ]; then
    Pass=$(grep -w "^#&# $User" /etc/ssh/.ssh.db 2>/dev/null | awk '{print $4}')
fi
if [ -z "$Pass" ]; then
    Pass="123"
fi

current_exp=$(chage -l $User | grep "Account expires" | awk -F": " '{print $2}')
formatted_date=$(date -d "$current_exp" +"%Y-%m-%d" 2>/dev/null || date +"%Y-%m-%d")

if [[ "$current_exp" == "never" ]] || [[ -z "$current_exp" ]]; then
  Today=$(date +%s)
else
  Today=$(date -d "$current_exp" +%s 2>/dev/null || date +%s)
  now_sec=$(date +%s)
  if (( Today < now_sec )); then
    Today=$now_sec
  fi
fi

Days_Detailed=$(( ($Days) * 86400 ))
Expire_On=$(($Today + $Days_Detailed))
Expiration=$(date -u --date="1970-01-01 $Expire_On sec GMT" +%Y-%m-%d)
Expirationx=$(date -u --date="1970-01-01 $Expire_On sec GMT" +%Y-%m-%d)
Expiration_Display=$(date -u --date="1970-01-01 $Expire_On sec GMT" '+%d %b %Y')

passwd -u $User >/dev/null 2>&1
usermod -e $Expiration $User >/dev/null 2>&1
chage -E "$Expirationx" "$User" >/dev/null 2>&1

touch /etc/ssh/.ssh.db
sed -i "/\b${User}\b/d" /etc/ssh/.ssh.db
echo "### $User $Expirationx $Pass" >> /etc/ssh/.ssh.db

systemctl restart ssh >/dev/null 2>&1
systemctl restart sshd >/dev/null 2>&1

TEXT="
──────────────────────
Extend Account SSHWS Success
──────────────────────
<code>✧ Host  :</code> <code>$domain</code>
<code>✧ User  :</code> <code>$User</code>
<code>✧ Plus  :</code> <code>$Days Days</code>
<code>✧ Exp   :</code> <code>$Expirationx</code>
────────────────────── "

curl -s --max-time $TIME -d "chat_id=$CHATID&disable_web_page_preview=1&text=$TEXT&parse_mode=html" $URL >/dev/null
atq | awk '{print $1}' | while read job; do at -c "$job" | grep -q "autobackupbot" && atrm "$job"; done &> /dev/null
echo "autobackupbot" | at now + 30 minutes &> /dev/null

echo "$User"
echo "$Days Days"
echo "$formatted_date"
echo "$Expirationx"
