Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Дата, время, погода (pogoda.yandex.ru)
- TMP_FILE="/tmp/date_time_weather"
- if [ -f $TMP_FILE ]
- then notify-send --icon=dialog-information ЯНДЕКС-ПОГОДА "Скрипт уже запущен"
- exit 0
- fi
- curl -s -L -o $TMP_FILE --url pogoda.yandex.ru/moscow
- # wget --user-agent="Mozilla/5.0" -q -O - https://pogoda.yandex.ru/moscow/ > $TMP_FILE
- if [ ! -s $TMP_FILE ]
- then notify-send --icon=dialog-information "Данные о погоде недоступны."
- rm $TMP_FILE
- exit 0
- fi
- sed 's/<\/span>//g;s/<\/[^>]*>/&\n/g' -i $TMP_FILE
- # sed '1,39d;60,$d' -i $TMP_FILE
- # Температура
- TEMP=$(cat $TMP_FILE | grep -m 1 'temp fact__temp' | sed 's/<[^>]*>//g;s/°//')
- case $TEMP in
- +*) TEMP_SIGN="плюс" ; DEGREE=$(echo $TEMP | colrm 1 1) ;;
- −*) TEMP_SIGN="минус" ; DEGREE=$(echo $TEMP | colrm 1 1) ;;
- *) TEMP_SIGN="" ; DEGREE=$TEMP ;;
- esac
- case $DEGREE in
- 1 | [2-9]1) UNIT_D="градус" ;;
- [234] | [02-9][234]) UNIT_D="градуса" ;;
- *) UNIT_D="градусов" ;;
- esac
- # Погодные условия
- WEATH=$(cat $TMP_FILE | grep -m 1 'link__condition day-anchor i-bem' | sed 's/<[^>]*>//g')
- # Ветер
- if [[ $(cat $TMP_FILE | grep -m 1 'Штиль') = "" ]] ; then
- WIND_DIR=$(cat $TMP_FILE | grep '"wind-speed"' | awk '{ print $9 }' | sed 's/".*$//g')
- WIND=$(cat $TMP_FILE | grep '"wind-speed"' | sed 's/<[^>]*>//g' | awk '{ print $1 }')
- WIND=$(echo $WIND | sed 's/\([0-9]\),0/\1/;s/\([0-9],\)1/\1 и одна десятая/;s/\([0-9],\)\([3-9]\)/\1 и \2 десятых/;s/\([0-9],\)2/\1 и две десятых/')
- else
- WIND_DIR="штиль"
- WIND=0
- fi
- echo $WIND_DIR
- case $WIND in
- 1 | [2-9]1) UNIT_W="метр" ;;
- [05-9] | [02-9][05-9]) UNIT_W="метров" ;;
- *) UNIT_W="метра" ;;
- esac
- # Атмосферное давление
- PRESS=$(cat $TMP_FILE | grep -m 1 'мм рт. ст.' | sed 's/<[^>]*>//g;s/ мм рт. ст.//')
- case $PRESS in
- ?[02-9]1) UNIT_P="миллиметр" ;;
- ?[02-9][234]) UNIT_P="миллиметра" ;;
- *) UNIT_P="миллиметров" ;;
- esac
- # Влажность
- #HUMID=$(cat $TMP_FILE | grep '%</dd>' | sed 's/<[^>]*>//g;s/%//')
- HUMID=$(cat $TMP_FILE | grep 'Влажность:' | awk '{ print $4 }' | sed 's/%"//g')
- case $HUMID in
- 1 | [2-9]1) UNIT_HUM="процент" ;;
- [234] | [02-9][234]) UNIT_HUM="процента" ;;
- *) UNIT_HUM="процентов" ;;
- esac
- MAGNET=$(cat $TMP_FILE | grep -o 'Магнитная буря')
- if [ $MAGNET="" ]
- then
- MAGNET=$(cat $TMP_FILE | sed 's/<[^>]*>//g' | grep -m 3 ' поле')
- fi
- # Дата и время
- NUM=$(date +%-d)
- case $NUM in
- 1) DAY="первое" ;;
- 2) DAY="второе" ;;
- 3) DAY="третье" ;;
- 4) DAY="четвёртое" ;;
- 5) DAY="пятое" ;;
- 6) DAY="шестое" ;;
- 7) DAY="седьмое" ;;
- 8) DAY="восьмое" ;;
- 9) DAY="девятое" ;;
- 10) DAY="десятое" ;;
- 11) DAY="одиннадцатое" ;;
- 12) DAY="двенадцатое" ;;
- 13) DAY="тринадцатое" ;;
- 14) DAY="четырнадцатое" ;;
- 15) DAY="пятнадцатое" ;;
- 16) DAY="шестнадцатое" ;;
- 17) DAY="семнадцатое" ;;
- 18) DAY="восемнадцатое" ;;
- 19) DAY="девятнадцатое" ;;
- 20) DAY="двадцатое" ;;
- 21) DAY="двадцать первое" ;;
- 22) DAY="двадцать второе" ;;
- 23) DAY="двадцать третье" ;;
- 24) DAY="двадцать четвёртое" ;;
- 25) DAY="двадцать пятое" ;;
- 26) DAY="двадцать шестое" ;;
- 27) DAY="двадцать седьмое" ;;
- 28) DAY="двадцать восьмое" ;;
- 29) DAY="двадцать девятое" ;;
- 30) DAY="тридцатое" ;;
- 31) DAY="тридцать первое" ;;
- esac
- MON=$(date +%-m)
- case $MON in
- 1) MONTH="января" ;;
- 2) MONTH="февраля" ;;
- 3) MONTH="марта" ;;
- 4) MONTH="апреля" ;;
- 5) MONTH="мая" ;;
- 6) MONTH="июня" ;;
- 7) MONTH="июля" ;;
- 8) MONTH="августа" ;;
- 9) MONTH="сентября" ;;
- 10) MONTH="октября" ;;
- 11) MONTH="ноября" ;;
- 12) MONTH="декабря" ;;
- esac
- HOUR=$(date +%-H)
- case $HOUR in
- 1 | 21) UNIT_H="час" ;;
- [234] | 2[234]) UNIT_H="часа" ;;
- *) UNIT_H="часов" ;;
- esac
- TMP_MIN=$(date +%-M)
- case $TMP_MIN in
- 0) MIN="ровно" ;;
- 1) MIN="однa минута" ;;
- 2) MIN="две минуты" ;;
- [34]) MIN="$TMP_MIN минуты" ;;
- [2-5]1) MIN="$(($TMP_MIN-1)) однa минута" ;;
- [2-5]2) MIN="$(($TMP_MIN-2)) две минуты" ;;
- [2-5][34]) MIN="$TMP_MIN минуты" ;;
- *) MIN="$TMP_MIN минут" ;;
- esac
- # Чтение
- echo "Сегодня $(date +%A), $DAY $MONTH. Время $HOUR $UNIT_H $MIN. Температура за окном $TEMP_SIGN $DEGREE $UNIT_D. Ветер $WIND_DIR, $WIND $UNIT_W в секунду. Атмосферное давление $PRESS $UNIT_P ртутного столба. Относительная влажность воздуха $HUMID $UNIT_HUM. $WEATH. $MAGNET." | spd-say -w -e -o rhvoice #-y Anna -i 20 -r -10
- rm $TMP_FILE
- exit 0
Add Comment
Please, Sign In to add comment