Skip to content

Instantly share code, notes, and snippets.

@MKtalk
Created September 17, 2017 05:56
Show Gist options
  • Save MKtalk/caf8aef3440f40e65073b4a06377dfa1 to your computer and use it in GitHub Desktop.
Save MKtalk/caf8aef3440f40e65073b4a06377dfa1 to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
from __future__ import (absolute_import, division, print_function, unicode_literals)
from bothub_client.bot import BaseBot
from bothub_client.messages import Message
import re
import requests
class Bot(BaseBot):
def handle_message(self, event, context):
message = event.get('content')
if message == '/start':
msg = Message(event).set_text('키보드를 설정합니다.')\
.add_keyboard_button('송파구 잠실동') \
.add_keyboard_button('강남구 신사동')
self.send_message(msg)
else:
region = self.get_naver_region(message)
if region:
weather, temp = self.get_weather(region)
self.send_message('날씨: {}\n온도: {}°C'.format(weather, temp))
else:
self.send_message('이해할 수 없는 주소입니다 ㅜㅜ')
def get_naver_region(self, cityName):
baseUrl = 'https://m.weather.naver.com/ac?q_enc=utf-8&r_format=json&r_enc=utf-8&r_lt=1&st=1&q=' + cityName
response = requests.get(baseUrl)
if response.json()['items'] == []:
regionCode = None
return regionCode
else:
regionCode = response.json()['items'][0][0][1]
return str(regionCode[0])
def get_weather(self, regionCode):
url = "https://m.weather.naver.com/m/main.nhn?regionCode=" + regionCode
summary_regex = r"weather_set_summary\">(.+?)<br>"
nowTemp_regex = r"degree_code full\">(.+?)</em>"
response = requests.get(url)
data = response.text
summary = re.search(summary_regex, data)
nowTemp = re.search(nowTemp_regex, data)
return summary.group(1), nowTemp.group(1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment