BigAp.ru — интернет-магазин электроники и бытовой техники

Автор Тема: Прогноз погоды в боте Telegram  (Прочитано 372 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Stan

  • Юзер
  • *
  • Сообщений: 1
  • Karma: +0/-0
    • Share Post
Прогноз погоды в боте Telegram
« : Июль 31, 2016, 03:08:32 pm »
ДД Камрады!

Ради интереса сделал себе бота который спамит сообщения с стены одной группы в вк. Теперь вот хочется прикрутитьк нему сервис с прогнозом погоды, чтобы бот каждый час отправлять погоду по конкретной локации. На пример какая сейчас погода в Алматы. Побывал гуглить на эту тему, но не чего конкретного не нашел в этих наших интернетах.

В общем нужна помощь. :smile3:


 

Оффлайн sysadmin

  • Administrator
  • сисадми́н
  • *****
  • Сообщений: 8224
  • Karma: +112/-0
  • Пол: Мужской
    • Share Post
    • сайт для сис. админов и не только...
Re: Прогноз погоды в боте Telegram
« Ответ #1 : Август 01, 2016, 10:40:59 am »
Можно юзать функционал от Яндекс, коды городов можно посмотреть здесь:
https://pogoda.yandex.ru/static/cities.xml
Получить xml можно так:
https://export.yandex.ru/bar/reginfo.xml?region=Almaty
Как это выглядит в web'е"
https://pogoda.yandex.ru/almaty/details
Вытащить данные можно использовать bash, пока писал пост, родился такой скрипт:
#!/bin/bash
# Author: Yevgeniy Goncharov aka xck, http://sys-adm.in
# Get weather from yandex

# Get yandex weather xml
curl -s https://export.yandex.ru/bar/reginfo.xml?region=Almaty > ya.xml && sed -i -n '/<day_part typeid=\"1\"/,/<\/day_part>/p' ya.xml

# Get weather types
TYPE=$(cat ya.xml | grep weather_type | sed -e 's/<[^>]*>//g')
TEMP=$(cat ya.xml | grep temperature | sed -e 's/<[^>]*>//g' | head -1)
CITY=$(cat ya.xml | grep time_zone | sed -e 's/<[^>]*>//g')

# Remove spaces
RESULT=$(echo "$CITY $TYPE $TEMP°" | tr -s " ")

# Data to screen
echo $RESULT
https://github.com/m0zgen/get-weather

Результат  работы:
./get-weather.sh 
Asia/Almaty переменная облачность +20°
дорогу осилит идущий...
......................
MCP, MCTS, RHCSA
......................
also aka xck...

Оффлайн sysadmin

  • Administrator
  • сисадми́н
  • *****
  • Сообщений: 8224
  • Karma: +112/-0
  • Пол: Мужской
    • Share Post
    • сайт для сис. админов и не только...
Re: Прогноз погоды в боте Telegram
« Ответ #2 : Август 01, 2016, 10:46:29 am »
Далее отправляешь данные из скрипта, как то так:
curl -s --max-time 10 -d "chat_id=$CHATID&disable_web_page_preview=1&text=$RESULT" https://api.telegram.org/bot$KEY/sendMessage >/dev/null

Оффлайн sysadmin

  • Administrator
  • сисадми́н
  • *****
  • Сообщений: 8224
  • Karma: +112/-0
  • Пол: Мужской
    • Share Post
    • сайт для сис. админов и не только...
Re: Прогноз погоды в боте Telegram
« Ответ #3 : Август 01, 2016, 11:13:14 am »
Обновил скрипт - https://github.com/m0zgen/get-weather/blob/master/get-weather.sh, далее добавляешь этот скрипт в крон с интервалом в час, если необходимо отправлять из него же в телеграм, раскомментируй строки подписанные комментариями *Telegram* )
« Последнее редактирование: Август 01, 2016, 11:26:49 am от sysadmin »


xx
Pidgin - установка поддержки telegram / skype в Fedora

Автор sysadmin

3 Ответов
470 Просмотров
Последний ответ Март 25, 2016, 10:01:52 pm
от HorekRediskovich