2023-10-31 07:10:31 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
while getopts 'w:s:d:g:h:i:t' flag
|
|
|
|
do
|
|
|
|
case "${flag}" in
|
|
|
|
w) webhook_url=${OPTARG};; # Discord Webhook URL
|
|
|
|
s) summary_types=${OPTARG};; # only support summary, hsummary, vsummary
|
|
|
|
d) days_limit=${OPTARG};; # Days limit in numbers
|
|
|
|
g) graph_styles=${OPTARG};; # Graph Styles '0, 1, 2, 3'
|
|
|
|
h) header_text=${OPTARG};; # Header text for graph, optional
|
|
|
|
i) image_scale=${OPTARG};; # Image Scale, in percentage
|
|
|
|
t) image_Transparent="True";; # Enable Image Transparent
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
PARAMS=()
|
|
|
|
|
|
|
|
if [ ! -n "${webhook_url}" ]; then
|
|
|
|
echo "Fatal : no webhook_url (-w) suppiled"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
if [ ! -n "${graph_styles}" ]; then
|
|
|
|
graph_styles=0
|
|
|
|
PARAMS+=("--style $graph_styles")
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -n "${summary_types}" ]; then
|
|
|
|
PARAMS+=("--$summary_types")
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -n "${days_limit}" ]; then
|
|
|
|
PARAMS+=("--days $days_limit")
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -n "${header_text}" ]; then
|
2023-10-31 07:32:06 +00:00
|
|
|
PARAMS+=("--headertext "$header_text"")
|
2023-10-31 07:10:31 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -n "${image_scale}" ]; then
|
|
|
|
PARAMS+=("--scale $image_scale")
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$image_Transparent" == "True" ]; then
|
|
|
|
PARAMS+=("--transparent")
|
|
|
|
fi
|
|
|
|
|
|
|
|
MAKE_DIR=$(mktemp -d)
|
|
|
|
DATETIME=$(date +"%Y-%m-%d")
|
|
|
|
/usr/bin/vnstati -o $MAKE_DIR/output.png ${PARAMS[@]}
|
|
|
|
curl \
|
|
|
|
-F 'payload_json={"content": "'$DATETIME'"}' \
|
|
|
|
-F "file1=@$MAKE_DIR/output.png" \
|
|
|
|
$webhook_url
|
|
|
|
rm -rf $MAKE_DIR
|