Google-будильник update

Будильник можно скачать тут https://github.com/irenicaa/google-budilnik

Теперь говорит общую загруженность дорог на данный момент и читает новости с лентару. Точнее только заголовки от новостей.

Загруженность дорог берем с мобильной версии яндекса — scripts/road.sh

Новости — scripts/news.sh Ссылку на ленту rss, можно заменять на любой другой rss. Работает по принципу выбрать все заголовки, они же , срезаем теги и весь лист отдаем гуглу на чтение

Теперь под будильник будет отдельная рубрика

Текущий функционал:

-Погода
-Работоспособность метрополитена
-Курс бакса
-Уровень пробок
-Новости

Github и google-будильник

Я завела себе github.

Первые правки в google-будильнике. Раз теперь просмотр курса бакса стало мейнстримом, то будем читать курс доллара и насколько он изменился.

Курс вечнозеленых извлекаю при помощи curl и регулярок с мобильной версии яндекса. Мобильная версия выбрана за более простой парсинг и маленький вес стрнички. Скрипт живет в отдельном файле, дабы не захламлять основной скрипт и чтобы было удобнее его читать и развивать.

Будильник с google

Буду как всегда не многословна. Наклепала будильник на баше.

Что умеет — вещает голосом гугла погоду с рамблера. У них там всякие милые фразочки проскальзывают, в духе «не забудьте шарф», «одевайтесь теплее». Милота.
И еще грепает по твиттеру сообщения с чп в метро и если находит оповестит меня с утра об этом. Будет лишний повод дома остаться.

Работает на mplayer. А живет эта конструкция на одноплатнике.

Состоит из 2 скриптов. 1 парсит и читает погоду, другой парсит метро, в крон нужно оба.

скрипт для погоды и чтения
#!/bin/bash

n=`curl http://weather.rambler.ru/ | cat -n | grep "dayName: 'сегодня'" | awk '{print $1}'`;
let "n = $n - 1";
txt=`curl http://weather.rambler.ru/ | cat -n | sed -n "$n,135 p"`

day=`echo $txt | tr "," "\n" | awk '{ sub($1." ",""); print $0 }' | grep -E "^day:" | awk '{print $2}'`
month=`echo $txt | tr "," "\n" | awk '{ sub($1." ",""); print $0 }' | grep -E "month:" | awk '{print $2}' | sed -e "s;';;g;/^$/d"`
dayname=`echo $txt | tr "," "\n" | awk '{ sub($1." ",""); print $0 }' | grep -E "weekday:" | awk '{print $2}' | sed -e "s;';;g;/^$/d"`
description=`echo $txt | tr "," "\n" | awk '{ sub($1." ",""); print $0 }' | grep -E "description:" | sed -e "s;';;g;/^$/d" | awk '{ sub($1." ",""); print $0 }'`
wet=`echo $txt | tr "{" "\n" | grep Ветер | sed -e 's;.*speed: ;;g' | awk '{print $1}' | head -1`
toolTip=`echo $txt | tr "," "\n" | awk '{ sub($1." ",""); print $0 }' | grep -E "toolTip" | sed -e "s;';;g;/^$/d" | awk '{ sub($1." ",""); print $0 }' | tr "\n" " " | sed -e 's;.*\.;;g'`
toolTip1=`echo $txt | tr "," "\n" | awk '{ sub($1." ",""); print $0 }' | grep -E "toolTip" | sed -e "s;';;g;/^$/d" | awk '{ sub($1." ",""); print $0 }' | tr "\n" " " | sed -e 's;\..*;;g'`
if [ "$dayname" == "пн" ]
then
dayname="понедельник"
fi

if [ "$dayname" == "вт" ]
then
dayname="вторник"
fi

if [ "$dayname" == "ср" ]
then
dayname="среда"
fi

if [ "$dayname" == "чт" ]
then
dayname="четверг"
fi

if [ "$dayname" == "пт" ]
then
dayname="пятница"
fi

if [ "$dayname" == "сб" ]
then
dayname="суббота"
fi

if [ "$dayname" == "вс" ]
then
dayname="воскресенье"
fi
min=`echo $txt | tr "}" "\n" | cat -n | grep " t: {" | tr "," "\n" | grep min | sed -e 's;.*min:;;g'`
max=`echo $txt | tr "}" "\n" | cat -n | grep " t: {" | tr "," "\n" | grep max | awk '{print $3}'`

count=`cat ~/weather/metro.info | sort | uniq | wc -l`

mplayer ~/weather /1.mp3
mplayer "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q=сегодня $dayname, $day $month"
mplayer "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q=ожидается температура от $min до $max, Ветер $wet м/с."
mplayer "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q=$description"
mplayer "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q=$toolTip1"
mplayer "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q=$toolTip"
mplayer /root/weather/1.mp3
if [ "$count" -ge "5" ]
then
mplayer "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q=метро сломалось, смотри тви"
mplayer ~/weather/1.mp3
fi

:>~/weather/metro.info

Скрипт для метро. Большая и страшная регулярка.

#!/bin/bash

curl -ssl "https://twitter.com/search?f=realtime&q=%23%D0%BC%D0%B5%D1%82%D1%80%D0%BE&src=typd" | grep -E -o "js-tweet-text tweet-text.*< \/p>" | sed -e 's;[>< \"=-]; ;g;s;js tweet text tweet text lang ru data aria label part 0;;g;s;/a;;g;s;\/\(a\|p\); ;g;s;\(.span\|.strong\|class\|twitter\|timeline\|link\|js display url\|invisible|\tco ellipsis\|href\|nofollow\|dir\|ltr\|data\|expanded\|url\|invisible\|tco\|ellipsis\|google&amp\;utm_medium\|banner&amp\;utm_campaign\|business_news\|target\|_blank\|title\|atreply\|pretty\|&nbsp\;\|rel\|s\|?utm_source\|draggable\|false\|alt\|aria\|label\|u\|hidden\|pre\|embedded|\true\|b\|a\|qery\|orce\|hahtag_click\|hahtag\|j\|nav\|emedded\|tre\|&qot\;\|emedded\|tre\|rc\|hh\|qery\|orce\|hhtg_click\|hhtg\|img\);;g;s; ; ;g;s;&#10\; ;;g;s;&qot\;;;g;s;emedded;;g;s;tre;;g;s; \/ ;;g;s;hhtg_click hhtg;;g;s;hh;;g;s;qery oe;;g;s;\/tg\/[a-zA-Z]*;;g;s;tweet;;g;s;text;;g;s;lng;;g;s;nd;;g;s;prt;;g;s;#;;g;s;http://intgrm.com\s\/[a-zA-Z0-9]*\/;;g;s; http://intgrm.com;;g;s;http:// intgrm.com \/;;g;s;%[a-zA-Z0-9%]*?;;g;s; *; ;g' | grep -E -i "жертв|авари|ЧП|чп|неполадки|перебои|ликвидаци|интервал|светофор|стрелка|катастрофа|час пик|перекрыт|остановлен|интервал|не ходят|ремонт|приостановлено|сбой|неисправ|сломался поезд|бомб|взрыв|теракт|затруднен|приостанов" >> ~/weather/metro.info

в роли 1.mp3 может быть любой короткий звук, для привлечения внимания