diff --git a/speedtest.csv b/Linux/speedtest.csv similarity index 100% rename from speedtest.csv rename to Linux/speedtest.csv diff --git a/speedtest.sh b/Linux/speedtest.sh similarity index 100% rename from speedtest.sh rename to Linux/speedtest.sh diff --git a/Windows/speedtest.csv b/Windows/speedtest.csv new file mode 100644 index 0000000..657db49 --- /dev/null +++ b/Windows/speedtest.csv @@ -0,0 +1 @@ +Date,Miles to Server,Download,Upload diff --git a/Windows/speedtest.sh b/Windows/speedtest.sh new file mode 100755 index 0000000..65a6305 --- /dev/null +++ b/Windows/speedtest.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +# Set the path to the log file +LOG_FILE="./speedtest.csv" + +# Set your Discord webhook URL +WEBHOOK_URL="DISCORD_WEBHOOK_URL" + +# Set WAN Number +WAN="NUMBER" +# Run the speedtest and parse the output +SPEEDTEST=$(speedtest-cli --csv) + +# Check if the output is empty or contains errors +if [ -z "$SPEEDTEST" ] || [[ "$SPEEDTEST" == *"ERROR"* ]]; then + echo "Speedtest failed: $SPEEDTEST" + exit 1 +fi + +PING=$(echo "$SPEEDTEST" | awk -F',' '{print $6}') +DOWNLOAD=$(echo "$SPEEDTEST" | awk -F',' '{print $7}') +UPLOAD=$(echo "$SPEEDTEST" | awk -F',' '{print $8}') + +# Check if the required fields are missing or invalid +if [ -z "$PING" ] || [ -z "$DOWNLOAD" ] || [ -z "$UPLOAD" ]; then + echo "Missing or invalid speedtest fields: PING=$PING, DOWNLOAD=$DOWNLOAD, UPLOAD=$UPLOAD" + exit 1 +fi + +# Convert the download and upload speeds to Mbps +DOWNLOAD_Mbps=$(awk "BEGIN { printf \"%.1f\", $DOWNLOAD / (1024*1024) }") +UPLOAD_Mbps=$(awk "BEGIN { printf \"%.1f\", $UPLOAD / (1024*1024) }") + +# Append the result to the log file +echo "$(date +"%Y-%m-%d %H:%M:%S"),$PING,$DOWNLOAD_Mbps Mbps,$UPLOAD_Mbps Mbps" >> "$LOG_FILE" + +# Prepare the payload for the Discord webhook +PAYLOAD='{"content": "Speedtest Result:\nPing: '"$PING"'\nDownload: '"$DOWNLOAD_Mbps"' Mbps\nUpload: '"$UPLOAD_Mbps"' Mbps"}' + +# Send the payload to the Discord webhook - If you dont want this, comment out this command +curl -H "Content-Type: application/json" -X POST --data "{\"content\": null, \"embeds\": [{\"title\": \"Speedtest Result - WAN $WAN\", \"description\": \"Time: $(date +"%Y-%m-%d %H:%M:%S")\nPing: $PING ms\nDownload: $DOWNLOAD_Mbps mbps\nUpload: $UPLOAD_Mbps mbps\", \"color\": 5814783}], \"attachments\": []}" $WEBHOOK_URL