OSS-GodKiwoonForever / Final-Project

1 stars 3 forks source link

181128 코드 수정사항 #15

Open psh2849 opened 5 years ago

psh2849 commented 5 years ago
def handle_message(event):    
    API_key = unquote('Airkorea API키')
    url = 'http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getCtprvnMesureLIst'
    queryParams = '?' + urlencode({ quote_plus('ServiceKey') : API_key, quote_plus('numOfRows') : '10', 
    quote_plus('pageNo') : '1', quote_plus('itemCode') : 'PM10', quote_plus('dataGubun') : 'HOUR', 
    quote_plus('searchCondition') : 'MONTH' })

    request = Request(url + queryParams)
    request.get_method = lambda: 'GET'
    response_body = urlopen(request).read().decode('utf-8')
    root = ET.fromstring(response_body)

    seoul = root.find('body').find('items').find('item').find('seoul')
    gyeonggi = root.find('body').find('items').find('item').find('gyeonggi')
    busan = root.find('body').find('items').find('item').find('busan')
    daegu = root.find('body').find('items').find('item').find('daegu')
    incheon = root.find('body').find('items').find('item').find('incheon')
    gwangju = root.find('body').find('items').find('item').find('gwangju')
    daejeon = root.find('body').find('items').find('item').find('daejeon')
    ulsan = root.find('body').find('items').find('item').find('ulsan')
    gangwon = root.find('body').find('items').find('item').find('gangwon')
    chungbuk = root.find('body').find('items').find('item').find('chungbuk')
    chungnam = root.find('body').find('items').find('item').find('chungnam')
    jeonbuk = root.find('body').find('items').find('item').find('jeonbuk')
    jeonnam = root.find('body').find('items').find('item').find('jeonnam')
    gyeongbuk = root.find('body').find('items').find('item').find('gyeongbuk')
    gyeongnam = root.find('body').find('items').find('item').find('gyeongnam')
    jeju = root.find('body').find('items').find('item').find('jeju')
    sejong = root.find('body').find('items').find('item').find('sejong')

    message = TextSendMessage(text=seoul.text)
    line_bot_api.reply_message(event.reply_token, message)

다음과 같이 도시명을 airkorea 홈페이지에서 파싱해온 뒤 message 변수에 도시명.text를 입력하면 라인에서 아무 입력이나 받았을 때 그 도시의 미세먼지를 출력해줌

참고한 URL https://electricburglar.tistory.com/148 https://github.com/line/line-bot-sdk-python

앞으로 수정해야할 것

ghost commented 5 years ago

on commit 7566e60fc8f280253c76bbc62d6e7bbea4141ae2 in branch opensource_pr1... 각각의 도시 이름을 키로 가지는 딕셔너리를 만들어 위의 변수들을 넣었음 => dicts 사용자의 입력값을 변수에 받고, lower()으로 대소문자를 가리지 않도록 다 소문자로 바꾸었음 => userinput 이를 활용하여 "입력한_도시 의 PM10 수치 : 미세먼지_수치"를 사용자에게 반환하도록 수정하였음.

psh2849 commented 5 years ago