이번에는 저번에 만들었던 카카오톡 챗봇에 급식 파서를 활용하여
급식을 알려주는 챗봇을 만들도록 하겠습니다.
이전과정
[
카카오톡 챗봇 만들기 --> http://mandu-mandu.tistory.com/67
급식 파서 만들기 --> http://mandu-mandu.tistory.com/21
]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | from django.shortcuts import render from django.views.decorators.csrf import csrf_exempt from django.http import JsonResponse from pytz import timezone import datetime , json #datetime 모듈 import from parser import * #parser.py import def keyboard(request): return JsonResponse({ 'type':'buttons', 'buttons':['오늘','내일'] }) @csrf_exempt def answer(request): json_str = ((request.body).decode('utf-8')) received_json_data = json.loads(json_str) datacontent = received_json_data['content'] #date #오늘 dt1 = datetime.datetime.today() local_date1 = dt1.strftime("%Y.%m.%d") local_weekday1 = dt1.weekday() #오늘 #내일 dt2 = datetime.datetime.today() + datetime.timedelta(days=1) local_date2 = dt2.strftime("%Y.%m.%d") local_weekday2 = dt2.weekday() #내일 #date if datacontent == '오늘': #시간 관련 meal_date = str(local_date1) l_wkday = int(local_weekday1) #시간 관련 #파싱 l_l = get_diet(2, meal_date, l_wkday) d_d = get_diet(3, meal_date, l_wkday) #파싱 #디스코드 챗봇 만들기(2) 참고바람. if len(l_l) == 1: lunch = "급식이 없습니다." dinner = "" elif len(d_d) == 1: lunch = meal_date + " 중식\n" + l_l dinner = "" else: lunch = meal_date + " 중식\n" + l_l dinner = meal_date + " 석식\n" + d_d #디스코드 챗봇 만들기(2) 참고바람. return JsonResponse({ 'message': { 'text': lunch + dinner }, 'keyboard': { 'type':'buttons', 'buttons':['오늘','내일'] } }) elif datacontent == '내일': ... | cs |
*#디스코드 챗봇 만들기(2) 참고바람. 부분은 http://mandu-mandu.tistory.com/65 여기에 설명이 나와 있습니다.
*자신의 상황에 맞게 수정 또는 삭제 하시면 됩니다.
*'오늘'과 '내일'의 코드는 거의 차이가 없기 때문에 함수 하나로 잘 만들어서 사용하시는게 더 좋을 것 같습니다.
--18.03.03 추가
그래서 함수 하나로 만들어서 최적화를 진행하였습니다.
수정된 코드는 제 깃허브에 있습니다.
https://github.com/M4ndU/inhun_kakao_chat_bot_2
----------
저장하시면 만약 django가 돌아가는 중이었다면 자동으로 서버를 재시작해서 바로 수정된 것을 적용합니다.
모바일 카카오톡으로 접속해서 봇에서 '오늘' 또는 '내일' 버튼을 누르면 해당 버튼에 대한 식단이 출력됩니다.
이상입니다.
'Project > Programming' 카테고리의 다른 글
[Python] Python으로 카카오톡 봇 만들기 (3) - 반복적 동일 요청 막기 (도배 방지) (33) | 2018.04.05 |
---|---|
[Python] Python으로 디스코드 봇 만들기 (4) - 맴버 관련 기능 추가하기 (5) | 2018.03.30 |
[Python] Python으로 카카오톡 봇 만들기 (1) - 봇 생성부터 테스트까지 (25) | 2018.02.21 |
[Python] Python으로 디스코드 봇 만들기 (3) - 부가적 기능 추가하기 (5) | 2018.02.19 |
[Python] Python으로 디스코드 봇 만들기 (2) - 급식 파서 활용하기 (0) | 2018.02.19 |