This commit is contained in:
Shihaam Abdul Rahman 2023-11-11 23:18:19 +05:00
commit 1e627b0bad
Signed by: shihaam
GPG Key ID: 6DA2E87EBC227636
4 changed files with 78 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.env

59
bot.sh Executable file
View File

@ -0,0 +1,59 @@
#!/bin/bash
source .env
date=$(date "+%Y%m%d_%H%M%S")
image=data/image_$date.png
speedtest_result=data/speedtest_$date.txt
weather_file=data/weather_$date.json
#################################################################################
# Capture a frame from RTSP stream
mpv rtsp://$RTSP_IP --frames=1 --vo=image --ovc=png --o=$image
#################################################################################
#################################################################################
# Run speedtest and output to a file
speedtest > $speedtest_result
# Extract information from the speedtest output
isp_name=$(grep -oP 'Hosted by \K.*(?= \[)' $speedtest_result)
latency=$(grep -oP 'Hosted by.*\[.*\]: \K[0-9.]+(?= ms)' $speedtest_result)
download_speed=$(grep -oP 'Download: \K.*(?= Mbit/s)' $speedtest_result)
upload_speed=$(grep -oP 'Upload: \K.*(?= Mbit/s)' $speedtest_result)
#################################################################################
#################################################################################
# Make the API request
response=$(curl -s "https://api.open-meteo.com/v1/forecast?latitude=${LATITUDE}&longitude=${LONGITUDE}&current_weather=true" > $weather_file)
# Extract Weather Condition
weather_condition=$(cat $weather_file | jq '.current_weather.weathercode')
case $weather_condition in
0) current_weather="☀️ Clear sky" ;;
1|2|3) current_weather="☁️ Cloudy" ;;
45|48) current_weather="🌫️ Fog" ;;
51|53|55|56|57) current_weather="🌧️ Drizzle" ;;
61|63|65|66|67) current_weather="🌦️ Rain" ;;
80|81|82) current_weather="🌧️ Rain showers" ;;
85|86) current_weather="🌨️ Snow showers" ;;
95|96|99) current_weather="⛈️ Thunderstorm" ;;
*) current_weather="🌐 Weather condition not recognized" ;;
esac
#################################################################################
#################################################################################
caption="
$current_weather
🌐 *ISP*: $isp_name
🏓 *Latency*: $latency ms
⬇️ *Download*: $download_speed Mbit/s
⬆️ *Upload*: $upload_speed Mbit/s
"
#################################################################################
#################################################################################
curl -X POST https://api.telegram.org/bot$TG_BOT_API_KEY/sendPhoto \
-F chat_id=$TG_CHANNEL_ID \
-F photo=@$image \
-F caption="$caption" \
-F parse_mode=Markdown
#################################################################################

5
data/.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
*.json
*.txt
*.png
*.jpg
*.tmp

13
env_example Normal file
View File

@ -0,0 +1,13 @@
TG_BOT_API_KEY=
TG_CHANNEL_ID=
DELAY=10
RTSP_AUTH=false
RTSP_IP=
RTSP_PORT=
RTSP_USERNAME=
RTSP_PASSWORD=
LATITUDE=""
LONGITUDE=""