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