Комментарии 30
Я делал такое же, только погоду с прогнозом у меня запрашивал stm32 и выводил результат на небольшой дисплей
Планирует ли автор выложить полный исходный код приложения на гитхаб? Будут ли рассматриваться пулл-рекввесты сообщества? Готовы ли юнит-тесты для полноценной интеграции?
Нужные десктопные уведомления, где интерефейс доступа? Или это бэкенд? А какие базы данных поддерживаются? Очень нужна %database_name%!!1
Как и обещал — всё очень просто.
Рассматривает ли автор возможность миграции на более производительную платформу разработки?
Есть готовые наработки для bash :-P
#!/bin/bash
set -euf -o pipefail
API_KEY="mew"
LOCATION="Petersburg,RU"
exec 99<> /dev/tcp/api.openweathermap.org/80
echo -e "GET /data/2.5/find?q=${LOCATION}&type=like&APPID=${API_KEY} HTTP/1.1\r\nhost: api.openweathermap.org\r\nConnection: close\r\n\r\n" >&99
HTTP_ANSWER_WITH_HEADERS=`cat <&99`
JSON_OUTPUT=${HTTP_ANSWER_WITH_HEADERS#*POST}
WEATHER_DESC=`echo $JSON_OUTPUT | jq '.list[0].weather[0].description'`
notify-send "It's ${WEATHER_DESC} at ${LOCATION}"
Проверил — Ваш скрипт работает. Пришлось, правда, поставить утилитку jq, которой у меня не оказалось. И заработало. Спасибо за вклад в дело получения метео. Только я не вполне понял Ваши вопросы насчёт юнит-тестов, бэкэнда и пр. Я то зашёл в эту тему из python'а. Узнал, что есть такой сервис OpenWeatherMap, удалось получить текущую температуру, которая на удивление соответствовала окружающей меня действительности. В python'е нашлась хорошая библиотека requests, которая позволила не только запрос сделать, а ещё и распарсить JSON-формат. Подумал, что кому-нибудь ещё может быть интересно, что 1) существует такой общественный сервис, в который каждый желающий может выложить собственную метео-информацию о погоде (идея сама по себе интересная); 2) сервисом OpenWeatherMap можно воспользоваться для получения разного вида информации (в том числе на bash'е), и это достаточно просто делается; 3) примитивный, но работающий код на python'е. И ещё подумал, что, может, кому-нить это может быть интересно, поэтому этим всем я решил поделиться. Где-то есть прокол в моих соображениях?
Я думаю romangoward сарказмирует. А причина сарказма, это банальная статья из разряда практически hello world. Получение прогноза погоды, это наверное то, что делал почти каждый, изучая программирование (раньше в вебе информер прогноза погоды висел почти на всех сайтах).
curl wttr.in
http://trytoguide.me/post/12 — тот же openweather, только по координатам
Вот спасибо! По ссылке есть код на python'е! Используются две библиотеки urllib и json. И я тоже сначала этот вариант использовал. Но потом нашел более симпатичную альтернативу — библиотеку requests. И ещё подробно описан процесс регистрации. Ну, и недостаток моего кода решён — сделан перевод на русский текстов с описанием погоды. Хотя, думаю, красивее было бы использовать не if'ы, а dictionary для этой цели. Спасибо за полезный вклад!
На онлайн-курсах teamtreehouse.com есть интересный — и достаточно компактный — учебный проект под Андроид, там прогноз погоды на основе API к сайту forecast.io
Там прогноз на неделю, и по часам на ближайшие сутки с половиной.
Я его делал в немного расширенном виде — прикрутил еще геолокацию, чтобы показывать погоду в текущей точке. На своем телефоне сам пользовался. А вот чего не знаю — это какой источник данных точнее. Forecast.io — скажем так, на четверку с минусом. А как насчет openweathermap.org?
Там прогноз на неделю, и по часам на ближайшие сутки с половиной.
Я его делал в немного расширенном виде — прикрутил еще геолокацию, чтобы показывать погоду в текущей точке. На своем телефоне сам пользовался. А вот чего не знаю — это какой источник данных точнее. Forecast.io — скажем так, на четверку с минусом. А как насчет openweathermap.org?
Интересно будет посмотреть Вашу реализацию с forecast.io. Спасибо! Насчёт точности openweathermap — не знаю. Судя по статье от 2012 года, на российской территории станций маловато, поэтому и с точностью должны быть проблемы. Вряд ли за 4 года ситуация кардинальным образом изменилась. А вот западнее — насчёт Европы — точность должна быть лучше. Там с метео-станциями всё очень неплохо.
Шёл 2016ый. Люди начали пользоваться api.
Шёл 2016-й. А некоторые люди всё ещё только учатся ходить.
Вы умеете api? Это очень хорошо! Так научите меня тому, что Вы умеете. Чему я научился, тем и делюсь. Много материала, где есть общие идеи, намёки, а мне, который учится ходить, хотелось бы поподробнее, с объяснением деталей. Это вот я, как для себя и написал. Или, как если бы я это сыну объяснял. По-моему такой стиль изложения вполне имеет право на жизнь.
Вы умеете api? Это очень хорошо! Так научите меня тому, что Вы умеете. Чему я научился, тем и делюсь. Много материала, где есть общие идеи, намёки, а мне, который учится ходить, хотелось бы поподробнее, с объяснением деталей. Это вот я, как для себя и написал. Или, как если бы я это сыну объяснял. По-моему такой стиль изложения вполне имеет право на жизнь.
По-моему вы не очень поняли что хабр это всё-таки не личный бложик и поделки уровня hello world всё-таки тут не нужны. Ну а если вы сами учитесь (складывается такое впечатление по камментам) — это то же не самое лучше место.
Вопрос чуть в сторону от темы статьи:
можно ли на этом сайте узнать, какая была погода в конкретный день в определенном городе (например, в Москве год назад 15.11.2015)?
можно ли на этом сайте узнать, какая была погода в конкретный день в определенном городе (например, в Москве год назад 15.11.2015)?
Там есть такая штука: http://openweathermap.org/history
Только эта информация платная. «Historical data is available for 1 month previous in Starter account ($40), for 1 year previous in Medium accounts ($180), and is 5 and more year previous in Advanced accounts ($470)». Если нужна информация годичной давности, то подписка стоит $180 в месяц.
Только эта информация платная. «Historical data is available for 1 month previous in Starter account ($40), for 1 year previous in Medium accounts ($180), and is 5 and more year previous in Advanced accounts ($470)». Если нужна информация годичной давности, то подписка стоит $180 в месяц.
Каждый раз, когда url для requests.get собираетcя конкатенацией (ну или форматированием) строки, где-то умирает зайчонок.
requests.get(«http://api.openweathermap.org/data/2.5/weather», params={'app_id': app_id, 'q':'Moscow,RU', 'units':'metric'})
Пожалуйста, пожалейте зайчих.
requests.get(«http://api.openweathermap.org/data/2.5/weather», params={'app_id': app_id, 'q':'Moscow,RU', 'units':'metric'})
Пожалуйста, пожалейте зайчих.
Чтобы ответ приходил на русском добавьте
lang=ru
к строке запроса.Когда я изучал Питон на Степике (курс Python: основы и применение), в качестве примера работы с API в уроке 3.6 (ссылка:https://stepik.org/lesson/API-24476/step/2?course=Python-%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D1%8B-%D0%B8-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5&unit=6781 ), как раз рассматривался пример получения данных из OpenWeatherMap.org.
Ничто не ново под луной… (с)
Ничто не ново под луной… (с)
Похоже прикрыли лавочку.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Узнаем текущую погоду и прогноз простеньким скриптом на Python'е