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 정리에 시간을 쏟았다.