Add expire.sh
This commit is contained in:
commit
ebc7006695
|
@ -0,0 +1,76 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Function to get the expiration date from Xtream Codes and check if it is less than 10 days away
|
||||
get_xtream_expiry() {
|
||||
local panel_url=$1
|
||||
local username=$2
|
||||
local password=$3
|
||||
local bot_token=$4
|
||||
local chat_id=$5
|
||||
|
||||
# API URL
|
||||
local api_url="${panel_url}/player_api.php"
|
||||
|
||||
# Make the API request using curl
|
||||
response=$(curl -s "${api_url}" --get --data-urlencode "username=${username}" --data-urlencode "password=${password}" --data-urlencode "action=get_account_info")
|
||||
|
||||
# Check if jq is available
|
||||
if ! command -v jq &> /dev/null
|
||||
then
|
||||
echo "jq is required but not installed. Please install it using: sudo apt install jq"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract the expiration date using jq
|
||||
expiry_date=$(echo "$response" | jq -r '.user_info.exp_date')
|
||||
|
||||
if [ "$expiry_date" != "null" ] && [ -n "$expiry_date" ]; then
|
||||
# Convert the expiration date from Unix timestamp to human-readable format
|
||||
expiry_date_readable=$(date -d @"$expiry_date" +"%Y-%m-%d %H:%M:%S")
|
||||
echo "Expiry Date: $expiry_date_readable"
|
||||
|
||||
# Get the current date and expiration date in seconds since epoch
|
||||
current_date=$(date +%s)
|
||||
expiry_date_seconds=$(date -d @"$expiry_date" +%s)
|
||||
|
||||
# Calculate the difference in days
|
||||
days_left=$(( (expiry_date_seconds - current_date) / 86400 ))
|
||||
|
||||
# Debugging: Print days left
|
||||
echo "Days Left: $days_left"
|
||||
|
||||
# Check if the expiration date has passed
|
||||
if [ "$days_left" -lt 0 ]; then
|
||||
echo "The subscription has already expired on $expiry_date_readable. No messages will be sent."
|
||||
return 0 # Exit the function without sending a message
|
||||
fi
|
||||
|
||||
# Check if it's less than 10 days away
|
||||
if [ "$days_left" -lt 10 ]; then
|
||||
echo "The subscription will expire in less than a week ($days_left days left). Sending Telegram alert..."
|
||||
|
||||
# Construct the message
|
||||
message="⚠️ Warning: Your Xtream Codes subscription will expire in $days_left days on $expiry_date_readable."
|
||||
|
||||
# Debugging: Print message content
|
||||
echo "Message: $message"
|
||||
|
||||
# Send a message to Telegram using curl
|
||||
curl -s -X POST "https://api.telegram.org/bot${bot_token}/sendMessage" \
|
||||
-d chat_id="${chat_id}" \
|
||||
-d text="${message}" \
|
||||
-d parse_mode="Markdown"
|
||||
fi
|
||||
else
|
||||
echo "Expiration date not found or is null."
|
||||
fi
|
||||
}
|
||||
|
||||
# Usage
|
||||
panel_url="http://your_xtream_panel_url:port"
|
||||
username="your_username"
|
||||
password="your_password"
|
||||
bot_token="your_telegram_bot_token" # Replace with your Telegram bot token
|
||||
chat_id="your_chat_id" # Replace with your Telegram chat ID
|
||||
|
||||
get_xtream_expiry "$panel_url" "$username" "$password" "$bot_token" "$chat_id"
|
Loading…
Reference in New Issue