Вставая по утрам, хотелось видеть текущий прогноз погоды. Причем так, как мне удобно и со временем заката. Также не хотелось лишний раз лезть в интернет и тратить на это время. Хотелось, чтобы прогноз был сразу показан на экране телефона, но без лишних виджетов, занимающих лишнее пространство на экране и создающих неудобства. И я решил создать приложение которое будет выводить данные о любой информации и не только по прогнозам, а вообще о всем в автоматическом режиме, как это делает Cron с помощью Wget. Так на свет появилось приложение GETauto.
Приложение использует регулярные выражения, поэтому я решил рассказать о использующихся регулярных выражениях и о том, как они могу упростить жизнь, как с использованием GETauto так и без него.
Также хотелось бы узнать мнение о нужности данного проекта, его развитии и о регулярных выражениях, которые стоит использовать. Либо просто хотелось бы узнать каких функций не хватает.
Параметры регулярных выражений можно посмотреть тут: https://en.wikipedia.org/wiki/Wikipedia:AutoWikiBrowser/Regular_expression
Основное что будем использовать, это экранирование символом "", запоминание ленивым выражением всего что в пределах скобок "(.+?)", либо пропуск элементов до совпадения тем же выражением, но без скобок ".+?" и вывод результатов $1...$9 и т.д.
Для каждого запроса есть три строчки. В первой, указывается URL адрес запроса. Во второй, регулярное выражение в формате аналогично preg_match() на php. В третий, указывается то, что вставляем из регулярного выражения, где $1 (1 — это номер) номер вставки аналогично номерам элементов массива из preg_match(). Если 2 и 3 строчки не заполнены, то выводится просто полученный HTML код. Если не заполнена 3 строчка, то выводятся все элементы массива. Там же можно задать время ежедневных запросов. Чтобы запрос выводил Push уведомления, необходимо проставить галочку в поле: «To send notifications of result GET request»
preg_match() — подробнее по ссылке: http://php.net/preg_match
Программа может сама включать Wi-Fi и/или мобильный интернет, если он не был до этого включен и отключить его, после выполнения запроса. Также программа может включать Bluetooth в момент, когда появляется Push уведомление, созданное программой. И выключает Bluetooth, если уведомление убрано.
Курсы валют Центробанка по расписанию
1-е поле:
http://www.cbr.ru/scripts/XML_daily.asp
2-е поле:
USD.+?<Value>(.+?)<.+?EUR.+?<Value>(.+?)<
3-е поле:
USD $1 / EUR $2
Прогноз погоды по расписанию
В программе можно задать получение прогноза погоды по расписанию. При этом можно задать автоматическое включение Wi-Fi и / или мобильного интернета. Когда данные будут получены, все автоматические отключится.
Прогноз погоды на СЕЙЧАС:
1-е поле:
http://api.worldweatheronline.com/free/v2/weather.ashx?q=Moscow,RU&format=json&lang=ru&num_of_days=1&key={id}
2-е поле:
value": "(.+?)".*?temp_C": "(.+?)".*?windspeedKmph": "(.+?)".*?sunrise": "(.+?) .*?sunset": "(.+?)"
3-е поле:
$2° $3км/ч $5 $1
Прогноз погоды на 5 дней (отрывается при нажатии на Push уведомление):
1-е поле:
http://api.worldweatheronline.com/free/v2/weather.ashx?q=Moscow,RU&format=json&num_of_days=5&lang=ru&tp=24&key={id}
2-е поле:
sunrise": "(.+?)".+?sunset": "(.+?)".+?date": "(.+?)".+?«humidity»: "(.+?)".+?lang_ru.+?value": "(.+?)".+?«pressure»: "(.+?)".+?«tempC»: "(.+?)".+?windspeedKmph": "(.+?)"
3-е поле:
$3nТемпература: $7° C $5nДавление: $6 Па ветер: $8 км/ч влажность: $4nРассвет в $1 и закат в $2nn
Город можно указать любой, написав его название на английском. Вместо {id} указывается личный идентификатор (на сайте называется «key») полученный на сайте бесплатно и сразу после регистрации: developer.worldweatheronline.com/auth/register
Анекдоты по кнопке
Получение топа 10 анекдотов лучше сделать нажатием по иконке, чтобы получать его в нужное время.
Ежедневный ТОП 10 анекдотов (отрывается при нажатии на Push уведомление):
1-е поле:
http://www.anekdot.ru/rss/export_j.xml
2-е поле:
CDATA[(.+?)]
3-е поле:
$1nn
Этим возможности программы не ограничиваются представленными запросами. При чем, информация может выводиться с помощью тех же уведомлений на умные часы. А для большего удобства по мимо автоматического включения и отключения интернета предусмотрено и автоматическое включение и отключение Bluetooth в зависимости от того отображается ли уведомление.
Также можно выводить любую информацию с любых сайтов или просто делать запросы по указанным адресам (например для открытия ворот гаража, управления светом в квартире и т.д.) и создать свой экран с иконками для выполнения запросов.
Программа в Google Play: ссылка
Если интересен данный проект, прошу поделиться регулярными выражениями (3-и строки: источник, регулярное выражение, вывод результатов).
Автор: vshishakin