108 lines
3.1 KiB
Bash
108 lines
3.1 KiB
Bash
#!/bin/bash
|
|
|
|
# Discord webhook details
|
|
discord_webhook_url="$(cat discord_notifier_secrets.env)"
|
|
|
|
# Get variables from qBitTorrent. Remember to make sure these align with your qBittorrent variables passed in settings.
|
|
torrent_name="$1"
|
|
size="$2"
|
|
files="$3"
|
|
tracker="$4"
|
|
category="$5"
|
|
path="$6"
|
|
|
|
# Function to convert size from bytes to gigabytes (GB)
|
|
calculate_size_in_gb() {
|
|
size_in_gb=$(bc <<< "scale=2; $size / (1024 * 1024 * 1024)")
|
|
echo "$size_in_gb GB"
|
|
}
|
|
# Function to convert size from bytes to megabytes (MB)
|
|
calculate_size_in_mb() {
|
|
size_in_mb=$(bc <<< "scale=2; $size / (1024 * 1024)")
|
|
echo "$size_in_mb MB"
|
|
}
|
|
# Function to convert size from bytes to kilobytes (KB)
|
|
calculate_size_in_kb() {
|
|
size_in_kb=$(bc <<< "scale=2; $size / 1024")
|
|
echo "$size_in_kb KB"
|
|
}
|
|
|
|
# Determine download type based on the category.
|
|
# This is optional, only if you want to change the notification message based on the category.
|
|
# You can also comment out this entire section and simply use $category in the 'title' field of the payload below.
|
|
case "$category" in
|
|
"emp")
|
|
download_type="Empornium"
|
|
;;
|
|
"ggn")
|
|
download_type="GGN"
|
|
;;
|
|
"mam")
|
|
download_type="MAM"
|
|
;;
|
|
"pub")
|
|
download_type="Public Torrent"
|
|
;;
|
|
*)
|
|
download_type="Uncategorised"
|
|
;;
|
|
esac
|
|
|
|
# Calculate the size message based on the size in megabytes, kilobytes, or gigabytes
|
|
if (( size < 1024 * 1024 )); then
|
|
size_message=$(calculate_size_in_kb)
|
|
elif (( size < 1024 * 1024 * 1024 )); then
|
|
size_message=$(calculate_size_in_mb)
|
|
else
|
|
size_message=$(calculate_size_in_gb)
|
|
fi
|
|
|
|
# Construct the JSON payload for Discord
|
|
# You can change the color of the left hand stripe of the notification using the "color" field.
|
|
payload='{
|
|
"embeds": [
|
|
{
|
|
"author": {
|
|
"name": "qBittorrent",
|
|
"icon_url": "https://i.imgur.com/6LTKLgZ.jpg"
|
|
},
|
|
"title": "'$download_type' download completed",
|
|
"color": 7506394,
|
|
"fields": [
|
|
{
|
|
"name": "Torrent",
|
|
"value": "'$torrent_name'"
|
|
},
|
|
{
|
|
"name": "Size",
|
|
"value": "'$size_message'",
|
|
"inline": true
|
|
},
|
|
{
|
|
"name": "Files",
|
|
"value": "'$files'",
|
|
"inline": true
|
|
},
|
|
{
|
|
"name": "Tracker",
|
|
"value": "'$tracker'"
|
|
},
|
|
{
|
|
"name": "Save Path",
|
|
"value": "'$path'"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}'
|
|
|
|
# Function to send a notification to Discord
|
|
send_discord_notification() {
|
|
curl -H "Content-Type: application/json" -X POST -d "$payload" "$discord_webhook_url" >/dev/null 2>&1
|
|
}
|
|
|
|
# Send a notification to Discord
|
|
send_discord_notification
|
|
|
|
# Print an info message in the console
|
|
echo "[$torrent_name] ${download_type} completed. Discord notification sent." |