#!/bin/bash
#Взято
https://forum.ubuntu.ru/index.php?topic=92123.0##Чтобы поставить будильник, вводим в терминале команду "crontab -e"
##И прописываем нужные параметры:
##PATH=/sbin:/bin:/usr/sbin:/usr/bin
##SHELL=/bin/bash
### m h dom mon dow command
##0 7 * * 1-5 bash alarm
##0 10 * * 6-7 bash alarm
export DISPLAY=:0
export LANG=ru_RU.UTF-8
# Склоняем в соответствующем падеже слова "час" и "минута" # 2 раза

))
check_date ()
{
CURR_HOUR=`date +%H`
CURR_MIN=`date +%M`
TEMP_HOUR="`echo $CURR_HOUR | colrm 1 1`"
TEMP_MIN="`echo $CURR_MIN | colrm 1 1`"
if [ "$CURR_HOUR" -eq "0" ] || [ "$CURR_HOUR" -eq "5" ] || [ "$CURR_HOUR" -eq "6" ] || [ "$CURR_HOUR" -eq "7" ] || [ "$CURR_HOUR" -eq "8" ] || [ "$CURR_HOUR" -eq "9" ] || [ "$CURR_HOUR" -eq "11" ] || [ "$CURR_HOUR" -eq "12" ] || [ "$CURR_HOUR" -eq "13" ] || [ "$CURR_HOUR" -eq "14" ] || [ "$TEMP_HOUR" -eq "0" ] || [ "$TEMP_HOUR" -eq "5" ] || [ "$TEMP_HOUR" -eq "6" ] || [ "$TEMP_HOUR" -eq "7" ] || [ "$TEMP_HOUR" -eq "8" ] || [ "$TEMP_HOUR" -eq "9" ]; then LC_HOUR="часов"
elif [ "$CURR_HOUR" -eq "2" ] || [ "$CURR_HOUR" -eq "3" ] || [ "$CURR_HOUR" -eq "4" ] || [ "$TEMP_HOUR" -eq "2" ] || [ "$TEMP_HOUR" -eq "3" ] || [ "$TEMP_HOUR" -eq "4" ]; then LC_HOUR="час+а"
elif [ "$CURR_HOUR" -eq "1" ] || [ "$TEMP_HOUR" -eq "1" ]; then LC_HOUR="час"
fi
if [ "$CURR_MIN" -eq "5" ] || [ "$CURR_MIN" -eq "6" ] || [ "$CURR_MIN" -eq "7" ] || [ "$CURR_MIN" -eq "8" ] || [ "$CURR_MIN" -eq "9" ] || [ "$CURR_MIN" -eq "11" ] || [ "$CURR_MIN" -eq "12" ] || [ "$CURR_MIN" -eq "13" ] || [ "$CURR_MIN" -eq "14" ] || [ "$TEMP_MIN" -eq "0" ] || [ "$TEMP_MIN" -eq "5" ] || [ "$TEMP_MIN" -eq "6" ] || [ "$TEMP_MIN" -eq "7" ] || [ "$TEMP_MIN" -eq "8" ] || [ "$TEMP_MIN" -eq "9" ]; then LC_MINUTE="минут"
elif [ "$CURR_MIN" -eq "3" ] || [ "$CURR_MIN" -eq "4" ] || [ "$TEMP_MIN" -eq "3" ] || [ "$TEMP_MIN" -eq "4" ]; then LC_MINUTE="минуты"
fi
if [ "$CURR_MIN" -eq "1" ]; then DATE_TIME="$CURR_HOUR $LC_HOUR однa минута"
elif [ "$CURR_MIN" -eq "11" ]; then DATE_TIME="$CURR_HOUR $LC_HOUR $CURR_MIN $LC_MINUTE"
elif [ "$TEMP_MIN" -eq "1" ]; then DATE_TIME="$CURR_HOUR $LC_HOUR $(echo $CURR_MIN-1|bc) одна минута"
elif [ "$CURR_MIN" -eq "2" ]; then DATE_TIME="$CURR_HOUR $LC_HOUR две минуты"
elif [ "$CURR_MIN" -eq "12" ]; then DATE_TIME="$CURR_HOUR $LC_HOUR $CURR_MIN $LC_MINUTE"
elif [ "$TEMP_MIN" -eq "2" ]; then DATE_TIME="$CURR_HOUR $LC_HOUR $(echo $CURR_MIN-2|bc) две минуты"
elif [ "$CURR_MIN" -eq "00" ]; then DATE_TIME="$CURR_HOUR $LC_HOUR ровно"
else DATE_TIME="$CURR_HOUR $LC_HOUR $CURR_MIN $LC_MINUTE"
fi
}
# Получаем температуру в своем городе (у меня ближайший город Сольцы)
CURR_TEMP="`wget -t 1 -q -O -
http://www.gismeteo.ru/city/daily/12698/ | grep -m 1 '<div class="temp">' | sed -r 's/<div class="temp">(.[0-9]+).*/\1/g' | awk '{print $1}'`"
if [ "`echo $CURR_TEMP | sed -r 's/(.)[0-9]+/\1/g'`" == "-" ]; then TEMP_SIGN="минус"
else TEMP_SIGN=""
fi
CURR_DEGREE=""
CURR_DEGREE="`echo $CURR_TEMP | sed -r 's/.([0-9]+)/\1/g'`"
# Склоняем в соответствующем падеже слово "градус"
TEMP_DEGREE="`echo $CURR_DEGREE | colrm 1 1`"
if [ "$CURR_DEGREE" -eq "0" ] || [ "$CURR_DEGREE" -eq "5" ] || [ "$CURR_DEGREE" -eq "6" ] || [ "$CURR_DEGREE" -eq "7" ] || [ "$CURR_DEGREE" -eq "8" ] || [ "$CURR_DEGREE" -eq "9" ] || [ "$CURR_DEGREE" -eq "11" ] || [ "$CURR_DEGREE" -eq "12" ] || [ "$CURR_DEGREE" -eq "13" ] || [ "$CURR_DEGREE" -eq "14" ] || [ "$TEMP_DEGREE" -eq "0" ] || [ "$TEMP_DEGREE" -eq "5" ] || [ "$TEMP_DEGREE" -eq "6" ] || [ "$TEMP_DEGREE" -eq "7" ] || [ "$TEMP_DEGREE" -eq "8" ] || [ "$TEMP_DEGREE" -eq "9" ]; then LC_DEGREE="градусов"
elif [ "$CURR_DEGREE" -eq "2" ] || [ "$CURR_DEGREE" -eq "3" ] || [ "$CURR_DEGREE" -eq "4" ] || [ "$TEMP_DEGREE" -eq "2" ] || [ "$TEMP_DEGREE" -eq "3" ] || [ "$TEMP_DEGREE" -eq "4" ]; then LC_DEGREE="градуса"
elif [ "$CURR_DEGREE" -eq "1" ] || [ "$TEMP_DEGREE" -eq "1" ]; then LC_DEGREE="градус"
else LC_DEGREE="не известна"
fi
check_date
# Склоняем в соответствующем падеже число
CURR_DAY=`date +%d`
if [ "$CURR_DAY" -eq "1" ]; then LC_DAY="пер вае"
elif [ "$CURR_DAY" -eq "2" ]; then LC_DAY="второее"
elif [ "$CURR_DAY" -eq "3" ]; then LC_DAY="третье"
elif [ "$CURR_DAY" -eq "4" ]; then LC_DAY="четвёртое"
elif [ "$CURR_DAY" -eq "5" ]; then LC_DAY="пятое"
elif [ "$CURR_DAY" -eq "6" ]; then LC_DAY="шестое"
elif [ "$CURR_DAY" -eq "7" ]; then LC_DAY="седьмое"
elif [ "$CURR_DAY" -eq "8" ]; then LC_DAY="восьмое"
elif [ "$CURR_DAY" -eq "9" ]; then LC_DAY="девятое"
elif [ "$CURR_DAY" -eq "10" ]; then LC_DAY="десятое"
elif [ "$CURR_DAY" -eq "11" ]; then LC_DAY="одиннадцатое"
elif [ "$CURR_DAY" -eq "12" ]; then LC_DAY="двен+адцатое"
elif [ "$CURR_DAY" -eq "13" ]; then LC_DAY="тринадцатое"
elif [ "$CURR_DAY" -eq "14" ]; then LC_DAY="четырнадцатое"
elif [ "$CURR_DAY" -eq "15" ]; then LC_DAY="пятнадцатое"
elif [ "$CURR_DAY" -eq "16" ]; then LC_DAY="шестнадцатое"
elif [ "$CURR_DAY" -eq "17" ]; then LC_DAY="семн+адцатое"
elif [ "$CURR_DAY" -eq "18" ]; then LC_DAY="восемнадцатое"
elif [ "$CURR_DAY" -eq "19" ]; then LC_DAY="девятнадцатое"
elif [ "$CURR_DAY" -eq "20" ]; then LC_DAY="двадцатое"
elif [ "$CURR_DAY" -eq "21" ]; then LC_DAY="двадцать первое"
elif [ "$CURR_DAY" -eq "22" ]; then LC_DAY="двадцать второее"
elif [ "$CURR_DAY" -eq "23" ]; then LC_DAY="двадцать третье"
elif [ "$CURR_DAY" -eq "24" ]; then LC_DAY="двадцать четвёртое"
elif [ "$CURR_DAY" -eq "25" ]; then LC_DAY="двадцать пятое"
elif [ "$CURR_DAY" -eq "26" ]; then LC_DAY="двадцать шестое"
elif [ "$CURR_DAY" -eq "27" ]; then LC_DAY="двадцать седьмое"
elif [ "$CURR_DAY" -eq "28" ]; then LC_DAY="двадцать восьмое"
elif [ "$CURR_DAY" -eq "29" ]; then LC_DAY="двадцать девятое"
elif [ "$CURR_DAY" -eq "30" ]; then LC_DAY="тридцатое"
elif [ "$CURR_DAY" -eq "31" ]; then LC_DAY="тридцать пер вае"
else LC_DAY="$CURR_DAY хозяин Дмитрий ещё не склонил сегодняшнее число"
fi
# Склоняем в соответствующем падеже месяц
CURR_MON=`date +%m`
if [ "$CURR_MON" -eq "1" ]; then LC_MON="января"
elif [ "$CURR_MON" -eq "2" ]; then LC_MON="февраля"
elif [ "$CURR_MON" -eq "3" ]; then LC_MON="марта"
elif [ "$CURR_MON" -eq "4" ]; then LC_MON="апреля"
elif [ "$CURR_MON" -eq "5" ]; then LC_MON="мая"
elif [ "$CURR_MON" -eq "6" ]; then LC_MON="июня"
elif [ "$CURR_MON" -eq "7" ]; then LC_MON="июля"
elif [ "$CURR_MON" -eq "8" ]; then LC_MON="августа"
elif [ "$CURR_MON" -eq "9" ]; then LC_MON="сентября"
elif [ "$CURR_MON" -eq "10" ]; then LC_MON="октября"
elif [ "$CURR_MON" -eq "11" ]; then LC_MON="ноября"
elif [ "$CURR_MON" -eq "12" ]; then LC_MON="декабря"
else LC_MON="$CURR_MON хозяин Дмитрий ещё не склонил текущий месяц"
fi
if [ "$LC_DEGREE" = "не известна" ]; then
CURR_SAY="Сообщаю, сейчас $DATE_TIME, Сегодня `date +%A` $LC_DAY $LC_MON"
else
CURR_SAY="Сообщаю, сейчас $DATE_TIME, Сегодня `date +%A` $LC_DAY $LC_MON Температура воздуха в Сольцах $TEMP_SIGN $CURR_DEGREE $LC_DEGREE"
fi
echo "$CURR_SAY" | festival --tts --language russian
exit 0