Advertisement
fo1k

Festival weather

Nov 4th, 2012
835
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.64 KB | None | 0 0
  1. #!/bin/bash
  2. # Здесь надо вставить свою ссылку с worldweatheronline.com, для этого достаточно зарегестрироваться. Выбрать формат csv
  3. LINK='Персональная ссылка'
  4. wget -nv -O /tmp/weather $LINK
  5.  
  6. # Прогноз на сегодняшний день
  7. TEMP_NOW=`cat /tmp/weather | awk NR==9 | cut -f 2 -d \,` # Температура сейчас
  8. TEMP_MAX=`cat /tmp/weather | awk NR==10 | cut -f 2 -d \,` # Максимальная температура
  9. TEMP_MIN=`cat /tmp/weather | awk NR==10 | cut -f 4 -d \,` # Минимальная температура
  10. WIND_SPEED=`cat /tmp/weather | awk NR==10 | cut -f 7 -d \,` # Скорость ветра в км/ч
  11. WIND_SPEED=`echo $WIND_SPEED/3.6 | bc -l | sed 's/+//g' | sed 's/-//g' | awk '{ split($0, n, "."); print n[1] + (substr(n[2], 1, 1) >= 5 ? 1 : 0) }'` # Перевод скорости ветра в м/с
  12. WIND_RUMB=`cat /tmp/weather | awk NR==10 | cut -f 9 -d \,` # Направление ветра
  13. DESCR=`cat /tmp/weather | awk NR==10 | cut -f 12 -d \,` # Описание погоды
  14.  
  15. PLUS_MINUS=`echo $TEMP_NOW | sed 's/-/минус/' | sed 's/[0-9]//g'` # Меняет символ "-" на "минус"
  16. TEMP_NOW=`echo $TEMP_NOW | sed 's/-//'` # Удаляет "-"
  17.  
  18. case "$TEMP_NOW" in
  19.     [0]|[5-9]|1?|20|2[5-9]|30|3[5-9]|40|4[5-9]      ) echo Температура на улице $PLUS_MINUS $TEMP_NOW градусов. | festival --tts --language russian;;
  20.     [2-4]|2[2-4]|3[2-4]|4[2-4]              ) echo Температура на улице $PLUS_MINUS $TEMP_NOW градуса. | festival --tts --language russian;;
  21.     1|21|31|41                      ) echo Температура на улице $PLUS_MINUS $TEMP_NOW градус. | festival --tts --language russian;;
  22. esac
  23.  
  24. PLUS_MINUS=`echo $TEMP_MAX | sed 's/-/минус/' sed 's/[0-9]//g'`
  25. TEMP_MAX=`echo $TEMP_MAX | sed 's/-//'`
  26.  
  27. case "$TEMP_MAX" in
  28.     [0]|[5-9]|1?|20|2[5-9]|30|3[5-9]|40|4[5-9]      ) echo Максимальная температура сегодня $PLUS_MINUS $TEMP_MAX градусов. | festival --tts --language russian;;
  29.     [2-4]|2[2-4]|3[2-4]|4[2-4]              ) echo Максимальная температура сегодня $PLUS_MINUS $TEMP_MAX градуса. | festival --tts --language russian;;
  30.     1|21|31|41                      ) echo Максимальная температура сегодня $PLUS_MINUS $TEMP_MAX градус. | festival --tts --language russian;;
  31. esac
  32.  
  33. PLUS_MINUS=`echo $TEMP_MIN | sed 's/-/минус/' | sed 's/[0-9]//g'`
  34. TEMP_MIN=`echo $TEMP_MIN | sed 's/-//'`
  35.  
  36. echo Минимальная $PLUS_MINUS $TEMP_MIN. | festival --tts --language russian # Укороченный вариант секции, что снизу закоментированна
  37.  
  38. #case "$TEMP_MIN" in
  39. #   [0]|[5-9]|1?|20|2[5-9]|30|3[5-9]|40|4[5-9]      ) echo Минимальная $PLUS_MINUS $TEMP_MIN градусов | festival --tts --language russian;;
  40. #   [2-4]|2[2-4]|3[2-4]|4[2-4]              ) echo Минимальная $PLUS_MINUS $TEMP_MIN градуса | festival --tts --language russian;;
  41. #   1|21|31|41                      ) echo Минимальная $PLUS_MINUS $TEMP_MIN градус | festival --tts --language russian;;
  42. #esac
  43.  
  44. # Здесь надо добавить остальное описание
  45. case "$DESCR" in
  46.     "Light sleet"                       ) echo дождь со снегом | festival --tts --language russian;;
  47.     "Overcast"                      ) echo Облачно | festival --tts --language russian;;
  48. esac
  49.  
  50. # Ветер
  51. case "$WIND_SPEED" in
  52.     [5-9]|1?|20|2[5-9]|30|3[5-9]|40|4[5-9]          ) METR="метров";;
  53.     [2-4]|2[2-4]|3[2-4]|4[2-4]              ) METR="метра";;
  54.     1|21|31|41                      ) METR="метр";;
  55. esac
  56.  
  57. # Так как не охота заморачиваться со всякими северо-северо-востоками, будет так
  58. case "$WIND_RUMB" in
  59.     N           ) WIND_RUMB="северный";;
  60.     NNE                 ) WIND_RUMB="северный";;
  61.     NE          ) WIND_RUMB="северо-восточный";;
  62.     ENE             ) WIND_RUMB="северо-восточный";;
  63.     E           ) WIND_RUMB="восточный";;
  64.     ESE             ) WIND_RUMB="восточный";;
  65.     SE          ) WIND_RUMB="юго-восточный";;
  66.     SSE         ) WIND_RUMB="юго-восточный";;
  67.     S           ) WIND_RUMB="южный";;
  68.     SSW             ) WIND_RUMB="южный";;
  69.     SW          ) WIND_RUMB="юго-западный";;
  70.     WSW         ) WIND_RUMB="юго-западный";;
  71.     W           ) WIND_RUMB="западный";;
  72.     WNW         ) WIND_RUMB="западный";;
  73.     NW          ) WIND_RUMB="северо-западный";;
  74.     NNW         ) WIND_RUMB="северо-западный";;
  75. esac
  76.  
  77. echo Ветер $WIND_RUMB $WIND_SPEED $METR в секунду. | festival --tts --language russian
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement