App

카카오톡 인천대학교 학식봇 만들기(AWS Lambda) - 8

kjy0349 2021. 7. 12. 21:05
import json
from bs4 import BeautifulSoup
import crawling_INUmenu as im
def lambda_handler(event, context):
    menu_type_list = ["중식","중식","석식","라면","국밥"]
    request_body = json.loads(event["body"], encoding="utf-8")
    action = request_body["action"]
    
    # 날짜 출력
    date_obj = json.loads(action["params"]["date"])
    date = date_obj["date"]
    date = int(date[5:].replace('-',''))
    diff_index = im.today_index + date - im.short_date
    day = action["detailParams"]["date"]["origin"]
    
    # 요청한 메뉴 시간
    
    request_typemenu = action["params"]["menu_type"]
    tm_index = 0
    for i in range(len(menu_type_list)):
        print(i, menu_type_list[i], request_typemenu)
        if menu_type_list[i] == request_typemenu:
            tm_index = i
            break
        
    # 요청한 메뉴 출력
    
    typemenu_show_str  = ""
    typemenu_show_str += "{} {} 메뉴\n\n".format(day, request_typemenu)
    if tm_index == 0 or tm_index == 1:
        typemenu_show_str += "중식(백반)\n"
        for i in range(len(im.all_menu_list[diff_index][0])):
            if i == len(im.all_menu_list[diff_index][0])-1:
                typemenu_show_str += "{}".format(im.all_menu_list[diff_index][0][i])
            else:
                typemenu_show_str += "{}\n".format(im.all_menu_list[diff_index][0][i])
        typemenu_show_str += "\n중식(일품) \n"
        for i in range(len(im.all_menu_list[diff_index][1])):
            if i == len(im.all_menu_list[diff_index][1]):
                typemenu_show_str += "{}".format(im.all_menu_list[diff_index][1][i])
            else:
                typemenu_show_str += "{}\n".format(im.all_menu_list[diff_index][1][i])
    
    else:
        for i in range(len(im.all_menu_list[diff_index][tm_index])):
            if i == len(im.all_menu_list[diff_index][tm_index])-1:
                typemenu_show_str += "{}".format(im.all_menu_list[diff_index][tm_index][i])
            else:
                typemenu_show_str += "{}\n".format(im.all_menu_list[diff_index][tm_index][i])
    
    
    result = {
        "version": "2.0",
        "template":{
            "outputs": [
                    {
                        "simpleText":{
                            "text": "{}".format(typemenu_show_str)
                        }
                    }
                ]
        }
    }
    return {
        "statusCode":200,
        "body": json.dumps(result),
        "headers": {
            "Access-Control-Allow-Origin": "*",
        }
    }

typemenu_show라는 lambda 함수를 추가하여, 여러 발화에 대응 할 수 있게 업데이트 했다.

 

추가된 기능

이제 특정날짜, 특정시간의 메뉴를 알 수 있는 발화에 대응 할 수 있게 되었다.

 

ex) 내일 중식 알려줘

 

예상 발화들을 추가한 모습.

 

github에 readme도 추가해서 간략하게 어떤 기능을 지원하는지에대한 설명도 추가했다.

 

https://github.com/kjy0349/INU_Cafeteria

 

kjy0349/INU_Cafeteria

학식크롤러. Contribute to kjy0349/INU_Cafeteria development by creating an account on GitHub.

github.com

 

오늘은 daymenu_show 함수 추가와, github 정리에 시간을 쏟았다.