#!/bin/bash

sleep 10

dag_vooruit=1
video_per_minute=3
time_zone_offset=1

if [[ $dag_vooruit -eq 1 ]]; then
   repeat_count=$(($video_per_minute*60))
   minutes_per_sheet=$((24*60))
   url_first_part=RadarMapRain24HourForecastNL
   url_trailing_part="False_False_True_0_24_0_0_0.png"
   date_pattern="+%Y%m%d%H00"
   date_round5=0
else
  repeat_count=$(($video_per_minute*5))
  minutes_per_sheet=$((3*60))
  url_first_part=RadarMapRainNL
  url_trailing_part="False_False_True_0_18_1_0_0.png"
  date_pattern="+%Y%m%d%H%M"
  date_round5=1
fi

while true; do
  mkdir /tmp/buienradar >/dev/null 2>&1
  cd /tmp/buienradar

  if [[ $date_round5 -eq 1 ]]; then 
     date_string=$( echo $(date -u "$date_pattern") - $(date -u +%M)%5 | bc )
  else
    date_string=$(date -u "$date_pattern")
  fi

  wget -O buien.png https://image-cdn.buienradar.nl/br-processing/image-api/$url_first_part/Sprite/${date_string}__550x512_$url_trailing_part
  convert buien.png -crop "550x512" "out-%d.png"

  count=$(ls | grep -c "out-[0-9]*.png" )
  minutes_per_image=$(( $minutes_per_sheet / count ))


  time_begin_images=($(echo "$date_string" | fold -w2 | tail -n 2))
  hour_begin_images=$( echo ${time_begin_images[0]} + $time_zone_offset | bc )
  min_begin_images=${time_begin_images[1]}

  time_in_home_country="$hour_begin_images:$min_begin_images"

  for i in $( seq $(( $count -1 )) ) ; do 
    date_var=$(echo "$date_string" | fold -w2 | tail -n 2)
    time_label=$( date -d "$time_in_home_country $(( $minutes_per_image * $i )) minutes" +'%a %H:%M' )
    convert -size ${width}x30 -background '#00000080' -fill white label:"$time_label" miff:- | composite -gravity south -geometry +0+3 - out-$i.png radar-$i.png
  done


 if [ -e out-1.png ] ; then
   rm buien.mp4 > /dev/null 2>&1
   ffmpeg -r 4/5 -pattern_type glob_sequence -start_number 0 -i 'radar-%d.png' -c:v libx264 -vf "fps=25,format=yuv420p" buien.mp4
   rm *.png > /dev/null 2>&1
   mplayer -vf scale -loop $repeat_count -vo x11 -name buienradar buien.mp4
 else
   sleep 60
 fi

done

