유소연

add file

No preview for this file type
No preview for this file type
#-*-coding: utf-8 -*-
import os
import sys
from flask import request
import datetime
import random
sys.path.append(os.path.dirname(os.path.dirname("main")))
from Functions.getInstance import *
from Functions.checkFunction import *
from Functions.updateDatabase import *
from Functions.messageTypes import *
import tones
def get_comeHere_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
# 유저 발화(utterance) 불러오기
utterance = getUserUtteranceFromPayload(payload)
# accountId 불러오기
accountId = getAccountIdusingUserKey(kakaoUserKey)
# petId 불러오기
petId = getPetId(kakaoUserKey)
# petName 불러오기
petName = getPetName(petId)
# relation 불러오기
relation = getRelation(kakaoUserKey, petId)
# font 불러오기
font = getFont(kakaoUserKey, petId)
# 현재 시간 불러오기
now = datetime.datetime.now()
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'comeHere', imageUrl, 0, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
#-*-coding: utf-8 -*-
import os
import sys
import datetime
import random
sys.path.append(os.path.dirname(os.path.dirname("main")))
from Functions.getInstance import *
from Functions.checkFunction import *
from Functions.updateDatabase import *
from Functions.messageTypes import *
from Functions import pyjosa
import tones
# TODO 경우의 수를 나눠서 어떤 경우에는 시간에 따라, 보통 상황, 날씨에 따라, 특정 상황에 따라 메시지 선택
# 인식되어 메시지를 보내는 경우
def get_detection_message(accountId):
kakaoUserKey = getKakaoUserKeyUsingAccountId(accountId)
petId = getPetIdUsingAccountId(accountId)
font = getFont(kakaoUserKey,petId)
relation = getRelation(kakaoUserKey,petId)
petName = getPetName(petId)
now = datetime.datetime.now()
# 상황에 따른 단독 메시지 가져오기
if isMorning(now):
message = tones.getSingleMessage(font, 'morning_detected', petName, relation)
elif isAfternoon(now):
message = tones.getSingleMessage(font, 'afternoon_detected', petName, relation)
elif isEvening(now):
message = tones.getSingleMessage(font, 'evening_detected', petName, relation)
else:
message = ''
msg = pyjosa.replace_josa(message)
return msg
# 날씨 기반의 선톡을 보내는 경우
def get_weather_message(accountId):
kakao_user_key = getKakaoUserKeyUsingAccountId(accountId)
pet_id = getPetIdUsingAccountId(accountId)
font = getFont(kakao_user_key, pet_id)
relation = getRelation(kakao_user_key, pet_id)
pet_name = getPetName(pet_id)
now = datetime.datetime.now()
morning_weather = get_today_weather()['morningWeather']
afternoon_weather = get_today_weather()['afternoonWeather']
if morning_weather == '맑음' and afternoon_weather == '맑음': # 오전 오후 모두 맑은날인 경우
message = tones.getSingleMessage(font, 'sunny_day_weather', pet_name, relation)
elif '비' not in morning_weather and '비' not in afternoon_weather: # 오전오후 모두 비가오지 않는 날인 경우
message = tones.getSingleMessage(font, 'not_rainy_day_weather', pet_name, relation)
elif '비' not in morning_weather and '비' in afternoon_weather: # 오전은 아닌데 오후에 비가오는 날인 경우
message = tones.getSingleMessage(font, 'rainy_afternoon_weather', pet_name, relation)
else:
message = ''
msg = pyjosa.replace_josa(message)
return msg
#-*-coding: utf-8 -*-
import os
import sys
from flask import request
import datetime
import random
sys.path.append(os.path.dirname(os.path.dirname("main")))
from Functions.getInstance import *
from Functions.checkFunction import *
from Functions.updateDatabase import *
from Functions.messageTypes import *
from Config import intentBlockId
# 도움말 시작
def get_startHelp_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
outputList.append(simpleText('[시스템] 무엇이 궁금하신가요?'))
# help button window
qrList = helpButtonWindow()
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[도움말]메인', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_quitHelp_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
outputList.append(simpleText('[시스템] 언제든지 다시 질문해주세요'))
# 챗봇 노란버튼
qrList = basicButtonWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[도움말]종료', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_serviceIntroduction_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
card_list = serviceIntroductionCardList(petName)
outputList.append(cardArray(card_list))
outputList.append(simpleText('도기보기와 함께라면 밖에서도 우리집 ' + petName + '와 채팅할 수 있어요😊'))
outputList.append(simpleText(petName + '와 카톡할 준비 되셨나요?'))
# help button window
qrList = helpButtonWindow()
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[도움말]서비스 소개', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# QR코드 스캔 도움말
def get_helpQrScan_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
outputList.append(simpleText('[시스템] 카메라 초점을 맞춰서 스캔해보시겠어요?'))
outputList.append(simpleText('그래도 스캔이 잘 되지 않는다면 연락주세요\n\n‍📧: petpeotalk@gmail.com'))
qrList.append(blockQuickReply('돌아가기↩️', '돌아가기↩️', intentBlockId.help))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[도움말]QR코드스캔', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 사진추가 도움말
def get_helpAddImage_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
outputList.append(simpleText('물론이에요!'))
outputList.append(simpleText('귀여운 ' + petName + '사진은 언제든지 추가 가능합니다😍'))
qrList.append(blockQuickReply('사진추가하기📸', '사진추가하기📸️', '5d4251ca8192ac0001b8d96e'))
qrList.append(blockQuickReply('돌아가기↩️', '돌아가기↩️', intentBlockId.help))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[도움말]사진추가', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 사용인원 도움말
def get_helpCapacity_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
outputList.append(simpleText('아쉽게도 아직은 공기계 한 대당 한 명만 이용하실 수 있습니다'))
outputList.append(simpleText('머지않아 온가족이 도기보기와 함께할 수 있어요!\n'
'기대해주실거죠?☺'))
qrList.append(blockQuickReply('돌아가기↩️', '돌아가기↩️', intentBlockId.help))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[도움말]사용인원', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
\ No newline at end of file
#-*-coding: utf-8 -*-
import os
import sys
from flask import request
sys.path.append(os.path.dirname(os.path.dirname("main")))
from Functions.getInstance import *
from Functions.checkFunction import *
from Functions.updateDatabase import *
from Functions.messageTypes import *
import tones
game_369_clap = '짝👏!'
game_369_one = '일!'
game_369_two = '이!'
game_369_three = '삼!'
game_369_four = '사!'
game_369_five = '오!'
game_369_six = '육!'
game_369_seven = '칠!'
game_369_eight = '팔!'
game_369_nine = '구!'
game_369_ten = '십!!'
def get_start_rsp_game_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
# 유저 발화(utterance) 불러오기
utterance = getUserUtteranceFromPayload(payload)
# accountId 불러오기
accountId = getAccountIdusingUserKey(kakaoUserKey)
# petId 불러오기
petId = getPetId(kakaoUserKey)
# petName 불러오기
petName = getPetName(petId)
# relation 불러오기
relation = getRelation(kakaoUserKey, petId)
# font 불러오기
font = getFont(kakaoUserKey, petId)
# 현재 시간 불러오기
now = datetime.datetime.now()
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'start_rsp_game')
contextList = []
outputList = tones.getMessageOutputList(font, 'start_rsp_game', imageUrl, 90, petName, relation)
qrList = []
qrList.append(blockQuickReply('가위✌', '가위✌', '5e411eb592690d0001fcc7c3'))
qrList.append(blockQuickReply('바위✊', '바위✊', '5e411eb592690d0001fcc7c3'))
qrList.append(blockQuickReply('보✋', '보✋', '5e411eb592690d0001fcc7c3'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_process_rsp_game_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
# 유저 발화(utterance) 불러오기
utterance = getUserUtteranceFromPayload(payload)
# accountId 불러오기
accountId = getAccountIdusingUserKey(kakaoUserKey)
# petId 불러오기
petId = getPetId(kakaoUserKey)
# petName 불러오기
petName = getPetName(petId)
# relation 불러오기
relation = getRelation(kakaoUserKey, petId)
# font 불러오기
font = getFont(kakaoUserKey, petId)
# 현재 시간 불러오기
now = datetime.datetime.now()
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
outputList = []
contextList = []
qrList = []
rv = random.randrange(0,20)
if utterance == '가위✌':
if 0 <= rv < 18:
# 상대 보자기: 승리
imageUrl = getObjectByRandom(get_game_image_urls('rsp', 'paw'))
outputList.append(simpleText('보!!'))
outputList = outputList + tones.getMessageOutputList(font, 'win_rsp_game_s', imageUrl, 90, petName, relation)
qrList.append(blockQuickReply('이겼다😆!', '이겼다😆!', '5e411ec292690d0001fcc7c5'))
contextList.append(contextValue('rsp', 1, {'result': 'win'}))
elif rv == 18:
# 상대 바위: 패배
imageUrl = getObjectByRandom(get_game_image_urls('rsp', 'paw'))
outputList.append(simpleText('바위!!'))
outputList = outputList + tones.getMessageOutputList(font, 'lose_rsp_game', imageUrl, 90, petName, relation)
qrList = qrList + basicButtonWindow(petName)
elif rv == 19:
# 상대 가위: 재시작
imageUrl = getObjectByRandom(get_game_image_urls('rsp', 'paw'))
outputList.append(simpleText('가위!!'))
outputList = outputList + tones.getMessageOutputList(font, 'restart_rsp_game', imageUrl, 90, petName, relation)
qrList.append(blockQuickReply('가위✌', '가위✌', '5e411eb592690d0001fcc7c3'))
qrList.append(blockQuickReply('바위✊', '바위✊', '5e411eb592690d0001fcc7c3'))
qrList.append(blockQuickReply('보✋', '보✋', '5e411eb592690d0001fcc7c3'))
elif utterance == '바위✊':
# 상대 보: 무조건 패배
imageUrl = getObjectByRandom(get_game_image_urls('rsp', 'paw'))
outputList.append(simpleText('보!!'))
outputList = outputList + tones.getMessageOutputList(font, 'lose_rsp_game', imageUrl, 90, petName, relation)
qrList = qrList + basicButtonWindow(petName)
elif utterance == '보✋':
if 0 <= rv < 16:
# 상대 보자기: 재시작
imageUrl = getObjectByRandom(get_game_image_urls('rsp', 'paw'))
outputList.append(simpleText('보!!'))
outputList = outputList + tones.getMessageOutputList(font, 'restart_rsp_game', imageUrl, 90, petName, relation)
qrList.append(blockQuickReply('가위✌', '가위✌', '5e411eb592690d0001fcc7c3'))
qrList.append(blockQuickReply('바위✊', '바위✊', '5e411eb592690d0001fcc7c3'))
qrList.append(blockQuickReply('보✋', '보✋', '5e411eb592690d0001fcc7c3'))
elif 16 <= rv < 18:
# 상대 바위: 승리
imageUrl = getObjectByRandom(get_game_image_urls('rsp', 'paw'))
outputList.append(simpleText('바위!!'))
outputList = outputList + tones.getMessageOutputList(font, 'win_rsp_game_p', imageUrl, 90, petName, relation)
qrList.append(blockQuickReply('이겼다😆!', '이겼다😆!', '5e411ec292690d0001fcc7c5'))
contextList.append(contextValue('rsp', 1, {'result': 'win'}))
elif 18 <= rv < 20:
# 상대 가위: 패배
imageUrl = getObjectByRandom(get_game_image_urls('rsp', 'paw'))
outputList.append(simpleText('가위!!'))
outputList = outputList + tones.getMessageOutputList(font, 'lose_rsp_game', imageUrl, 90, petName, relation)
qrList = qrList + basicButtonWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'process_rsp_game')
return ordinaryMessageType(contextList, outputList, qrList)
# 게임에 대한 보상 제공
def get_finish_rsp_game_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
# 유저 발화(utterance) 불러오기
utterance = getUserUtteranceFromPayload(payload)
# accountId 불러오기
accountId = getAccountIdusingUserKey(kakaoUserKey)
# petId 불러오기
petId = getPetId(kakaoUserKey)
# petName 불러오기
petName = getPetName(petId)
# relation 불러오기
relation = getRelation(kakaoUserKey, petId)
# font 불러오기
font = getFont(kakaoUserKey, petId)
# 현재 시간 불러오기
now = datetime.datetime.now()
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
qrList = []
outputList = []
outputList = tones.getMessageOutputList(font, 'reward_rsp_game', '', 0, petName, relation)
qrList = qrList + basicButtonWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'finish_rsp_game')
return ordinaryMessageType(contextList, outputList, qrList)
def get_start_369_game_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
# 유저 발화(utterance) 불러오기
utterance = getUserUtteranceFromPayload(payload)
# accountId 불러오기
accountId = getAccountIdusingUserKey(kakaoUserKey)
# petId 불러오기
petId = getPetId(kakaoUserKey)
# petName 불러오기
petName = getPetName(petId)
# relation 불러오기
relation = getRelation(kakaoUserKey, petId)
# font 불러오기
font = getFont(kakaoUserKey, petId)
# 현재 시간 불러오기
now = datetime.datetime.now()
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
outputList = tones.getMessageOutputList(font, 'start_369_game', imageUrl, 90, petName, relation)
qrList = []
contextList.append(contextValue('369', 1, {'result': '1'}))
qrList.append(blockQuickReply('짝👏!', '짝👏!', '5e44e054ffa7480001f94ab4'))
qrList.append(blockQuickReply('이!', '이!', '5e44e054ffa7480001f94ab4'))
qrList.append(blockQuickReply('삼!', '삼!', '5e44e054ffa7480001f94ab4'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'start_369_game')
return ordinaryMessageType(contextList, outputList, qrList)
def get_process_369_game_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
# 유저 발화(utterance) 불러오기
utterance = getUserUtteranceFromPayload(payload)
# accountId 불러오기
accountId = getAccountIdusingUserKey(kakaoUserKey)
# petId 불러오기
petId = getPetId(kakaoUserKey)
# petName 불러오기
petName = getPetName(petId)
# relation 불러오기
relation = getRelation(kakaoUserKey, petId)
# font 불러오기
font = getFont(kakaoUserKey, petId)
# 현재 시간 불러오기
now = datetime.datetime.now()
outputList = []
qrList = []
contextList = []
rv = random.randrange(0, 10)
if checkContextParamValue(payload, '369', 'result', '1'):
if utterance == '이!':
# 박수쳐서 계속 감: 90%
if 0 <= rv < 9:
imageUrl = getObjectByRandom(getPetImageUrls(kakaoUserKey, ''))
outputList.append(simpleImage(imageUrl))
outputList.append(simpleText('짝👏!'))
qrList.append(blockQuickReply('사!', '사!', '5e44e054ffa7480001f94ab4'))
qrList.append(blockQuickReply('짝👏!', '짝👏!', '5e44e054ffa7480001f94ab4'))
qrList.append(blockQuickReply('오!', '오!', '5e44e054ffa7480001f94ab4'))
contextList.append(contextValue('369', 1, {'result': '3'}))
# 까먹어서 사용자 승리: 10%
elif rv == 9:
outputList = tones.getMessageOutputList(font, 'finish_369_game_forgot', '', 0, petName, relation)
qrList.append(blockQuickReply('😂', '😂', '5e44e0a5ffa7480001f94ab6'))
contextList.append(contextValue('369', 1, {'result': '2'}))
# 사용자 패배
elif utterance == '짝👏!' or utterance == '삼!':
outputList = tones.getMessageOutputList(font, 'lose_369_game', '', 0, petName, relation)
qrList = qrList + basicButtonWindow(petName)
elif checkContextParamValue(payload, '369', 'result', '3'):
if utterance == '사!':
# 계속 감: 60%
if 0 <= rv < 6:
outputList.append(simpleText('오!'))
qrList.append(blockQuickReply('칠!', '칠!', '5e44e054ffa7480001f94ab4'))
qrList.append(blockQuickReply('짝👏!', '짝👏!', '5e44e054ffa7480001f94ab4'))
qrList.append(blockQuickReply('육!', '육!', '5e44e054ffa7480001f94ab4'))
contextList.append(contextValue('369', 1, {'result': '5'}))
# 까먹어서 사용자 승리: 40%
elif 6 <= rv < 10:
outputList = tones.getMessageOutputList(font, 'finish_369_game_forgot', '', 0, petName, relation)
qrList.append(blockQuickReply('😂', '😂', '5e44e0a5ffa7480001f94ab6'))
contextList.append(contextValue('369', 1, {'result': '4'}))
# 사용자 패배
elif utterance == '짝👏!' or utterance == '오!':
outputList = tones.getMessageOutputList(font, 'lose_369_game', '', 0, petName, relation)
qrList = qrList + basicButtonWindow(petName)
elif checkContextParamValue(payload, '369', 'result', '5'):
if utterance == '짝👏!':
# 계속 감: 30%
if 0 <= rv < 3:
outputList.append(simpleText('칠!'))
qrList.append(blockQuickReply('구!', '구!', '5e44e054ffa7480001f94ab4'))
qrList.append(blockQuickReply('짝👏!', '짝👏!', '5e44e054ffa7480001f94ab4'))
qrList.append(blockQuickReply('팔!', '팔!', '5e44e054ffa7480001f94ab4'))
contextList.append(contextValue('369', 1, {'result': '7'}))
# 박수 잘못쳐서 사용자 승리: 30%
elif 3 <= rv < 6:
outputList = tones.getMessageOutputList(font, 'finish_369_game_mistake', '', 0, petName, relation)
qrList.append(blockQuickReply('😂', '😂', '5e44e0a5ffa7480001f94ab6'))
contextList.append(contextValue('369', 1, {'result': '6'}))
# 까먹어서 사용자 승리: 40%
elif 6 <= rv < 10:
outputList = tones.getMessageOutputList(font, 'finish_369_game_forgot', '', 0, petName, relation)
qrList.append(blockQuickReply('😂', '😂', '5e44e0a5ffa7480001f94ab6'))
contextList.append(contextValue('369', 1, {'result': '6'}))
# 사용자 패배
elif utterance == '칠!' or utterance == '육!':
outputList = tones.getMessageOutputList(font, 'lose_369_game', '', 0, petName, relation)
qrList = qrList + basicButtonWindow(petName)
elif checkContextParamValue(payload, '369', 'result', '7'):
if utterance == '팔!':
# 계속 감: 20%
if 0 <= rv < 2:
imageUrl = getObjectByRandom(getPetImageUrls(kakaoUserKey, ''))
outputList.append(simpleImage(imageUrl))
outputList.append(simpleText('짝👏!'))
qrList.append(blockQuickReply('십!!', '십!!', '5e44e054ffa7480001f94ab4'))
qrList.append(blockQuickReply('십일!', '십일!', '5e44e054ffa7480001f94ab4'))
qrList.append(blockQuickReply('짝👏!', '짝👏!', '5e44e054ffa7480001f94ab4'))
contextList.append(contextValue('369', 1, {'result': '9'}))
# 까먹어서 사용자 승리: 80%
elif 2 <= rv < 10:
outputList = tones.getMessageOutputList(font, 'finish_369_game_forgot', '', 0, petName, relation)
qrList.append(blockQuickReply('😂', '😂', '5e44e0a5ffa7480001f94ab6'))
contextList.append(contextValue('369', 1, {'result': '8'}))
# 사용자 패배
elif utterance == '짝👏!' or utterance == '팔!':
outputList = tones.getMessageOutputList(font, 'lose_369_game', '', 0, petName, relation)
qrList = qrList + basicButtonWindow(petName)
elif checkContextParamValue(payload, '369', 'result', '9'):
if utterance == '십!!':
imageUrl = getObjectByRandom(getPetImageUrls(kakaoUserKey, ''))
outputList = tones.getMessageOutputList(font, 'win_369_game', imageUrl, 90, petName, relation)
qrList.append(blockQuickReply('😂', '😂', '5e44e0a5ffa7480001f94ab6'))
contextList.append(contextValue('369', 1, {'result': '10'}))
# 사용자 패배
elif utterance == '십일!' or '짝👏!':
outputList = tones.getMessageOutputList(font, 'lose_369_game', '', 0, petName, relation)
qrList = qrList + basicButtonWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'process_369_game')
return ordinaryMessageType(contextList, outputList, qrList)
# 게임에 대한 보상 제공
def get_finish_369_game_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
# 유저 발화(utterance) 불러오기
utterance = getUserUtteranceFromPayload(payload)
# accountId 불러오기
accountId = getAccountIdusingUserKey(kakaoUserKey)
# petId 불러오기
petId = getPetId(kakaoUserKey)
# petName 불러오기
petName = getPetName(petId)
# relation 불러오기
relation = getRelation(kakaoUserKey, petId)
# font 불러오기
font = getFont(kakaoUserKey, petId)
# 현재 시간 불러오기
now = datetime.datetime.now()
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
qrList = []
outputList = []
outputList = tones.getMessageOutputList(font, 'reward_369_game', '', 0, petName, relation)
qrList = qrList + basicButtonWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'finish_369_game')
return ordinaryMessageType(contextList, outputList, qrList)
# 넌센스 퀴즈 시작
def get_start_nonsense_quiz_message():
contextList = []
qrList = []
payload = request.get_json()
utterance = getUserUtteranceFromPayload(payload)
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 한 퀴즈는 4개의 대사로 구성되어 있기 때문에 4로 나눠서 퀴즈의 갯수를 구함
quizCount = int(tones.getCountUsingIntent('cute', 'nonsense_quiz') / 4)
randomQuizNumber = str(random.randrange(1, quizCount + 1))
outputList = tones.getMessageOutputList(font, 'nonsense_quiz_' + randomQuizNumber + '_Q', imageUrl, 90, petName, relation)
answerList = tones.getKeywordListUsingIntent('cute', 'nonsense_quiz_' + randomQuizNumber + '_keyword')
contextList.append(contextValue('utterance', 1, {'nonsense_quiz': 'start', 'nonsense_quiz_number': randomQuizNumber, 'nq_answer_list': answerList}))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'start_nonsense_quiz')
return ordinaryMessageType(contextList, outputList, qrList)
# 넌센스퀴즈 결과 확인
def get_process_nonsense_quiz_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
qrList = []
outputList = []
quizNumber = getContextParamValue(payload, 'utterance', 'nonsense_quiz_number')
answers = getContextParamValue(payload, 'utterance', 'nq_answer_list')
answers = answers.replace('[', '')
answers = answers.replace(']', '')
answers = answers.replace("\"", "")
answerList = answers.split(',')
correct = False
for answer in answerList:
if answer in utterance:
correct = True
if correct:
contextList.append(contextValue('utterance', 1, {'nonsense_quiz': 'correct', 'nonsense_quiz_number': quizNumber}))
outputList = tones.getMessageOutputList(font, 'nonsense_quiz_' + quizNumber + '_O', '', 0, petName, relation)
else:
contextList.append(contextValue('utterance', 1, {'nonsense_quiz': 'incorrect', 'nonsense_quiz_number': quizNumber}))
outputList = tones.getMessageOutputList(font, 'nonsense_quiz_' + quizNumber + '_X', '', 0, petName, relation)
qrList = qrList + basicButtonWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'process_nonsense_quiz')
return ordinaryMessageType(contextList, outputList, qrList)
#TODO 넌센스퀴즈 결과에 대한 보상 제공(아직 미구현)
def get_finish_nonsense_quiz_message():
contextList = []
qrList = []
outputList = []
return ordinaryMessageType(contextList, outputList, qrList)
def get_start_word_relay_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
qrList = []
outputList = tones.getMessageOutputList(font, 'start_word_relay', imageUrl, 0, petName, relation)
# 끝말잇기 대본에서 db 가져오기
words = tones.getKeywordListUsingIntent('cute', 'word_relay_db')[0][0]
keywordList = wordRelayDBList(words, petName, relation)
# 랜덤하게 하나 고르기
keyword = random.choice(keywordList)
outputList.append(simpleText(keyword+'!!'))
contextList.append(contextValue('utterance', 1, {'wr_keyword': keyword, 'word_relay': 'process', 'wr_repeat_count': 0}))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'start_word_relay')
return ordinaryMessageType(contextList, outputList, qrList)
def get_process_word_relay_message():
contextList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 끝말잇기 대본에서 db 가져오기
words = tones.getKeywordListUsingIntent('cute', 'word_relay_db')[0][0]
keywordList = wordRelayDBList(words, petName, relation)
outputList = []
# 끝말잇기 반복한 횟수
repeatCount = int(getContextParamValue(payload, 'utterance', 'wr_repeat_count')) + 1
# 5번 반복했으면 종료
if repeatCount == 5:
outputList = tones.getMessageOutputList(font, 'perfect_win_word_relay', imageUrl, 30, petName, relation)
qrList.append(blockQuickReply('이겼다!', '이겼다!', '5e5cbe0d7b777800010f7d95'))
contextList.append(contextValue('utterance', 1, {'word_relay': 'win', 'wr_repeat_count': repeatCount}))
# 글자수가 한개인 경우 사용자 패배
elif len(list(utterance)) == 1:
outputList.append(simpleText(utterance + '??'))
outputList = tones.getMessageOutputList(font, 'foul_lose_word_relay', imageUrl, 0, petName, relation)
qrList.append(blockQuickReply('😅', '😅', '5e5cbe0d7b777800010f7d95'))
contextList.append(contextValue('utterance', 1, {'word_relay': 'lose', 'wr_repeat_count': repeatCount}))
# 특수문자가 포함되어있는 경우 사용자 패배
elif '?' in utterance or '!' in utterance or '^' in utterance or ';' in utterance:
outputList.append(simpleText(utterance + '??'))
outputList = tones.getMessageOutputList(font, 'foul_lose_word_relay', imageUrl, 0, petName, relation)
qrList.append(blockQuickReply('😅', '😅', '5e5cbe0d7b777800010f7d95'))
contextList.append(contextValue('utterance', 1, {'word_relay': 'lose', 'wr_repeat_count': repeatCount}))
# 글자수가 5초과인 경우 사용자 패배
elif len(list(utterance)) > 5:
outputList.append(simpleText(utterance + '??'))
outputList = tones.getMessageOutputList(font, 'foul_lose_word_relay', imageUrl, 0, petName, relation)
qrList.append(blockQuickReply('😅', '😅', '5e5cbe0d7b777800010f7d95'))
contextList.append(contextValue('utterance', 1, {'word_relay': 'lose', 'wr_repeat_count': repeatCount}))
# 중간에 띄어쓰기가 있는 경우 사용자 패배
elif ' ' in utterance:
outputList.append(simpleText(utterance + '??'))
outputList = tones.getMessageOutputList(font, 'foul_lose_word_relay', imageUrl, 0, petName, relation)
qrList.append(blockQuickReply('😅', '😅', '5e5cbe0d7b777800010f7d95'))
contextList.append(contextValue('utterance', 1, {'word_relay': 'lose', 'wr_repeat_count': repeatCount}))
# 끝말잇기 규칙에 어긋나지 않은 경우 db에서 매칭되는 단어를 찾기
else:
find = False
beforeKeyWord = getContextParamValue(payload, 'utterance', 'wr_keyword')
# 사용자가 펫이 제시한 단어에 맞지 않는 응답을 한 경우
if beforeKeyWord[-1] != utterance[0]:
outputList = tones.getMessageOutputList(font, 'lose_word_relay', imageUrl, 0, petName, relation)
qrList.append(blockQuickReply('😅', '😅', '5e5cbe0d7b777800010f7d95'))
contextList.append(contextValue('utterance', 1, {'word_relay': 'lose', 'wr_repeat_count': repeatCount}))
else:
lastWord = utterance[-1]
for keyword in keywordList:
# 사용자의 응답에 펫이 이어서 끝말잇기를 진행하는 경우
if keyword[0] == lastWord:
outputList.append(simpleText(utterance + '..?'))
outputList += tones.getMessageOutputList(font, 'process_word_relay', imageUrl, 0, petName, relation)
outputList.append(simpleText(keyword + '!'))
contextList.append(contextValue('utterance', 1, {'wr_keyword': keyword, 'word_relay': 'process', 'wr_repeat_count': repeatCount}))
find = True
break
# 사용자의 응답에 펫이 응답을 하지 못하는 경우(db에서 찾지못함)
if not find:
outputList.append(simpleText(utterance + '?!'))
outputList += tones.getMessageOutputList(font, 'win_word_relay', imageUrl, 30, petName, relation)
qrList.append(blockQuickReply('이겼다!', '이겼다!', '5e5cbe0d7b777800010f7d95'))
contextList.append(contextValue('utterance', 1, {'word_relay': 'win', 'wr_repeat_count': repeatCount}))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'process_word_relay')
return ordinaryMessageType(contextList, outputList, qrList)
def get_finish_word_relay_message():
contextList = []
qrList = []
outputList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
outputList += tones.getMessageOutputList(font, 'finish_word_relay', imageUrl, 90, petName, relation)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'finish_word_relay')
return ordinaryMessageType(contextList, outputList, qrList)
#-*-coding: utf-8 -*-
import os
import sys
from flask import request
import datetime
import random
sys.path.append(os.path.dirname(os.path.dirname("main")))
#from Functions.getInstance import *
from Functions.checkFunction import *
from Functions.updateDatabase import *
from Functions.messageTypes import *
import tones
import OpenbuilderSkills.system
def get_recentBehavior_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey,petId)
font = getFont(kakaoUserKey,petId)
now = datetime.datetime.now()
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
if getAccountIdusingUserKey(kakaoUserKey) == '미연동':
outputList = tones.getMessageOutputList(font, 'unconnected_panalty', imageUrl, 30, petName, relation)
contextList.append(contextValue('utterance', 1, {'noise': 'alive'}))
else:
# 60초 안에 두번이상 인식된 적 있는지 확인
isDetected = checkObjectDetection(accountId, ['dog', 'cat'], 60, 2)
if isDetected:
outputList = tones.getMessageOutputList(font, 'dog_detected', imageUrl, 90, petName, relation)
else:
outputList = tones.getMessageOutputList(font, 'not_detected', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_isMeal_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey,petId)
font = getFont(kakaoUserKey,petId)
now = datetime.datetime.now()
# 60초 안에 인식된적 있는지 확인
isDetected = checkObjectDetection(accountId, ['dog', 'cat'], 60, 2)
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
if getAccountIdusingUserKey(kakaoUserKey) == '미연동':
outputList = tones.getMessageOutputList(font, 'unconnected_panalty', imageUrl, 30, petName, relation)
contextList.append(contextValue('utterance', 1, {'noise': 'alive'}))
else:
if isDetected:
outputList = tones.getMessageOutputList(font, 'state_eat', imageUrl, 90, petName, relation)
else:
outputList = tones.getMessageOutputList(font, 'not_detected', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_isSleep_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey,petId)
font = getFont(kakaoUserKey,petId)
now = datetime.datetime.now()
# 60초 안에 인식된적 있는지 확인
isDetected = checkObjectDetection(accountId, ['dog', 'cat'], 60, 2)
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
if getAccountIdusingUserKey(kakaoUserKey) == '미연동':
outputList = tones.getMessageOutputList(font, 'unconnected_panalty', imageUrl, 30, petName, relation)
contextList.append(contextValue('utterance', 1, {'noise': 'alive'}))
else:
if isDetected:
outputList = tones.getMessageOutputList(font, 'state_sleep', imageUrl, 90, petName, relation)
else:
outputList = tones.getMessageOutputList(font, 'not_detected', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_isPlay_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey,petId)
font = getFont(kakaoUserKey,petId)
now = datetime.datetime.now()
# 60초 안에 인식된적 있는지 확인
isDetected = checkObjectDetection(accountId, ['dog', 'cat'], 60, 2)
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
if getAccountIdusingUserKey(kakaoUserKey) == '미연동':
outputList = tones.getMessageOutputList(font, 'unconnected_panalty', imageUrl, 30, petName, relation)
contextList.append(contextValue('utterance', 1, {'noise': 'alive'}))
else:
if isDetected:
outputList = tones.getMessageOutputList(font, 'state_play', imageUrl, 90, petName, relation)
else:
outputList = tones.getMessageOutputList(font, 'not_detected', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_whatIs_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
if checkContextParamValue(payload, 'utterance', 'nonsense_quiz', 'incorrect'):
quizNumber = getContextParamValue(payload, 'utterance', 'nonsense_quiz_number')
outputList = tones.getMessageOutputList(font, 'nonsense_quiz_' + quizNumber + '_X', imageUrl, 90, petName, relation)
elif checkContextParamValue(payload, 'utterance', 'noise', 'alive'):
outputList = tones.getMessageOutputList(font, 'whyNoise', imageUrl, 0, petName, relation)
qrList = []
qrList.append(blockQuickReply('😭', '😭', '5e5ab273b060a50001e5cecd'))
else:
outputList = tones.getMessageOutputList(font, 'whatIs', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_isPet_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'isPet', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_isHungry_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
# 60초 안에 인식된적 있는지 확인
isDetected = checkObjectDetection(accountId, ['dog', 'cat'], 60, 2)
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
if getAccountIdusingUserKey(kakaoUserKey) == '미연동':
outputList = tones.getMessageOutputList(font, 'unconnected_panalty', imageUrl, 30, petName, relation)
contextList.append(contextValue('utterance', 1, {'noise': 'alive'}))
else:
if isDetected:
outputList = tones.getMessageOutputList(font, 'state_eat', imageUrl, 90, petName, relation)
else:
outputList = tones.getMessageOutputList(font, 'not_detected', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_whatThink_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'whatThink', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_isLonely_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'isLonely', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_isHard_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'isHard', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_isWorry_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'isWorry', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_isBoring_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'isBoring', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_whatGender_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'whatGender', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_howOld_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'howOld', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_whatBreed_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'whatBreed', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_isNeutered_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'isNeutered', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_isDisease_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'isDisease', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_whereIs_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey,petId)
font = getFont(kakaoUserKey,petId)
now = datetime.datetime.now()
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
if getAccountIdusingUserKey(kakaoUserKey) == '미연동':
outputList = tones.getMessageOutputList(font, 'unconnected_panalty', imageUrl, 30, petName, relation)
contextList.append(contextValue('utterance', 1, {'noise': 'alive'}))
else:
# 60초 안에 두번이상 인식된 적 있는지 확인
isDetected = checkObjectDetection(accountId, ['dog', 'cat'], 60, 2)
if isDetected:
outputList = tones.getMessageOutputList(font, 'whereIs', imageUrl, 90, petName, relation)
else:
outputList = tones.getMessageOutputList(font, 'not_detected', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_isHide_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
if getAccountIdusingUserKey(kakaoUserKey) == '미연동':
outputList = tones.getMessageOutputList(font, 'unconnected_panalty', imageUrl, 30, petName, relation)
contextList.append(contextValue('utterance', 1, {'noise': 'alive'}))
else:
# 60초 안에 두번이상 인식된 적 있는지 확인
isDetected = checkObjectDetection(accountId, ['dog', 'cat'], 60, 2)
if isDetected:
outputList = tones.getMessageOutputList(font, 'isHide', imageUrl, 90, petName, relation)
else:
outputList = tones.getMessageOutputList(font, 'not_detected', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_wantEat_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'wantEat', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_wantSee_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'wantSee', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_howCanTalk_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'howCanTalk', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_isAngry_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'isAngry', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_whyNoise_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
outputList = tones.getMessageOutputList(font, 'whyNoise', imageUrl, 0, petName, relation)
qrList = []
qrList.append(blockQuickReply('😭', '😭', '5e5ab273b060a50001e5cecd'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_why_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
if checkContextParamValue(payload, 'utterance', 'noise', 'alive'):
outputList = tones.getMessageOutputList(font, 'whyNoise', imageUrl, 0, petName, relation)
qrList = []
qrList.append(blockQuickReply('😭', '😭', '5e5ab273b060a50001e5cecd'))
else:
outputList = tones.getMessageOutputList(font, 'why', imageUrl, 30, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
#-*-coding: utf-8 -*-
import os
import sys
from flask import request
import datetime
import random
sys.path.append(os.path.dirname(os.path.dirname("main")))
from Functions.getInstance import *
from Functions.checkFunction import *
from Functions.updateDatabase import *
from Functions.messageTypes import *
from Functions import pyjosa
# 환경설정 시작
def get_startSetting_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
nickname = getUserNickname(kakaoUserKey)
accountId = getAccountIdusingUserKey(kakaoUserKey)
myFonts = getUserProfileFonts(kakaoUserKey)
myDogiPoint = getUserDogiPoint(kakaoUserKey)
myBadges = getUserProfileBadges(kakaoUserKey)
# 프로필 리스트
outputList += userProfileList(accountId, myFonts, myDogiPoint, myBadges, nickname)
# setting button window
qrList += settingButtonWindow(kakaoUserKey, petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]메인', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_quitSetting_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
outputList.append(simpleText('[시스템] 설정이 완료되었습니다'))
# 챗봇 노란버튼
qrList = basicButtonWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]종료', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_tryConnectAfterRegister_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
outputList.append(simpleText('스마트폰 공기계를 구하셨나보네요😃!'))
outputList.append(simpleText('기기연동을 바로 진행하겠습니다'))
qrList.append(blockQuickReply('생각해볼게요↩️', '생각해볼게요↩️', '5e576884ffa7480001ef080b'))
qrList.append(blockQuickReply('진행합니다', '진행합니다', '5d3fa9d48192ac0001fc4ed1'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]기기연동시도', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_quitConnectAfterRegister_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
nickname = getUserNickname(kakaoUserKey)
accountId = getAccountIdusingUserKey(kakaoUserKey)
myFonts = getUserProfileFonts(kakaoUserKey)
myDogiPoint = getUserDogiPoint(kakaoUserKey)
myBadges = getUserProfileBadges(kakaoUserKey)
outputList.append(simpleText('준비가 되면 다시 찾아와주세요'))
# 프로필 리스트
outputList += userProfileList(accountId, myFonts, myDogiPoint, myBadges, nickname)
# setting button window
qrList = settingButtonWindow(kakaoUserKey, petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]기기연동취소', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 해당 챗봇과 연동된 모든 사용자데이터를 삭제 시도
def get_tryRemoveUser_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
outputList.append(simpleText('[시스템] 기기 연동을 해제하시겠습니까?'))
outputList.append(simpleText('⚠️계속 진행할 시 카카오톡 내의 사용자 정보가 모두 삭제됩니다'))
outputList.append(simpleText('(어플리케이션의 계정정보는 삭제되지 않으며, 다시 이용하려면 기기연동을 다시 진행해야합니다.)'))
qrList.append(blockQuickReply('생각해볼게요↩️', '생각해볼게요↩️', '5dc0040fb617ea000165f420'))
qrList.append(blockQuickReply('계속하겠습니다⚠️', '계속하겠습니다⚠️', '5dc00419b617ea000165f422'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]유저삭제시도', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 유저 삭제 과정 철회
def get_quitRemoveUser_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
nickname = getUserNickname(kakaoUserKey)
accountId = getAccountIdusingUserKey(kakaoUserKey)
myFonts = getUserProfileFonts(kakaoUserKey)
myDogiPoint = getUserDogiPoint(kakaoUserKey)
myBadges = getUserProfileBadges(kakaoUserKey)
outputList.append(simpleText('[시스템] 취소되었습니다'))
# 프로필 리스트
outputList += userProfileList(accountId, myFonts, myDogiPoint, myBadges, nickname)
# setting button window
qrList = settingButtonWindow(kakaoUserKey, petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]유저삭제취소', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# kakaoUserKey로 특정 유저 찾아서 삭제
def get_removeUser_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
# 유저의 모든 게시물 삭제
removeUserAllPost(kakaoUserKey)
# S3에서 유저가 등록한 이미지 삭제
deleteUserImageInStorage(kakaoUserKey)
# 유저 db 삭제
removeUser(kakaoUserKey)
outputList.append(simpleText('[시스템] 기기 연동이 해제되었습니다'))
outputList.append(simpleText('다시 연동하려면 인사를 건네주세요'))
outputList.append(simpleText('(그만)'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]유저삭제성공', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 반려동물 말투 변경 시도
def get_tryChangeFont_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
outputList.append(simpleText('[시스템] ' + petName + '의 말투를 재설정합니다'))
outputList.append(simpleText('말투를 골라주세요'))
qrList.append(blockQuickReply('생각해볼게요↩️', '생각해볼게요↩️', '5dc0040fb617ea000165f420'))
fonts = getUserFonts(kakaoUserKey)
fontList = []
for font in fonts:
fontList.append(getFontFromVar(font['font']))
qrList = fontSettingWindow(fontList)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]말투변경시도', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 말투 변경 과정 철회
def get_quitChangeFont_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
nickname = getUserNickname(kakaoUserKey)
accountId = getAccountIdusingUserKey(kakaoUserKey)
myFonts = getUserProfileFonts(kakaoUserKey)
myDogiPoint = getUserDogiPoint(kakaoUserKey)
myBadges = getUserProfileBadges(kakaoUserKey)
outputList.append(simpleText('[시스템] 취소되었습니다'))
# 프로필 리스트
outputList += userProfileList(accountId, myFonts, myDogiPoint, myBadges, nickname)
# setting button window
qrList = settingButtonWindow(kakaoUserKey, petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]말투변경취소', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 반려동물과의 관계(relation) 변경 시도
def get_tryChangeRelation_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
outputList.append(simpleText('[시스템] ' + petName + '가 앞으로 당신을 뭐라고 불러주면 좋을까요?'))
qrList.append(blockQuickReply('생각해볼게요↩️', '생각해볼게요↩️', '5dc0040fb617ea000165f420'))
qrList = relationSettingWindow()
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]호칭변경시도', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 반려동물과의 관계(relation) 변경 과정 철회
def get_quitChangeRelation_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
nickname = getUserNickname(kakaoUserKey)
accountId = getAccountIdusingUserKey(kakaoUserKey)
myFonts = getUserProfileFonts(kakaoUserKey)
myDogiPoint = getUserDogiPoint(kakaoUserKey)
myBadges = getUserProfileBadges(kakaoUserKey)
outputList.append(simpleText('[시스템] 취소되었습니다'))
# 프로필 리스트
outputList += userProfileList(accountId, myFonts, myDogiPoint, myBadges, nickname)
# setting button window
qrList = settingButtonWindow(kakaoUserKey, petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]호칭변경취소', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 닉네임 변경 시도
def get_tryChangeNickname_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
outputList.append(simpleText('[시스템] 새로운 닉네임을 입력해주세요'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]닉네임변경시도', datetime.datetime.now(), 'none')
contextList.append(contextValue('nickname', 1, {'change_nickname': 'alive'}))
return ordinaryMessageType(contextList, outputList, qrList)
# 닉네임 변경 과정 철회
def get_quitChangeNickname_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
nickname = getUserNickname(kakaoUserKey)
accountId = getAccountIdusingUserKey(kakaoUserKey)
myFonts = getUserProfileFonts(kakaoUserKey)
myDogiPoint = getUserDogiPoint(kakaoUserKey)
myBadges = getUserProfileBadges(kakaoUserKey)
outputList.append(simpleText('[시스템] 취소되었습니다'))
# 프로필 리스트
outputList += userProfileList(accountId, myFonts, myDogiPoint, myBadges, nickname)
# setting button window
qrList = settingButtonWindow(kakaoUserKey, petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]닉네임변경취소', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
#-*-coding: utf-8 -*-
import os
import sys
from flask import request
import datetime
import random
sys.path.append(os.path.dirname(os.path.dirname("main")))
from Functions.getInstance import *
from Functions.checkFunction import *
from Functions.updateDatabase import *
from Functions.messageTypes import *
import tones
def get_hello_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
# 유저 발화(utterance) 불러오기
utterance = getUserUtteranceFromPayload(payload)
# accountId 불러오기
accountId = getAccountIdusingUserKey(kakaoUserKey)
# petId 불러오기
petId = getPetId(kakaoUserKey)
# petName 불러오기
petName = getPetName(petId)
# relation 불러오기
relation = getRelation(kakaoUserKey, petId)
# font 불러오기
font = getFont(kakaoUserKey, petId)
# 현재 시간 불러오기
now = datetime.datetime.now()
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'hello', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_showPicture_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'showPicture', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_hey_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'hey', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_yes_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'yes', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_bye_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'bye', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_love_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'love', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_cute_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'cute', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_fine_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'fine', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_missYou_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'missYou', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_goodJob_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'goodJob', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_goodNight_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'goodNight', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_sorry_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'sorry', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_scold_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'scold', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_thanks_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'thanks', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_notCute_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'notCute', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_dontNeedToKnow_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'dontNeedToKnow', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_cheerUp_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'cheerUp', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_yourRight_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'yourRight', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_promise_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'promise', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_dontSleep_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'dontSleep', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_idiot_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'idiot', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_onlyYou_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'onlyYou', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_swearWord_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'swearWord', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_dontKnow_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
if checkContextParamValue(payload, 'utterance', 'nonsense_quiz', 'incorrect'):
quizNumber = getContextParamValue(payload, 'utterance', 'nonsense_quiz_number')
outputList = tones.getMessageOutputList(font, 'nonsense_quiz_' + quizNumber + '_X', imageUrl, 90, petName, relation)
elif checkContextParamValue(payload, 'utterance', 'word_relay', 'process'):
outputList = tones.getMessageOutputList(font, 'lose_word_relay', imageUrl, 0, petName, relation)
qrList.append(blockQuickReply('😅', '😅', '5e5cbe0d7b777800010f7d95'))
contextList.append(contextValue('utterance', 1, {'word_relay': 'lose', 'repeat_count': repeatCount}))
else:
outputList = tones.getMessageOutputList(font, 'dontKnow', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_wantKnow_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
if checkContextParamValue(payload, 'utterance', 'nonsense_quiz', 'incorrect'):
quizNumber = getContextParamValue(payload, 'utterance', 'nonsense_quiz_number')
outputList = tones.getMessageOutputList(font, 'nonsense_quiz_' + quizNumber + '_X', imageUrl, 90, petName, relation)
else:
outputList = tones.getMessageOutputList(font, 'wantKnow', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_amazing_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'amazing', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_smart_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'smart', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_buySnack_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'buySnack', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_letsPlay_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'letsPlay', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_notInterest_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'notInterest', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_howToDo_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'howToDo', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_goodMorning_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'goodMorning', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_nextTime_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'nextTime', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_bonApeti_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'bonApeti', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_ofCourse_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'ofCourse', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_doNotEatPeoFood_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'doNotEatPeoFood', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_IKnow_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'IKnow', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_letsGo_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'letsGo', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_dontCry_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'dontCry', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_wantChangeFont_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'wantChangeFont', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_funny_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'funny', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_funTime_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'funTime', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_forgive_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'forgive', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_meToo_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'meToo', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_study_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'study', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_letsEatPeoFood_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'letsEatPeoFood', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_noJam_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'noJam', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_letsFight_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'letsFight', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_betterThanYou_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'betterThanYou', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_withYou_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'withYou', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_letsTalk_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'letsTalk', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
#-*-coding: utf-8 -*-
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname("main")))
from Functions.getInstance import *
from Functions.updateDatabase import *
from Functions.checkFunction import *
from Functions import pyjosa
from Functions.messageTypes import *
import tones
from OpenbuilderSkills import minigame
import Api.Urls.imageUrls
import Config.systemKey
from flask import request
import ast
from pyfcm import FCMNotification
api_key = Config.systemKey.FCM_API_KEY
push_service = FCMNotification(api_key=api_key)
import datetime
import time
import random
from urllib import parse
# 챗봇 캐로셀 한번에 최대로 띄우는 카드뷰 갯수
post_size_by_page = 10
def get_fallBack_message():
# 특정 확률에 따라 넌센스퀴즈 시작
rv = random.randrange(0, 10)
if rv < 3:
return minigame.get_start_nonsense_quiz_message()
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
utterance = getUserUtteranceFromPayload(payload)
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, datetime.datetime.now(), 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
intent = getIntentName(payload)
beforeIntent = getContextParamValue(payload, 'intent', 'before')
try:
intentRepeatCount = int(getContextParamValue(payload, 'intent', 'repeat'))
except:
intentRepeatCount = 1
contextList += intentRepeatContext(beforeIntent, intent, intentRepeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
# 사용자가 이미지를 채팅창에 입력한 경우
if 'http://dn-m.talk.kakao.com/talkm/' in utterance:
outputList = tones.getMessageOutputList(font, 'fallBackImage', imageUrl, 90, petName, relation)
else:
outputList = tones.getMessageOutputList(font, 'fallBack', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_repeatSameUtterance_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'repeatSameUtterance', imageUrl, 10, petName, relation)
contextList.append(contextValue('utterance', 1, {'repeat': '2', 'before': utterance}))
# 같은말을 반복하는 경우의 패널티
rv = random.randrange(17,23)
incDogipoint(kakaoUserKey, -rv)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_repeatFallback_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
intent = getIntentName(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'repeatFallback', imageUrl, 10, petName, relation)
contextList.append(contextValue('intent', 1, {'repeat': '3', 'before': intent}))
# 알아들을 수 없는 말을 반복하는 경우의 패널티
rv = random.randrange(17, 23)
incDogipoint(kakaoUserKey, -rv)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# qr코드 스캔을 통한 카메라 등록 권유: 현재 미사용
def get_tryAddCamera_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
deviceId = getDeviceIdUsingAccountId(accountId)
# 사용자 등록 여부를 확인하여 등록된 사용자가 아니라면 등록창으로
if isUserRegistered(kakaoUserKey) == False:
return get_startUserRegister_message()
# 펫 설정이 끝나지 않았다면 펫리스트로
if isPetSettingFinished(kakaoUserKey) == False:
return get_getPetList_message()
fcmToken = getFcmTokenUsingDeviceId(deviceId)
registration_id = fcmToken
# 카메라 등록 요청 push 보내기
data_message = {
"fromAPI": "requestDailyConfiguration"
}
result = push_service.notify_single_device(registration_id=registration_id, data_message=data_message)
outputList.append(simpleText('[시스템] [QR코드 스캔]을 진행합니다'))
qrList.append(blockQuickReply('알겠습니다', '알겠습니다', '5cf531058192ac0001cab975'))
return ordinaryMessageType(contextList, outputList, qrList)
# qr코드 스캔을 통한 카메라 등록 수행: 현재 미사용
def get_addCameraUseQRcode_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
# 사용자 등록 여부를 확인하여 등록된 사용자가 아니라면 등록창으로
if isUserRegistered(kakaoUserKey) == False:
return get_startUserRegister_message()
# 펫 설정이 끝나지 않았다면 펫리스트로
if isPetSettingFinished(kakaoUserKey) == False:
return get_getPetList_message()
data = ast.literal_eval(getQRcodeScanData(payload, 'addCameraDevice'))
# 스캔한 device 정보
deviceId = data['deviceId']
passwordCode = data['passwordCode']
# device id로 fcmToken 불러오기
fcmToken = getFcmTokenUsingDeviceId(deviceId)
registration_id = fcmToken
try:
# 해당 유저에게 이미 등록되어있는 device인지 확인하고 이미 있다면 passwordCode만 update
if isDeviceIdRegisteredInUser(kakaoUserKey, deviceId) == True:
updatePasswordCode(kakaoUserKey, deviceId, passwordCode)
# 최초 등록이라면 스캔한 user에 해당 device 정보 저장
else:
addDeviceToUser(kakaoUserKey, deviceId, passwordCode)
# 카메라 등록 완료 push 보내기
data_message2 = {
"fromAPI": "finishDailyConfiguration"
}
result = push_service.notify_single_device(registration_id=registration_id, data_message=data_message2)
outputList.append(simpleText('[시스템] 인증 완료되었습니다'))
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
# 챗봇 노란버튼
qrList = basicButtonWindow(petName)
except:
outputList.append(simpleText('[시스템] [QR코드 스캔]을 실패했습니다'))
qrList.append(blockQuickReply('재시도', '재시도', '5d70c2ee8192ac00011f6f97'))
return ordinaryMessageType(contextList,outputList,qrList)
# 영상을 수신할 device를 골라서 해당 device의 영상을 불러옴
def get_turnOnCamera_message():
contextList = []
outputList = []
qrList = []
buttonList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
deviceList = getDeviceListUsingUserKey(kakaoUserKey)
if len(deviceList) == 0:
outputList.append(simpleText('연동된 기기가 없어 ' + petName + '의 실시간 영상을 볼 수 없어요😔'))
qrList = basicButtonWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[카드]미연동으로실시간확인실패', datetime.datetime.now(), 'none')
elif not checkAppAlive(accountId):
title = '오프라인'
detail = '어플리케이션이 꺼져있습니다'
card = buttonCard(title, detail, Api.Urls.imageUrls.nullType1, [])
outputList.append(card)
qrList = streamingWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[카드]앱종료로실시간확인실패', datetime.datetime.now(), 'none')
else:
deviceId = getDeviceIdUsingUserKey(kakaoUserKey)
fixedPetName = pyjosa.replace_josa(petName + '(은)는')
# deviceId로 fcmToken찾기
fcmToken = getFcmTokenUsingDeviceId(deviceId)
devicePasswordCode = getPasswordCodeUsingDeviceId(deviceId)
CODE = devicePasswordCode.split('_')
roomName = CODE[0] + str(int(time.time()))
# 갱신된 roomName push보내기
registration_id = fcmToken
data_message = {
"roomName": roomName,
"fromAPI": "moveToDetection"
}
result = push_service.notify_single_device(registration_id=registration_id, data_message=data_message)
# 스트리밍서버에 스트리밍 요청 url
streamingUrl = Config.systemKey.STREAMING_SERVER_URL + '/room/' + roomName + '?deviceId=' + deviceId + '&passwordCode=' + devicePasswordCode + '&fixedPetName=' + fixedPetName
streamingUrl = parse.urlparse(streamingUrl).geturl()
title = petName + '보기'
rv = random.randrange(0, 2)
if rv == 0:
detail = '해당 페이지는 사용 후 만료됩니다'
else:
detail = '와이파이 환경에서의 사용을 권장합니다'
buttonList.append(singleButton('webLink', petName + ' 실시간확인 ▶', streamingUrl))
streamingCard = buttonCard(title, detail, "https://dogibogi-storage.s3-ap-northeast-1.amazonaws.com/cardImage/pusa_wide_01.jpg", buttonList)
outputList.append(streamingCard)
qrList = streamingWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[카드]실시간확인', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 어플리케이션 상태 진단
def get_appStatus_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
# 앱이 살아있는지 확인
if checkAppAlive(accountId):
logData = getLastAndroidLogData(accountId)
temperature = logData['battery_temperature']
percent = logData['battery_percent']
title = '어플리케이션 상태'
detail = '🌡️기기 온도: ' + getDeviceTemperature(temperature) + '\n' + '🔋잔여 배터리: ' + getDeviceBatteryPercent(percent)
card = buttonCard(title, detail, "https://dogibogi-storage.s3-ap-northeast-1.amazonaws.com/cardImage/pusa_wide_01.jpg", [])
outputList.append(card)
else:
title = '오프라인'
detail = '어플리케이션이 꺼져있습니다'
card = buttonCard(title, detail, Api.Urls.imageUrls.nullType1, [])
outputList.append(card)
qrList = streamingWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[카드]어플진단', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 어플리케이션 강제 종료 시도
def get_tryAppRemoteQuit_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
# 앱이 살아있는지 확인
if checkAppAlive(accountId):
outputList.append(simpleText('⚠️정말로 집에있는 어플리케이션을 종료하시겠습니까?'))
qrList.append(blockQuickReply('예', '예', '5e5f61693ad5250001d681e0'))
qrList.append(blockQuickReply('아니오', '아니오', '5d369987ffa748000122e9a1'))
else:
outputList.append(simpleText('이미 오프라인 상태입니다'))
qrList = streamingWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[카드]어플강제종료시도', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 어플리케이션 강제 종료
def get_appRemoteQuit_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
deviceId = getDeviceIdUsingUserKey(kakaoUserKey)
fcmToken = getFcmTokenUsingDeviceId(deviceId)
registration_id = fcmToken
data_message = {
"fromAPI": "remoteQuit"
}
result = push_service.notify_single_device(registration_id=registration_id, data_message=data_message)
outputList.append(simpleText('어플리케이션이 종료되었습니다'))
outputList.append(simpleText('다시 어플을 실행해야 ' + petName + '을 볼 수 있어요'))
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[카드]어플강제종료', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# qr코드 스캔을 통한 account 정보 불러와서 신규 유저 등록
def get_userRegisterUseQRcode_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
pfKey = getPlusFriendUserKeyFromPayload(payload)
updatefinishConfiguration(kakaoUserKey, False)
try:
# 스캔한 qr code data
data = ast.literal_eval(getQRcodeScanData(payload, 'userRegister'))
accountId = data['id']
petIds = data['petIds']
# 이미 유저가 있는 경우 기존 pet list를 삭제하고 스캔한 정보로 최신화
if isUserRegistered(kakaoUserKey):
clearUserPetList(kakaoUserKey)
updateAccountIdToUser(kakaoUserKey, accountId)
addPetsToUser(kakaoUserKey, petIds)
# 유저가 없는 경우 신규 유저 등록
else:
addNewUser(kakaoUserKey, pfKey, accountId, petIds)
# 해당 account에서 deviceId 불러오기
deviceId = getDeviceIdUsingAccountId(accountId)
# deviceId로 passwordCode 불러오기
passwordCode = getPasswordCodeUsingDeviceId(deviceId)
# user device list 에 deviceId, passwordCode 추가
addDeviceToUser(kakaoUserKey, deviceId, passwordCode)
# deviceId로 fcmToken 찾기
fcmToken = getFcmTokenUsingDeviceId(deviceId)
# 해당 디바이스에 fcmToken 이용해서 push날리기
registration_id = fcmToken
data_message = {
"fromAPI": "connectKakaoConfiguration"
}
result = push_service.notify_single_device(registration_id=registration_id, data_message=data_message)
outputList.append(simpleText('기기연동이 완료되었어요'))
outputList.append(simpleText('이제 아래 버튼을 눌러 남은 설정을 완료해주시겠어요?'))
qrList.append(blockQuickReply('진행할게요', '진행할게요', '5d42e91d92690d00012b208b'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[초기설정]기기연동완료', datetime.datetime.now(), 'none')
except:
outputList.append(simpleText('기기연동을 실패했습니다😔'))
outputList.append(simpleText('어플리케이션 회원가입뒤에 나오는 QR코드를 스캔해야해요'))
outputList.append(simpleText('올바른 QR코드를 스캔했는지 다시 확인해보시겠어요?'))
qrList.append(blockQuickReply('기기연동 다시진행', '기기연동 다시진행', '5d3fa9d48192ac0001fc4ed1'))
qrList.append(blockQuickReply('무슨말인지 모르겠어요🤔', '무슨말인지 모르겠어요🤔', '5d412052b617ea0001a327bb'))
return ordinaryMessageType(contextList, outputList, qrList)
# qr코드 스캔없이 신규 유저 등록
def get_userRegisterWithoutDevice_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
outputList.append(simpleText('네🙂 그러면 채팅을 위해 간단히 몇가지만 물어볼게요'))
outputList.append(simpleText('지금 같이 살고있는 반려동물의 이름을 말해주시겠어요?'))
qrList.append(blockQuickReply('반려동물이 없어요😓', '반려동물이 없어요😓', '5e63c1efa04f9b0001891113'))
contextList.append(contextValue('register', 1, {'without_device': 'alive'}))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[초기설정]기기연동없이유저등록', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_settingPetNameWithoutDevice():
outputList = []
qrList = []
contextList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
pfKey = getPlusFriendUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petName = getFixedPetName(utterance)
petId = getNewPetId()
addNewPet(petId, petName, '', '', '', '', '')
accountId = '미연동'
petIds = [
{
'petId': petId,
'relation': '',
'font': ''
}
]
# 신규 유저 등록
addNewUser(kakaoUserKey, pfKey, accountId, petIds)
outputList.append(simpleText(petName + '.. 정말 귀여운 이름이에요😊'))
outputList.append(simpleText(pyjosa.replace_josa(petName + '(와)과 채팅을 하기 위해서는 ' + petName + '사진이 필요해요')))
outputList.append(simpleText('아래 버튼을 눌러 계속 진행해주세요'))
qrList.append(blockQuickReply('진행할게요', '진행할게요', '5d42e91d92690d00012b208b'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[초기설정]기기연동없이유저등록완료', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 유저 등록 진행 시작. 사용자에게 유저 등록 제안
def get_startUserRegister_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
outputList.append(simpleText('우리집 멍멍이와 채팅하러 오셨군요!😃'))
outputList.append(simpleText('지금바로 카카오톡과 어플리케이션 연동을 진행해볼까요?'))
qrList.append(blockQuickReply('연동 바로진행🔗', '연동 바로진행🔗', '5d3fa9d48192ac0001fc4ed1'))
qrList.append(blockQuickReply('연동없이 시작하기🐾', '연동없이 시작하기🐾', '5e57326992690d0001c9c4c1'))
qrList.append(blockQuickReply('도기보기를 알고싶어요😲', '도기보기를 알고싶어요😲', '5d4112cbb617ea0001a32762'))
qrList.append(blockQuickReply('다음에 다시올게요🙄', '다음에 다시올게요🙄', '5e578234ffa7480001ef0a0c'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[초기설정]기기연동시작', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# TODO 카드리스트를 제거하여 간소화하는 방안으로
# 유저 등록 완료후 환경설정. 펫 리스트 출력
def get_getPetList_message():
contextList = []
outputList = []
qrList = []
buttonList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey,petId)
font = getFont(kakaoUserKey,petId)
# users - pets - imageUrls에 있는 url 중 하나 랜덤으로 꺼내서 imageUrl로 쓰기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
# url들 중 하나 뽑아서 imageUrl로 설정
imageUrl = getObjectByRandom(imageUrls)
title = petName
if relation != '' and font != '' and imageUrl != '':
detail = getPetPersonality(relation,font)
buttonList.append(singleButton('block', petName + '짤 더 올리기', '5d42e91d92690d00012b208b'))
pet1 = buttonCard(title, detail, imageUrl, buttonList)
outputList.append(pet1)
# 챗봇 노란버튼
qrList = basicButtonWindow(petName)
return ordinaryMessageType(contextList,outputList,qrList)
else:
buttonList.append(singleButton('block', '🐶도기설정', '5d42e91d92690d00012b208b'))
detail = '🐶도기설정 미완료'
pet1 = buttonCard(title, detail, Api.Urls.imageUrls.nullType1, buttonList)
outputList.append(pet1)
return ordinaryMessageType(contextList, outputList, qrList)
# kakao측 url list(string type)을 split해서 dict로 저장
def splitKakaoImageUrlList(imageUrlList):
imageUrlList = imageUrlList.replace("List", "")
imageUrlList = imageUrlList.replace("(", "")
imageUrlList = imageUrlList.replace(")", "")
imageUrlList = list(imageUrlList.split(", "))
return imageUrlList
# 펫 이미지 추가(설정)
# firebase storage에 petImage/[kakaoUserKey] directory에 저장
def get_addPetImage_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey,petId)
font = getFont(kakaoUserKey,petId)
# payload에서 이미지 url list 가져오기
kakaoImageUrlList = getQRcodeScanData(payload, 'addPetImage')
# kakao image url split해서 dict에 저장
imageUrlList = splitKakaoImageUrlList(kakaoImageUrlList)
# TODO Pending: background processing 하고싶은데.. 잘모르겠다
# kakaoUserKey와 imageUrls 입력받아서 해당 이미지를 AWS S3 storage에 저장
uploadResizedImageToStorage(kakaoUserKey,petId,imageUrlList)
uploadImageToStorage(kakaoUserKey, petId, imageUrlList)
outputList.append(simpleText('정상적으로 업로드되었습니다'))
outputList.append(simpleText('업로드한 사진은 사진첩에서 언제든지 꺼내볼 수 있어요!'))
# 설정 완료했는데 이미지만 추가하는 경우
if relation != '' and font != '':
qrList = basicButtonWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]펫이미지추가', datetime.datetime.now(), 'none')
# 이미지 추가하고 이어서 font 설정
else:
outputList.append(simpleText('그럼 이제 ' + petName + '의 말투를 골라주세요'))
# quick Reply List에 설정 가능한 말투들 추가: 버튼으로 적용
fonts = getUserFonts(kakaoUserKey)
fontList = []
for font in fonts:
fontList.append(getFontFromVar(font['font']))
qrList = fontSettingWindow(fontList)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[초기설정]펫이미지설정', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 펫 폰트 설정(font)
# 이미지 추가할 때 받은 문구들로 font 설정해서 db에 저장
def get_setPetFont_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
# 앞서 버튼으로 입력한 말투들을 font로 가져옴
utterance = getUserUtteranceFromPayload(payload)
font = getFontFromUtterance(utterance)
# 가져온 font db에 저장
updateFont(kakaoUserKey,petId,font)
# 최초의 설정에서 말투를 설정한 경우 호칭설정으로 진행
if getRelation(kakaoUserKey,petId) == "":
outputList.append(simpleText(petName + '와는 무슨사이인가요?'))
qrList = relationSettingWindow()
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[초기설정]말투설정', datetime.datetime.now(), 'none')
# 환경설정에서 말투를 바꾸는 경우
else:
nickname = getUserNickname(kakaoUserKey)
accountId = getAccountIdusingUserKey(kakaoUserKey)
myFonts = getUserProfileFonts(kakaoUserKey)
myDogiPoint = getUserDogiPoint(kakaoUserKey)
myBadges = getUserProfileBadges(kakaoUserKey)
outputList.append(simpleText('[시스템] 변경되었습니다'))
# 프로필 리스트
outputList += userProfileList(accountId, myFonts, myDogiPoint, myBadges, nickname)
# setting button window
qrList = settingButtonWindow(kakaoUserKey, petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]말투변경성공', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 펫 관계 설정(relation)
# 폰트 설정할 때 받은 utterance로 relation 설정해서 db에 저장
def get_setPetRelation_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
utterance = getUserUtteranceFromPayload(payload)
relation = utterance
updateRelation(kakaoUserKey,petId,relation)
# 이미 챗봇에서 초기설정을 한번 진행했고, 환경설정에서 관계를 재설정하는 경우
if getFinishConfiguration(kakaoUserKey):
nickname = getUserNickname(kakaoUserKey)
accountId = getAccountIdusingUserKey(kakaoUserKey)
myFonts = getUserProfileFonts(kakaoUserKey)
myDogiPoint = getUserDogiPoint(kakaoUserKey)
myBadges = getUserProfileBadges(kakaoUserKey)
outputList.append(simpleText('[시스템] 변경되었습니다'))
# 프로필 리스트
outputList += userProfileList(accountId, myFonts, myDogiPoint, myBadges, nickname)
# setting button window
qrList = settingButtonWindow(kakaoUserKey, petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]호칭변경성공', datetime.datetime.now(), 'none')
# 최초의 설정에서 관계를 설정한 경우 카드뷰로 진행
else :
outputList.append(simpleText('설정이 완료되었습니다'))
card_list = serviceIntroductionCardList(petName)
outputList.append(cardArray(card_list))
outputList.append(simpleText('앗! 때마침 ' + petName + '에게 카톡이 왔어요!💌'))
qrList.append(blockQuickReply('확인해보기!', '확인해보기!', '5d43e36692690d000134afab'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[초기설정]호칭설정', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 사진보기
def get_openPhotoAlbum_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
postPagelist = getPhotoPostPageList(kakaoUserKey, post_size_by_page)
pageSize = len(postPagelist)
pageNumber = 0
# list가 비어있으면 사진 추가 권유하기
if len(postPagelist) == 0:
outputList.append(simpleText('[시스템] 사진첩에 ' + petName + '사진을 추가하시겠어요?'))
qrList.append(blockQuickReply('추가할게요😃', '추가할게요😃', '5d42e91d92690d00012b208b'))
return ordinaryMessageType(contextList, outputList, qrList)
card_list = myImagePostCardList(postPagelist, pageNumber)
outputList.append(cardArray(card_list))
qrList = qrList + photoAlbumWindow(pageSize, pageNumber, petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]사진보기', datetime.datetime.now(), 'none')
contextList.append(contextValue('post', 3, {'like': 'alive', 'my_page': str(pageNumber)}))
return ordinaryMessageType(contextList, outputList, qrList)
# 사진 삭제
def get_deletePhotoPost_message():
outputList = []
qrList = []
contextList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
title = getContextParamValue(payload, 'post', 'title')
# 해당 게시물 삭제하기
deleteImagePost(kakaoUserKey, title)
outputList.append(simpleText('[시스템] 삭제되었습니다'))
postPagelist = getPhotoPostPageList(kakaoUserKey, post_size_by_page)
pageSize = len(postPagelist)
pageNumber = 0
# list가 비어있으면 사진 추가 권유하기
if len(postPagelist) == 0:
outputList.append(simpleText('[시스템] 사진첩에 ' + petName + '사진을 추가하시겠어요?'))
qrList.append(blockQuickReply('추가할게요😃', '추가할게요😃', '5d42e91d92690d00012b208b'))
return ordinaryMessageType(contextList, outputList, qrList)
card_list = myImagePostCardList(postPagelist, pageNumber)
outputList.append(cardArray(card_list))
qrList = qrList + photoAlbumWindow(pageSize, pageNumber, petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]사진삭제', datetime.datetime.now(), 'none')
contextList.append(contextValue('post', 3, {'like': 'alive', 'my_page': str(pageNumber)}))
return ordinaryMessageType(contextList, outputList, qrList)
# 다음페이지 사진 보기
def get_photoAlbumNextPage_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
postPagelist = getPhotoPostPageList(kakaoUserKey, post_size_by_page)
pageSize = len(postPagelist)
try:
pageNumber = int(getContextParamValue(payload, 'post', 'my_page')) + 1
except:
pageNumber = 0
card_list = myImagePostCardList(postPagelist, pageNumber)
outputList.append(cardArray(card_list))
qrList = qrList + photoAlbumWindow(pageSize, pageNumber, petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]내사진보기', datetime.datetime.now(), 'none')
contextList.append(contextValue('post', 3, {'like': 'alive', 'my_page': str(pageNumber)}))
return ordinaryMessageType(contextList, outputList, qrList)
# 이전페이지 사진 보기
def get_photoAlbumBackPage_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
postPagelist = getPhotoPostPageList(kakaoUserKey, post_size_by_page)
pageSize = len(postPagelist)
try:
pageNumber = int(getContextParamValue(payload, 'post', 'my_page')) - 1
except:
pageNumber = 0
card_list = myImagePostCardList(postPagelist, pageNumber)
outputList.append(cardArray(card_list))
qrList = qrList + photoAlbumWindow(pageSize, pageNumber, petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]내사진보기', datetime.datetime.now(), 'none')
contextList.append(contextValue('post', 3, {'like': 'alive', 'my_page': str(pageNumber)}))
return ordinaryMessageType(contextList, outputList, qrList)
# 다른 펫들의 사진보기
def get_openOthersPhotoAlbum_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
photoPostList = getOthersRandomPhotoPostList(kakaoUserKey)
card_list = imagePostCardList(photoPostList, kakaoUserKey)
outputList.append(cardArray(card_list))
qrList = qrList + othersPhotoWindow()
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]다른사람사진', datetime.datetime.now(), 'none')
contextList.append(contextValue('post', 1, {'like': 'alive'}))
return ordinaryMessageType(contextList, outputList, qrList)
# 다른 펫들의 사진 랭킹순으로 보기
def get_openOthersPhotoByRank_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
photoPostList = getPhotoPostListByRank(kakaoUserKey)
card_list = imagePostCardList(photoPostList, kakaoUserKey)
outputList.append(cardArray(card_list))
qrList = qrList + othersPhotoWindow()
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]다른사람사진랭킹순', datetime.datetime.now(), 'none')
contextList.append(contextValue('post', 1, {'like': 'alive'}))
return ordinaryMessageType(contextList, outputList, qrList)
# 다른 펫들의 사진 최신순으로 보기
def get_openOthersPhotoByNewest_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
photoPostList = getPhotoPostListByNewest(kakaoUserKey)
card_list = imagePostCardList(photoPostList, kakaoUserKey)
outputList.append(cardArray(card_list))
qrList = qrList + othersPhotoWindow()
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]다른사람사진최신순', datetime.datetime.now(), 'none')
contextList.append(contextValue('post', 1, {'like': 'alive'}))
return ordinaryMessageType(contextList, outputList, qrList)
# 사진첩에서 좋아요 누른경우
def get_pushPhotoLike_message():
outputList = []
qrList = []
contextList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
utterance2 = utterance.replace('[시스템] ', '')
u1 = utterance2.split('님의 ')
nickname = u1[0]
userkey = getKakaoUserKeyUsingNickName(nickname)
u2 = u1[1].split('에 ')
postTitle = u2[0]
updatePostLike(userkey, postTitle, 1)
photoPostList = getOthersRandomPhotoPostList(kakaoUserKey)
card_list = imagePostCardList(photoPostList, kakaoUserKey)
outputList.append(cardArray(card_list))
qrList = qrList + othersPhotoWindow()
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]사진좋아요', datetime.datetime.now(), 'none')
contextList.append(contextValue('post', 1, {'like': 'alive'}))
return ordinaryMessageType(contextList, outputList, qrList)
# 내 사진에 좋아요 누른 경우
def get_pushLikeMyPhoto_message():
outputList = []
qrList = []
contextList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
photoPostList = getOthersRandomPhotoPostList(kakaoUserKey)
card_list = imagePostCardList(photoPostList, kakaoUserKey)
outputList.append(cardArray(card_list))
qrList = qrList + othersPhotoWindow()
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]내사진에좋아요', datetime.datetime.now(), 'none')
contextList.append(contextValue('post', 1, {'like': 'alive'}))
return ordinaryMessageType(contextList, outputList, qrList)
def get_backToMain_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
# 펫 이미지 리스트 불러오기
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'backToMain', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[시스템]메인으로', now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
# 환경 설정 모두 완료
def get_finishUserConfiguration_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
font = getFont(kakaoUserKey,petId)
relation = getRelation(kakaoUserKey,petId)
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
deviceList = getDeviceListUsingUserKey(kakaoUserKey)
# 기기연동하지 않고 환경설정 완료한 경우
if len(deviceList) == 0:
contextList = []
qrList = basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'welcomeMessage', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[초기설정]기기연동없이설정완료', datetime.datetime.now(), 'none')
else:
# user로 account id 불러오기
accountId = getAccountIdusingUserKey(kakaoUserKey)
# account id 로 device id 불러오기
deviceId = getDeviceIdUsingAccountId(accountId)
# device id로 fcmToken 불러오기
fcmToken = getFcmTokenUsingDeviceId(deviceId)
# 어플리케이션에 환경설정 완료 push 날리기: 해당 푸쉬를 받아야 메인화면으로 넘어갈 수 있다
registration_id = fcmToken
data_message = {
"fromAPI": "finishConfiguration"
}
result = push_service.notify_single_device(registration_id=registration_id, data_message=data_message)
contextList = []
qrList = basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'welcomeMessage', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[초기설정]설정완료', datetime.datetime.now(), 'none')
updatefinishConfiguration(kakaoUserKey, True)
return ordinaryMessageType(contextList, outputList, qrList)
# account 로그아웃 상태, 사용자에게 재로그인 요청
def get_requestAccountLogin_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
outputList.append(simpleText('[시스템] 기존 계정이 로그아웃되었습니다'))
outputList.append(simpleText('어플리케이션을 다시 로그인해주시거나 기존 사용자 데이터를 초기화 후에 재시도해주세요'))
outputList.append(simpleText('사용자데이터를 초기화할까요?'))
qrList.append(blockQuickReply('다시 로그인했습니다', '다시 로그인했습니다', '5d2452c3b617ea00011545ae'))
qrList.append(blockQuickReply('초기화하겠습니다⚠️', '초기화하겠습니다⚠️', '5dc00419b617ea000165f422'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]사용자초기화시도', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_photoPostSpec_message():
outputList = []
qrList = []
contextList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
utterance2 = utterance.replace('[시스템] ', '')
postTitle = utterance2.replace(' 더보기🔍', '')
card_list = []
button_list = []
try:
postLike = getPostLike(kakaoUserKey, postTitle)
postImageUrl = getPostImageUrl(kakaoUserKey, postTitle)
button_list.append(single_button('message', '제목수정', '[시스템] ' + postTitle + ' 수정✏️'))
button_list.append(single_button('message', '사진삭제', '[시스템] ' + postTitle + ' 삭제🗑️'))
card_list.append(squareCard(postTitle, '♡ ' + str(postLike), postImageUrl, 500, 500, button_list))
outputList.append(cardArray(card_list))
qrList.append(blockQuickReply('돌아가기↩', '돌아가기↩', '5e4d343b8192ac000136c516'))
contextList.append(contextValue('post', 1, {'like': 'alive'}))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]더보기', datetime.datetime.now(), 'none')
except:
outputList.append(simpleText('해당 게시물을 불러올 수 없습니다😓'))
qrList.append(blockQuickReply('돌아가기↩', '돌아가기↩', '5e4d343b8192ac000136c516'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]더보기오류', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_tryFixPhotoPostTitle_message():
outputList = []
qrList = []
contextList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
utterance2 = utterance.replace('[시스템] ', '')
postTitle = utterance2.replace(' 수정✏️', '')
outputList.append(simpleText('[시스템] 새로운 제목을 채팅창에 입력해주세요'))
contextList.append(contextValue('post', 1, {'fix_title': 'alive', 'kakaoUserKey': kakaoUserKey, 'title': postTitle}))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]제목수정시도', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_fixPhotoPostTitle_message():
outputList = []
qrList = []
contextList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
beforeTitle = getContextParamValue(payload, 'post', 'title')
afterTitle = utterance
if not isPostTitleValid(afterTitle):
outputList.append(simpleText('[시스템] 이미 존재하는 제목입니다'))
outputList.append(simpleText('[시스템] 새로운 제목을 채팅창에 입력해주세요'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]제목수정재시도', datetime.datetime.now(), 'none')
contextList.append(contextValue('post', 1, {'fix_title': 'alive', 'kakaoUserKey': kakaoUserKey, 'title': beforeTitle}))
return ordinaryMessageType(contextList, outputList, qrList)
updatePostTitle(kakaoUserKey, beforeTitle, afterTitle)
outputList.append(simpleText('[시스템] 변경되었습니다'))
card_list = []
button_list = []
postLike = getPostLike(kakaoUserKey, afterTitle)
postImageUrl = getPostImageUrl(kakaoUserKey, afterTitle)
card_list.append(squareCard(afterTitle, '♡ ' + str(postLike), postImageUrl, 500, 500, button_list))
outputList.append(cardArray(card_list))
qrList.append(blockQuickReply('돌아가기↩', '돌아가기↩', '5e4d343b8192ac000136c516'))
# qrList = qrList + basicButtonWindow(petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]더보기', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_tryDeletePhotoPost_message():
outputList = []
qrList = []
contextList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
utterance2 = utterance.replace('[시스템] ', '')
postTitle = utterance2.replace(' 삭제🗑️', '')
outputList.append(simpleText('[시스템] 정말로 삭제하시겠습니까?'))
qrList.append(blockQuickReply('돌아가기↩', '돌아가기↩', '5e4d343b8192ac000136c516'))
qrList.append(blockQuickReply('삭제하기🗑️', '삭제하기🗑️', ''))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]사진삭제시도', datetime.datetime.now(), 'none')
contextList.append(
contextValue('post', 1, {'delete_post': 'alive', 'kakaoUserKey': kakaoUserKey, 'title': postTitle}))
return ordinaryMessageType(contextList, outputList, qrList)
def get_changeNickname_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
newNickname = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
myFonts = getUserProfileFonts(kakaoUserKey)
myDogiPoint = getUserDogiPoint(kakaoUserKey)
myBadges = getUserProfileBadges(kakaoUserKey)
if not isNicknameValid(newNickname):
outputList.append(simpleText('[시스템] 이미 존재하는 닉네임이에요'))
outputList.append(simpleText('새로운 닉네임을 채팅창에 입력해주세요'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[사진첩]닉네임변경재시도', datetime.datetime.now(), 'none')
contextList.append(contextValue('nickname', 1, {'change_nickname': 'alive'}))
return ordinaryMessageType(contextList, outputList, qrList)
updateNickname(kakaoUserKey, newNickname)
outputList.append(simpleText('[시스템] 변경되었습니다'))
# 프로필 리스트
outputList += userProfileList(accountId, myFonts, myDogiPoint, myBadges, newNickname)
# setting button window
qrList = settingButtonWindow(kakaoUserKey, petName)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]닉네임변경', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_suggestConnect_message():
contextList = []
outputList = []
qrList = []
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
outputList.append(simpleText('[시스템] 댕댕어 번역에 오류가 발생하고있어요🥺'))
outputList.append(simpleText('남는 스마트폰을 연동시키면 ' + petName + '와 더욱 잘 대화할 수 있을텐데요..'))
qrList.append(blockQuickReply('기기연동하러가기🔗', '기기연동하러가기🔗', '5e576874ffa7480001ef0808'))
qrList.append(blockQuickReply('생각해볼게요🤫', '생각해볼게요🤫', '5e576884ffa7480001ef080b'))
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, '[환경설정]기기연동권유', datetime.datetime.now(), 'none')
return ordinaryMessageType(contextList, outputList, qrList)
#-*-coding: utf-8 -*-
import os
import sys
from flask import request
import datetime
sys.path.append(os.path.dirname(os.path.dirname("main")))
from Functions.getInstance import *
from Functions.checkFunction import *
from Functions.updateDatabase import *
from Functions.messageTypes import *
import tones
def get_userComebackLate_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userComebackLate', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userEat_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userEat', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userComebackHome_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userComebackHome', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userDrink_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userDrink', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userGame_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userGame', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userPublicTransit_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userPublicTransit', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userToilet_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userToilet', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userHangover_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userHangover', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userExercise_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userExercise', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userWatchMedia_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userWatchMedia', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userGoingToEat_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userGoingToEat', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userFinishEat_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userFinishEat', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userDoNothing_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userDoNothing', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userDoTiredThing_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userDoTiredThing', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userLate_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userLate', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userComebackSoon_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userComebackSoon', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
#-*-coding: utf-8 -*-
import os
import sys
from flask import request
import datetime
sys.path.append(os.path.dirname(os.path.dirname("main")))
from Functions.getInstance import *
from Functions.checkFunction import *
from Functions.updateDatabase import *
from Functions.messageTypes import *
import tones
def get_userLaugh_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'laugh', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userCry_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'cry', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userSad_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userSad', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userTired_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userTired', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userHungry_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userHungry', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userWorry_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userWorry', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userBoring_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userBoring', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userAnnoying_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userAnnoying', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userScrewed_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userScrewed', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userHassle_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userHassle', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userCheerful_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userCheerful', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userUpset_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userUpset', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userLonely_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userLonely', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userDelicious_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userDelicious', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userNonsense_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userNonsense', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userAngry_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userAngry', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userCold_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userCold', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userHot_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userHot', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)
def get_userSleepy_message():
payload = request.get_json()
kakaoUserKey = getKakaoUserKeyFromPayload(payload)
utterance = getUserUtteranceFromPayload(payload)
accountId = getAccountIdusingUserKey(kakaoUserKey)
petId = getPetId(kakaoUserKey)
petName = getPetName(petId)
relation = getRelation(kakaoUserKey, petId)
font = getFont(kakaoUserKey, petId)
now = datetime.datetime.now()
category = ''
imageUrls = getPetImageUrls(kakaoUserKey, category)
imageUrl = getObjectByRandom(imageUrls)
# 사용자가 보낸 메시지 messageLogs Collection에 저장
addMessageLogs(kakaoUserKey, 'bot', utterance, now, 'none')
contextList = []
beforeUtterance = getContextParamValue(payload, 'utterance', 'before')
try:
repeatCount = int(getContextParamValue(payload, 'utterance', 'repeat'))
except:
repeatCount = 1
contextList += utteranceRepeatContext(beforeUtterance, utterance, repeatCount)
qrList = []
qrList = addRandomHintQR(qrList, petName)
qrList = qrList + basicButtonWindow(petName)
outputList = tones.getMessageOutputList(font, 'userSleepy', imageUrl, 90, petName, relation)
# 메시지 로그 저장 sender: bot, receiver: user
addMessageLogs('bot', kakaoUserKey, outputList, now, 'none')
return ordinaryMessageType(contextList, outputList, qrList)