working
This commit is contained in:
commit
1e627b0bad
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.env
|
59
bot.sh
Executable file
59
bot.sh
Executable 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}¤t_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
5
data/.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
*.json
|
||||
*.txt
|
||||
*.png
|
||||
*.jpg
|
||||
*.tmp
|
13
env_example
Normal file
13
env_example
Normal 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=""
|
Loading…
x
Reference in New Issue
Block a user