async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='(์ฃผ)๋๋๋ก๋์์ ์ ๊ณตํ๋ "๋ก๋๋น์ฒจ๋ฒํธ ์๋น์ค"์์.' # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element(image_url=BRICK_DEFAULT_IMAGE, title='๋ก๋๋น์ฒจ๋ฒํธ ์๋น์ค', subtitle='(์ฃผ)๋๋๋ก๋์์ ์ ๊ณตํ๋ "๋ก๋๋น์ฒจ๋ฒํธ ์๋น์ค"์์.') ]))) ] await self.fb.send_messages(send_message) await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() num = input_data['store'][0]['value'] if self.fb.log_id is None: self.fb.log_id = 'FBSendMessage|%d' % int(time.time() * 1000) res = requests.get( url= 'http://www.nlotto.co.kr/common.do?method=getLottoNumber&drwNo=%s' % num) save_a_log_to_server({ 'log_id': self.fb.log_id, 'user_id': self.fb.user_id, 'os': '', 'application': 'facebook', 'api_code': 'lotto', 'api_provider_code': 'chatbrick', 'origin': 'webhook_server', 'end': int(time.time() * 1000), 'remark': '์ธ๋ถ ๋ก๋ ๋น์ฒจ๋ฒํธ ์กฐํ API ์์ฒญ์ ๋ณด๋' }) parsed_result = res.json() await self.brick_db.delete() await self.fb.send_message(message=Message( text= '๋๊ตฌ๋๊ตฌ๋๊ตฌ ~\n์กฐํํ์ {drwNo}ํ ๋น์ฒจ๋ฒํธ๋ {drwtNo1},{drwtNo2},{drwtNo3},{drwtNo4},{drwtNo5},{drwtNo6} ์ ๋ณด๋์ค๋ฒํธ๋ {bnusNo} ์ด์์.\n๋ถ๋ 1๋ฑ์ด๊ธธ!!' .format(**parsed_result), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem(title='๋ค๋ฅธํ์ฐจ๊ฒ์', payload='brick|lotto|get_started') ]))) return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='geniecontents์์ ์ ๊ณตํ๋ "๋ ๋ณ ์ค๋์ ์ด์ธ ์๋น์ค"์์.' # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element( image_url=BRICK_DEFAULT_IMAGE, title='๋ ๋ณ ์ค๋์ ์ด์ธ ์๋น์ค', subtitle='geniecontents์์ ์ ๊ณตํ๋ "๋ ๋ณ ์ค๋์ ์ด์ธ ์๋น์ค"์์.') ]))) ] await self.fb.send_messages(send_message) await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() num = input_data['store'][0]['value'] now = datetime.datetime.today() res = requests.get( url= 'https://www.geniecontents.com/fortune/internal/v1/daily?birthYear=%s&targetYear=%s&targetMonth=%s&targetDay=%s' % (num, now.year, now.month, now.day)) try: parsed_result = res.json() parsed_result.update(parsed_result['list'][0]) send_message = [ Message(text='์กฐํ๋ ๊ฒฐ๊ณผ์์'), Message(attachment=ImageAttachment( url='https:%s' % parsed_result['animalImgUrl'])), Message( text= '์ถ์๋ ๋ : {year}\n์ด์ธ : {summary}\n์์ธํ ๋ด์ฉ : {description}' .format(**parsed_result), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ด์ธ๊ฒ์', payload='brick|luck|get_started') ])) ] except: send_message = [Message(text='์กฐํ๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.')] await self.brick_db.delete() await self.fb.send_messages(send_message) return None
async def facebook(self, command): if command == 'get_started': send_message = [ Message( attachment=ImageAttachment( url=BRICK_DEFAULT_IMAGE ) ), Message( text='์๋ ํ์ธ์. ์ฅ์ ํ ์คํธ์ ๋๋ค.' ), Message( text='ํ์ฌ์์น๋ฅผ ๋ณด๋ด์ฃผ์ธ์.', quick_replies=QuickReply( quick_reply_items=[ QuickReplyLocationItem() ] ) ) ] await self.fb.send_messages(send_message) return None
from blueforge.apis.facebook import CreateFacebookApiClient, RequestDataFormat, Recipient, Message, QuickReplyTextItem, \ QuickReply client = CreateFacebookApiClient( access_token='d') recipient = Recipient(recipient_id='1053565541409779') quick_replies = [QuickReplyTextItem(title='์', payload='yes', image_url=None), QuickReplyTextItem(title='์๋์', payload='no', image_url=None)] message = Message(text='Hard Study', quick_replies=QuickReply(quick_reply_items=quick_replies)) final_message = RequestDataFormat(recipient=recipient, message=message) print(client.send_message(final_message))
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='์ธ๊ต๋ถ์์ ์ ๊ณตํ๋ "ํด์ธ๊ตญ๊ฐ์ ๋ณด ์๋น์ค"์์.' # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element(image_url=BRICK_DEFAULT_IMAGE, title='ํด์ธ๊ตญ๊ฐ์ ๋ณด ์๋น์ค', subtitle='์ธ๊ต๋ถ์์ ์ ๊ณตํ๋ "ํด์ธ๊ตญ๊ฐ์ ๋ณด ์๋น์ค"์์.') ]))) ] await self.fb.send_messages(send_message) await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() country = input_data['store'][0]['value'] res = requests.get( url= 'http://apis.data.go.kr/1262000/CountryBasicService/getCountryBasicList?serviceKey=%s&numOfRows=10&pageSize=10&pageNo=1&startPage=1&countryName=%s' % (input_data['data']['api_key'], urllib.parse.quote_plus(country))) items = get_items_from_xml(res) if type(items) is dict: if items.get('code', '00') == '99' or items.get('code', '00') == '30': send_message = [ Message( text= 'chatbrick ํํ์ด์ง์ ์ฌ๋ฐ๋ฅด์ง ์์ API key๋ฅผ ์ ๋ ฅํ์ด์. ๋ค์ ํ๋ฒ ํ์ธํด์ฃผ์ธ์.', ) ] else: send_message = [Message(text=UNKNOWN_ERROR_MSG)] else: if len(items) == 0: send_message = [ Message(text='์กฐํ๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.', quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ๊ตญ๊ฐ๊ฒ์', payload='brick|country|get_started') ])) ] else: items[0]['basic'] = remove_html_tag(items[0]['basic']) send_message = [ Message(attachment=ImageAttachment( url=download_and_save_image(items[0]['imgUrl']))), Message( text= '{continent}\n*{countryName}({countryEnName})*\n{basic}' .format(**items[0]), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ๊ตญ๊ฐ๊ฒ์', payload='brick|country|get_started') ])) ] await self.brick_db.delete() await self.fb.send_messages(send_message) return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='Microsoft Azure-AI Cognitive์์ ์ ๊ณตํ๋ "๋์ฅ์ ์ฌ์ง์ด ์ผ๋ง๋ ๋ฎ์๋์ง ์๋ ค๋๋ฆฌ๋ ์๋น์ค"์์.' # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element( image_url=BRICK_DEFAULT_IMAGE, title='๋์ฅ์ ์ฌ์ง์ด ์ผ๋ง๋ ๋ฎ์๋์ง ์๋ ค๋๋ฆฌ๋ ์๋น์ค', subtitle= 'Microsoft Azure-AI Cognitive์์ ์ ๊ณตํ๋ "๋์ฅ์ ์ฌ์ง์ด ์ผ๋ง๋ ๋ฎ์๋์ง ์๋ ค๋๋ฆฌ๋ ์๋น์ค"์์.' ) ]))) ] await self.fb.send_messages(send_message) await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() face_1 = input_data['store'][0]['value'] face_2 = input_data['store'][1]['value'] face_1_res = await Face.get_face_id(input_data['data'], face_1) face_2_res = await Face.get_face_id(input_data['data'], face_2) if type(face_2_res) is dict and face_2_res.get('error', False): send_message = [ Message( text='์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค.\n๋ค์ ์๋ํด์ฃผ์ธ์.\n\nCode: %s\nMessage: %s' % (face_2_res['error'].get('code'), face_2_res['error'].get('message')), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ผ๊ตด๋น๊ต', payload='brick|face|get_started') ])) ] elif type(face_1_res) is dict and face_1_res.get('error', False): send_message = [ Message( text='์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค.\n๋ค์ ์๋ํด์ฃผ์ธ์.\n\nCode: %s\nMessage: %s' % (face_1_res['error'].get('code'), face_1_res['error'].get('message')), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ผ๊ตด๋น๊ต', payload='brick|face|get_started') ])) ] else: if len(face_1_res) == 0 or len(face_2_res) == 0: send_message = [ Message(text='์ผ๊ตด ๊ฐ์ง๋ฅผ ์คํจํ์ต๋๋ค.\n๋ค์ ์๋ํด์ฃผ์ธ์.', quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ผ๊ตด๋น๊ต', payload='brick|face|get_started') ])) ] else: face_compare = await Face.get_data(input_data['data'], face_1_res[0]['faceId'], face_2_res[0]['faceId']) if len(face_compare) == 0: send_message = [ Message( text='๋๋์ฒด ๋ฎ์ ๊ตฌ์์ ์ฐพ์ผ๋ ค์ผ ์ฐพ์ ์๊ฐ ์๋ค์.', quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ผ๊ตด๋น๊ต', payload='brick|face|get_started') ])) ] else: send_message = [ Message( text= '์กฐํ๋ ๊ฒฐ๊ณผ์์.\n1์ด ๋ง์ ์ด์์.\n์) 0.37508 ์ 37% ๋ฎ์๊ฑฐ์์.' ), Message( text='๋๊ตฌ๋๊ตฌ!! ๋ฑ ์ด์ ๋ ๋ฎ์๋ค์.\n๋ฎ์์์น: {confidence}'. format(**face_compare[0]), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ผ๊ตด๋น๊ต', payload='brick|face|get_started') ])) ] await self.fb.send_messages(send_message) await self.brick_db.delete() return None
def web_hook(request): print(request) if request.method == 'GET': if request.GET.get('hub.verify_token') == verify_token: return HttpResponse(request.GET.get('hub.challenge')) elif request.method == 'POST': print(request.body) data = json.loads(request.body.decode('UTF-8')) for entry in data['entry']: for message in entry['messaging']: receiver = message['sender']['id'] if 'message' in message: if 'quick_reply' in message['message']: payload = message['message']['quick_reply']['payload'] if payload == '1': send_message = Message(text='1. ํ์ผ ์์นจ 8์ ์ด์ ์ฃผ๋ฌธ๊ฑด๊น์ง ๋๋ถ๋ถ ๋น์ผ ๋ฐฐ์ก๋ฉ๋๋ค. \n\n2. 8์ ์ดํ ์ฃผ๋ฌธ๊ฑด์ ๋ค์๋ ๋ฐฐ์ก๋ฉ๋๋ค. \n๊ธ์์ผ 8์ ์ดํ ์ฃผ๋ฌธ๊ฑด์ ๋ค์์ฃผ ์์์ผ์ ๋ฐฐ์ก๋ฉ๋๋ค.\n\n3. ๋ธ๋ผ์ด๋ฐฑ ์ปคํผ๋ CJ ๋ํํต์ด์ ํตํด ์ปคํผ๋ฅผ ๋ณด๋ด๋๋ฆฝ๋๋ค.\n์ผํ๋ชฐ์์ ๊ตฌ๋งคํ์ ๊ฒฝ์ฐ, ํ๋ฐฐ ์ถ๊ณ ์ ๋ฌธ์๋ฉ์์ง๋ก ์ก์ฅ ๋ฒํธ๋ฅผ ์๋ดํด๋๋ฆฝ๋๋ค. \n๋ฌธ์๋ก ๋ฐ์ผ์ ์ก์ฅ๋ฒํธ๋ฅผ ๋ณต์ฌํ์ ์ ์๋ CJ ๋ํํต์ด ๋ฐฐ์ก์กฐํ ์ฌ์ดํธ์์ ์กฐํํด์ฃผ์๋ฉด ๋ฉ๋๋ค.\n\n4. ์ฝ๋๋ธ๋ฃจ์ ์๋๋ฅผ ๊ฐ์ด ์ฃผ๋ฌธํ์๋ฉด ๊ฐ๊ฐ ๋ค๋ฅธ ๊ณณ์์ ๋ฐฐ์ก๋์ด, ํ๋ฐฐ๋ฅผ ๋๊ฐ๋ก ๋๋ ๋ฐ์ผ์ญ๋๋ค.\n\n๋ ๊ถ๊ธํ์ ์ ์ ์ธ์ ๋ ๋ฌธ์์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค^^') elif payload == '2': send_message = Message(text='1. ์ํ ์ ์ฒญ : ์๋ ๋งํฌ๋ฅผ ๋๋ฌ ์ํ ๋ฐ์ก์ ํ์ํ ์ ๋ณด๋ฅผ ์ ๋ ฅํด์ฃผ์๋ฉด ๋ฉ๋๋ค.\n๋ง ๋ณด์๊ณ ๊ถ๊ธํ์ ์ฌํญ์ด๋ ์ถ๊ฐ ์์ฒญ ์ฌํญ์ด ์์ผ์๋ฉด ์ธ์ ๋ ๋ฌธ์์ฃผ์ธ์!\n\n2. ์ํ ๋ฐฐ์ก : ์ ์ฒญํด์ฃผ์ ํ 2~3์ผ ์ด๋ด ๋ฐฐ์ก์ด ์์๋ฉ๋๋ค. \n์ ์ฒญ์ด ๋ค์ด์จ ์์๋๋ก ์์ฐจ์ ์ผ๋ก ๋ฐฐ์กํด๋๋ฆฌ์ค๋ ์กฐ๊ธ๋ง ๊ธฐ๋ค๋ ค์ฃผ์ธ์^^ \n\n๋ ๊ถ๊ธํ์ ์ ์ ์ธ์ ๋ ๋ฌธ์์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค^^') else: text = message['message']['text'] if text =='์ ํ': quick_replies = [QuickReplyTextItem(title='์ ํ ๋ฐฐ์ก ์ผ์ ', payload='1', image_url=None), QuickReplyTextItem(title='์ํ ์ ์ฒญ ๋ฐฉ๋ฒ๊ณผ ์ํ ๋ฐฐ์ก', payload='2', image_url=None)] send_message = Message(text='์ํ์๋ ๋ฒํผ์ ์ ํํด์ฃผ์ธ์', quick_replies=QuickReply(quick_reply_items=quick_replies)) else : send_message = Message(text='์๋ ํ์ธ์. ๋ธ๋ผ์ด๋ฐฑ ์ปคํผ์ ๋๋ค.\n๊ถ๊ธํ์ ์ ์ ๋ณธ ๊ณต์ ์นด์นด์คํก ์์ด๋ / ๊ณต์ ์ ํ 1644-1530 ๋ก ์ฐ๋ฝ ์ฃผ์๋ฉด ์ธ์ ๋ ์ง ์น์ ํ ๋ต๋ณ๋๋ฆฌ๊ฒ ์ต๋๋ค! \n\n"์ ํ"์ ์ ๋ ฅํด์ฃผ์ธ์.') req.send_message(RequestDataFormat(recipient=Recipient(recipient_id=receiver), message=send_message)) return JsonResponse(data) return HttpResponse('Failed to request', status=404)
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='์ธ์ฒ๊ตญ์ ๊ณตํญ๊ณต์ฌ์์ ์ ๊ณตํ๋ "์ถ๊ตญ์ฅ ๋๊ธฐ์ธ์ ์กฐํ ์๋น์ค"์์.' # ), # Message( # attachment=TemplateAttachment( # payload=GenericTemplate( # elements=[ # Element( # image_url='https://www.chatbrick.io/api/static/brick/img_brick_13_002.png', # title='์ 1์ฌ๊ฐํฐ๋ฏธ๋', # subtitle='์ 1์ฌ๊ฐํฐ๋ฏธ๋์ ๊ฒ์ดํธ๋ณ ๋๊ธฐ์ธ์์ ์๋ ค๋๋ ค์.', # buttons=[ # PostBackButton( # title='1์ฌ๊ฐํฐ๋ฏธ๋ ์กฐํ', # payload='brick|icn|1' # ) # ] # ), # Element( # image_url='https://www.chatbrick.io/api/static/brick/img_brick_13_002.png', # title='์ 2์ฌ๊ฐํฐ๋ฏธ๋', # subtitle='์ 2์ฌ๊ฐํฐ๋ฏธ๋์ ๊ฒ์ดํธ๋ณ ๋๊ธฐ์ธ์์ ์๋ ค๋๋ ค์.', # buttons=[ # PostBackButton( # title='2์ฌ๊ฐํฐ๋ฏธ๋ ์กฐํ', # payload='brick|icn|2' # ) # ] # ) # ] # ) # ) # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element( image_url=BRICK_DEFAULT_IMAGE, title='์ถ๊ตญ์ฅ ๋๊ธฐ์ธ์ ์กฐํ ์๋น์ค', subtitle='์ธ์ฒ๊ตญ์ ๊ณตํญ๊ณต์ฌ์์ ์ ๊ณตํ๋ "์ถ๊ตญ์ฅ ๋๊ธฐ์ธ์ ์กฐํ ์๋น์ค"์์.') ]))), Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element( image_url= 'https://www.chatbrick.io/api/static/brick/img_brick_13_002.png', title='์ 1์ฌ๊ฐํฐ๋ฏธ๋', subtitle='์ 1์ฌ๊ฐํฐ๋ฏธ๋์ ๊ฒ์ดํธ๋ณ ๋๊ธฐ์ธ์์ ์๋ ค๋๋ ค์.', buttons=[ PostBackButton(title='1์ฌ๊ฐํฐ๋ฏธ๋ ์กฐํ', payload='brick|icn|1') ]), Element( image_url= 'https://www.chatbrick.io/api/static/brick/img_brick_13_002.png', title='์ 2์ฌ๊ฐํฐ๋ฏธ๋', subtitle='์ 2์ฌ๊ฐํฐ๋ฏธ๋์ ๊ฒ์ดํธ๋ณ ๋๊ธฐ์ธ์์ ์๋ ค๋๋ ค์.', buttons=[ PostBackButton(title='2์ฌ๊ฐํฐ๋ฏธ๋ ์กฐํ', payload='brick|icn|2') ]) ]))) ] await self.fb.send_messages(send_message) await self.brick_db.save() elif command == '1' or command == '2': input_data = await self.brick_db.get() res = requests.get( url= 'http://openapi.airport.kr/openapi/service/StatusOfDepartures/getDeparturesCongestion?serviceKey=%s&terno=%s' % (input_data['data']['api_key'], command), headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36' }) items = get_items_from_xml(res) if type(items) is dict: if items.get('code', '00') == '99' or items.get('code', '00') == '30': send_message = [ Message( text= 'chatbrick ํํ์ด์ง์ ์ฌ๋ฐ๋ฅด์ง ์์ API key๋ฅผ ์ ๋ ฅํ์ด์. ๋ค์ ํ๋ฒ ํ์ธํด์ฃผ์ธ์.', ) ] else: send_message = [Message(text=UNKNOWN_ERROR_MSG)] else: if command == '1': the_other = '2' else: the_other = '1' raw_data = items[0] sending_message = '์ {terno} ์ฌ๊ฐํฐ๋ฏธ๋\n์กฐํ๋ ์ง : {cgtdt}\n์กฐํ์๊ฐ : {cgthm}'.format( **raw_data) if command == '1': sending_message += '\n2๋ฒ ์ถ๊ตญ์ฅ: %s๋ช (%s)' % ( raw_data['gateinfo1'], GATE_INFO[raw_data['gate1']]) sending_message += '\n3๋ฒ ์ถ๊ตญ์ฅ: %s๋ช (%s)' % ( raw_data['gateinfo2'], GATE_INFO[raw_data['gate2']]) sending_message += '\n4๋ฒ ์ถ๊ตญ์ฅ: %s๋ช (%s)' % ( raw_data['gateinfo3'], GATE_INFO[raw_data['gate3']]) sending_message += '\n5๋ฒ ์ถ๊ตญ์ฅ: %s๋ช (%s)' % ( raw_data['gateinfo4'], GATE_INFO[raw_data['gate4']]) elif command == '2': sending_message += '\n1๋ฒ ์ถ๊ตญ์ฅ: %s๋ช (%s)' % ( raw_data['gateinfo1'], GATE_INFO[raw_data['gate1']]) sending_message += '\n2๋ฒ ์ถ๊ตญ์ฅ: %s๋ช (%s)' % ( raw_data['gateinfo2'], GATE_INFO[raw_data['gate2']]) send_message = [ Message( text=sending_message, quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem(title='์๋ก๊ณ ์นจ', payload='brick|icn|%s' % command), QuickReplyTextItem(title='์ %s์ฌ๊ฐํฐ๋ฏธ๋ ์กฐํ' % the_other, payload='brick|icn|%s' % the_other) ])) ] await self.fb.send_messages(send_message) return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='ํ๊ตญ์ฒ๋ฌธ์ฐ๊ตฌ์์์ ์ ๊ณตํ๋ "์ฌ๋๋ ์กฐํ ์๋น์ค"์์.' # ), # Message( # attachment=TemplateAttachment( # payload=GenericTemplate( # elements=[ # Element( # image_url='https://www.chatbrick.io/api/static/brick/img_brick_11_002.png', # title='์ด๋ฒ๋ฌ์ ์ฌ๋๋ ', # subtitle='์ด๋ฒ๋ฌ์ ๊ณตํด์ผ์ ์๋ ค๋๋ ค์.', # buttons=[ # PostBackButton( # title='์ด๋ฒ๋ฌ์กฐํ', # payload='brick|holiday|this_month' # ) # ] # ), # Element( # image_url='https://www.chatbrick.io/api/static/brick/img_brick_11_002.png', # title='์ง์ ํ ๋ /์์ ์ฌ๋๋ ', # subtitle='์ ๋ ฅํ์ ๋ /์์ ๊ณตํด์ผ์ ์๋ ค๋๋ ค์.', # buttons=[ # PostBackButton( # title='์กฐํํ ๋ /์ ์ ๋ ฅ', # payload='brick|holiday|specify_month' # ) # ] # ) # ] # ) # ) # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element(image_url=BRICK_DEFAULT_IMAGE, title='์ฌ๋๋ ์กฐํ ์๋น์ค', subtitle='ํ๊ตญ์ฒ๋ฌธ์ฐ๊ตฌ์์์ ์ ๊ณตํ๋ "์ฌ๋๋ ์กฐํ ์๋น์ค"์์.') ]))), Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element( image_url= 'https://www.chatbrick.io/api/static/brick/img_brick_11_002.png', title='์ด๋ฒ๋ฌ์ ์ฌ๋๋ ', subtitle='์ด๋ฒ๋ฌ์ ๊ณตํด์ผ์ ์๋ ค๋๋ ค์.', buttons=[ PostBackButton( title='์ด๋ฒ๋ฌ์กฐํ', payload='brick|holiday|this_month') ]), Element( image_url= 'https://www.chatbrick.io/api/static/brick/img_brick_11_002.png', title='์ง์ ํ ๋ /์์ ์ฌ๋๋ ', subtitle='์ ๋ ฅํ์ ๋ /์์ ๊ณตํด์ผ์ ์๋ ค๋๋ ค์.', buttons=[ PostBackButton( title='์กฐํํ ๋ /์ ์ ๋ ฅ', payload='brick|holiday|specify_month') ]) ]))) ] await self.fb.send_messages(send_message) elif command == 'specify_month': await self.brick_db.save() elif command == 'final' or command == 'next_month' or command == 'prev_month' or command == 'this_month': if command == 'this_month': await self.brick_db.save(is_pass=True) input_data = await self.brick_db.get() year = input_data['store'][0]['value'] month = input_data['store'][1]['value'] if year.strip() == 'pass' or month.strip() == 'pass': today = datetime.datetime.today() year = today.year month = today.month if command == 'next_month': plus_month = dateutil.parser.parse( '%s %s 01' % (year, month)) + relativedelta(months=1) year = plus_month.year month = plus_month.month elif command == 'prev_month': plus_month = dateutil.parser.parse( '%s %s 01' % (year, month)) - relativedelta(months=1) year = plus_month.year month = plus_month.month if command == 'next_month' or command == 'prev_month': rslt = await self.brick_db.update({ '$set': { 'store.0.value': str(year), 'store.1.value': str(month) } }) if self.fb.log_id is None: self.fb.log_id = 'FBSendMessage|%d' % int(time.time() * 1000) res = requests.get( url= 'http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getRestDeInfo?serviceKey=%s&solYear=%s&solMonth=%s' % (input_data['data']['api_key'], year, str(month).rjust(2, '0'))) save_a_log_to_server({ 'log_id': self.fb.log_id, 'user_id': self.fb.user_id, 'os': '', 'application': 'facebook', 'api_code': 'holiday', 'api_provider_code': 'chatbrick', 'origin': 'webhook_server', 'end': int(time.time() * 1000), 'remark': '์ฌ๋๋ ์กฐํ ์ธ๋ถ API ์์ฒญ์ ๋ณด๋' }) items = get_items_from_xml(res) if type(items) is dict: if items.get('code', '00') == '99' or items.get('code', '00') == '30': send_message = [ Message( text= 'chatbrick ํํ์ด์ง์ ์ฌ๋ฐ๋ฅด์ง ์์ API key๋ฅผ ์ ๋ ฅํ์ด์. ๋ค์ ํ๋ฒ ํ์ธํด์ฃผ์ธ์.', ) ] else: send_message = [Message(text=UNKNOWN_ERROR_MSG)] else: if len(items) == 0: if command == 'prev_month' or command == 'this_month': send_message = [ Message(attachment=TemplateAttachment( payload=ButtonTemplate( text='%s-%s\n์กฐํ๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.' % (year, month), buttons=[ PostBackButton( title='์ด์ ๋ฌ ์กฐํ', payload='brick|holiday|prev_month' ), PostBackButton( title='๋ค์๋ฌ ์กฐํ', payload='brick|holiday|next_month') ]))) ] else: send_message = [ Message( text='์กฐํ๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.', quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ๋ฌ ์กฐํํ๊ธฐ', payload='brick|holiday|get_started') ])) ] else: sending_message = [] for item in items: sending_message.append( '๋ ์ง: {locdate}\n๊ณตํด์ผ ์ ๋ฌด: {isHoliday}\n๊ณตํด์ผ ๋ด์ฉ: {dateName}' .format(**item)) send_message = [ Message(attachment=TemplateAttachment( payload=ButtonTemplate( text='\n\n'.join(sending_message), buttons=[ PostBackButton( title='์ด์ ๋ฌ ์กฐํ', payload='brick|holiday|prev_month'), PostBackButton( title='๋ค์๋ฌ ์กฐํ', payload='brick|holiday|next_month') ]))) ] await self.fb.send_messages(send_message) return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='๊ณผํ๊ธฐ์ ์ ๋ณดํต์ ๋ถ ์ฐ์ ์ฌ์ ๋ณธ๋ถ์์ ์ ๊ณตํ๋ "์ฐ์ฒด๊ตญํ๋ฐฐ์กฐํ ์๋น์ค"์์.' # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element( image_url=BRICK_DEFAULT_IMAGE, title='์ฐ์ฒด๊ตญํ๋ฐฐ์กฐํ ์๋น์ค', subtitle='๊ณผํ๊ธฐ์ ์ ๋ณดํต์ ๋ถ ์ฐ์ ์ฌ์ ๋ณธ๋ถ์์ ์ ๊ณตํ๋ "์ฐ์ฒด๊ตญํ๋ฐฐ์กฐํ ์๋น์ค"์์.' ) ]))) ] await self.fb.send_messages(send_message) await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() delivery_tracking_code = input_data['store'][0]['value'] res = requests.get( url= 'http://openapi.epost.go.kr/trace/retrieveLongitudinalService/retrieveLongitudinalService/getLongitudinalDomesticList?_type=json&serviceKey=%s&rgist=%s' % (input_data['data']['api_key'], delivery_tracking_code)) parsed_data = res.json() items = [] send_message = [] if parsed_data.get('LongitudinalDomesticListResponse', False): if parsed_data['LongitudinalDomesticListResponse'][ 'cmmMsgHeader']['successYN'] == 'Y': if parsed_data['LongitudinalDomesticListResponse'].get( 'longitudinalDomesticList', False): if type(parsed_data['LongitudinalDomesticListResponse'] ['longitudinalDomesticList']) is dict: items.append( parsed_data['LongitudinalDomesticListResponse'] ['longitudinalDomesticList']) else: items = parsed_data[ 'LongitudinalDomesticListResponse'][ 'longitudinalDomesticList'] tracking_status = '๋ฐ๋๋ถ: {addrseNm} / ๋ณด๋ด๋๋ถ: {applcntNm}\n๋ฐฐ์ก์ํ: {dlvySttus} ({dlvyDe})\n์งํ์ํฉ:\n'.format( **parsed_data['LongitudinalDomesticListResponse']) if len(items) == 0: tracking_status += '์ํ ๊ธฐ๋ก ์์' else: for item in items: tracking_status += '{dlvyDate} {dlvyTime} {nowLc} {processSttus} {detailDc}\n'.format( **item) send_message = [ Message(text=tracking_status, quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ด์ก์ฅ๋ฒํธ์กฐํ', payload='brick|epost|get_started') ])) ] else: send_message = [ Message( text='์๋ฌ์ฝ๋: {returnCode}\n์๋ฌ๋ฉ์์ง: {errMsg}'.format( ** parsed_data['LongitudinalDomesticListResponse'] ['cmmMsgHeader'], ), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ด์ก์ฅ๋ฒํธ์กฐํ', payload='brick|epost|get_started') ])) ] if len(send_message) == 0: send_message = [Message(text='์กฐํ๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.')] await self.brick_db.delete() await self.fb.send_messages(send_message) return None
async def facebook(self, command): if command == 'get_started': send_message = [ Message( attachment=ImageAttachment( url=BRICK_DEFAULT_IMAGE ) ), Message( text='๊ฒฝ์ฐฐ์ฒญ์์ ์ ๊ณตํ๋ "์ต๋๋ฌผ์กฐํ ์๋น์ค"์์. ๋ถ๋ฅ/์ง์ญ/๊ธฐ๊ฐ์ผ๋ก ์กฐํ๊ธฐ๋ฅ๊ณผ ์์น๊ธฐ๋ฐ์ผ๋ก ์กฐํ ๊ธฐ๋ฅ์ ์ ๊ณตํด์.' ), Message( attachment=TemplateAttachment( payload=GenericTemplate( elements=[ Element( image_url='https://www.chatbrick.io/api/static/brick/img_brick_02_002.png', title='๋ถ๋ฅ/์ง์ญ/๊ธฐ๊ฐ์ผ๋ก ์กฐํ', subtitle='์ต๋ํ ๋ฌผํ์ ๋ํ ๋ถ๋ฅ, ์ง์ญ, ๊ธฐ๊ฐ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์์ด์.', buttons=[ PostBackButton( title='์กฐํํ๊ธฐ', payload='brick|lostnfound|Menu1' ) ] ), Element( image_url='https://www.chatbrick.io/api/static/brick/img_brick_02_002.png', title='์์น๊ธฐ๋ฐ์ผ๋ก ์กฐํ', subtitle='ํ์ฌ ์์น์ฃผ์์ ๊ทผ์ฒ์ ์์นํ ์ง๊ตฌ๋์ ์ต๋๋ฌผ ์ ๋ณด๋ฅผ ์กฐํ ํ ์ ์์ด์.', buttons=[ PostBackButton( title='์กฐํํ๊ธฐ', payload='brick|lostnfound|Menu2' ) ] ) ] ) ) ) ] await self.fb.send_messages(send_message) await self.brick_db.save(show_msg=False) elif command == 'Menu1': pass elif command == 'final': input_data = await self.brick_db.get() keyword = input_data['store'][0]['value'] to = datetime.datetime.today() today = '%d-%02d-%02d' % (to.year, to.month, to.day) res = requests.get( url='http://openapi.mpm.go.kr/openapi/service/RetrievePblinsttEmpmnInfoService/getList?serviceKey=%s&pageNo=1&startPage=1&numOfRows=20&pageSize=20&Pblanc_ty=e01&Begin_de=%s&Sort_order=1&Kwrd=%s' % ( input_data['data']['api_key'], today, keyword)) items = get_items_from_xml(res) if len(items) == 0: send_message = [ Message( text='์กฐํ๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.', quick_replies=QuickReply( quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ํค์๋๊ฒ์', payload='brick|public_jobs|get_started' ) ] ) ) ] else: sending_message = [] for item in items: sending_message.append('*{title}*\n{deptName}\n{regdate} ~ {enddate}'.format(**item)) send_message = [ Message( text='์กฐํ๋ ๊ฒฐ๊ณผ์์' ), Message( text='\n\n'.join(sending_message), quick_replies=QuickReply( quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ํค์๋๊ฒ์', payload='brick|public_jobs|get_started' ) ] ) ) ] await self.brick_db.delete() await self.fb.send_messages(send_message) return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='์ธํฐ๋ท์ฐ์ฒด๊ตญํ์์ ์ ๊ณตํ๋ "์ฐํธ๋ฒํธ์ฐพ๊ธฐ ์๋น์ค"์์.' # ) # ] send_message = [ Message( attachment=TemplateAttachment( payload=GenericTemplate( elements=[ Element(image_url=BRICK_DEFAULT_IMAGE, title='์ฐํธ๋ฒํธ์ฐพ๊ธฐ ์๋น์ค', subtitle='์ธํฐ๋ท์ฐ์ฒด๊ตญํ์์ ์ ๊ณตํ๋ "์ฐํธ๋ฒํธ์ฐพ๊ธฐ ์๋น์ค"์์.') ] ) ) ) ] await self.fb.send_messages(send_message) await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() add_type = input_data['store'][0]['value'] address = input_data['store'][1]['value'] if add_type == '์ง๋ฒ': a_type = 'dong' else: a_type = 'road' res = requests.get( url='http://openapi.epost.go.kr/postal/retrieveNewAdressAreaCdService/retrieveNewAdressAreaCdService/getNewAddressListAreaCd?_type=json&serviceKey=%s&searchSe=%s&srchwrd=%s&countPerPage=10¤tPage=1' % ( input_data['data']['api_key'], a_type, urllib.parse.quote_plus(address))) parsed_data = res.json() items = [] if parsed_data.get('NewAddressListResponse', False): if parsed_data['NewAddressListResponse'].get('newAddressListAreaCd', False): if type(parsed_data['NewAddressListResponse']['newAddressListAreaCd']) is dict: items.append(parsed_data['NewAddressListResponse']['newAddressListAreaCd']) else: items = parsed_data['NewAddressListResponse']['newAddressListAreaCd'] items.reverse() if len(items) == 0: send_message = [ Message( text='์กฐํ๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.', quick_replies=QuickReply( quick_reply_items=[ QuickReplyTextItem( title='๋ค์ ๊ฒ์ํ๊ธฐ', payload='brick|address|get_started' ) ] ) ) ] else: sending_message = [] for item in items: sending_message.append('{zipNo}\n{lnmAdres}\n{rnAdres}'.format(**item)) send_message = [ Message( text='์กฐํ๋ ๊ฒฐ๊ณผ์์' ), Message( text='\n\n'.join(sending_message), quick_replies=QuickReply( quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ฐํธ๋ฒํธ๊ฒ์', payload='brick|address|get_started' ) ] ) ) ] await self.brick_db.delete() await self.fb.send_messages(send_message) return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='Microsoft Azure-AI Cognitive์์ ์ ๊ณตํ๋ "์ฌ์ง์ ๊ฐ์ ์ ์ฝ์ด๋๋ฆฌ๋ ์๋น์ค"์์.' # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element( image_url=BRICK_DEFAULT_IMAGE, title='์ฌ์ง์ ๊ฐ์ ์ ์ฝ์ด๋๋ฆฌ๋ ์๋น์ค', subtitle= 'Microsoft Azure-AI Cognitive์์ ์ ๊ณตํ๋ "์ฌ์ง์ ๊ฐ์ ์ ์ฝ์ด๋๋ฆฌ๋ ์๋น์ค"์์.' ) ]))) ] await self.fb.send_messages(send_message) await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() face_1 = input_data['store'][0]['value'] res = await Emotion.get_data(input_data['data'], face_1) if type(res) is dict and res.get('error', False): send_message = [ Message( text= '[์๋ฌ๋ฐ์]\nCode: {code}\nMessage: {message}\n\n๊ด๋ฆฌ์์๊ฒ ๋ฌธ์ ๋ฐ๋๋๋ค.\[email protected]' .format(**res['error']), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ฌ์ง๋ถ์', payload='brick|emotion|get_started') ])) ] else: if len(res) == 0: send_message = [ Message(text='๊ฐ์ ์ ์ ์ ์์ด์ ใ ใ \n๋ค์ ์๋ํด์ฃผ์ธ์.', quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ฌ์ง๋ถ์', payload='brick|emotion|get_started') ])) ] else: res_face = res[0]['faceAttributes']['emotion'] sorted_score = sorted(res_face.items(), key=operator.itemgetter(1), reverse=True) send_message = [ Message(text='์กฐํ๋ ๊ฒฐ๊ณผ์์.'), Message(text='๋๊ตฌ๋๊ตฌ!!\n์ฌ์ง ์์ ์ฌ๋์ ๊ฐ์ ์ %s์ด๋ค์.' % EMOTION[sorted_score[0][0]], quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ฌ์ง๋ถ์', payload='brick|emotion|get_started') ])) ] await self.fb.send_messages(send_message) await self.brick_db.delete() return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='์ธ์ฌํ์ ์ฒ์์ ์ ๊ณตํ๋ "๊ณต๊ณต์ทจ์ ์ ๋ณด๊ฒ์ ์๋น์ค"์์.' # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element(image_url=BRICK_DEFAULT_IMAGE, title='๊ณต๊ณต์ทจ์ ์ ๋ณด๊ฒ์ ์๋น์ค', subtitle='์ธ์ฌํ์ ์ฒ์์ ์ ๊ณตํ๋ "๊ณต๊ณต์ทจ์ ์ ๋ณด๊ฒ์ ์๋น์ค"์์.') ]))) ] await self.fb.send_messages(send_message) await self.brick_db.save() await self.facebook('final') elif command == 'final': input_data = await self.brick_db.get() res = await PublicJobs.get_data(input_data) items = get_items_from_xml(res) if type(items) is dict: if items.get('code', '00') == '99' or items.get('code', '00') == '30': send_message = [ tg.SendMessage( text= 'chatbrick ํํ์ด์ง์ ์ฌ๋ฐ๋ฅด์ง ์์ API key๋ฅผ ์ ๋ ฅํ์ด์. ๋ค์ ํ๋ฒ ํ์ธํด์ฃผ์ธ์.', ) ] else: send_message = [tg.SendMessage(text=UNKNOWN_ERROR_MSG)] else: if len(items) == 0: send_message = [ Message( text='์กฐํ๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.', quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค์ ์๋ํ๊ธฐ', payload='brick|public_jobs|get_started') ])) ] else: sending_message = [] for item in items: sending_message.append( '*{title}*\n{deptName}\n{regdate} ~ {enddate}'. format(**item)) send_message = [ Message(text='์กฐํ๋ ๊ฒฐ๊ณผ์์'), Message( text='\n\n'.join(sending_message), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='์๋ก๊ณ ์นจ', payload='brick|public_jobs|get_started') ])) ] await self.brick_db.delete() await self.fb.send_messages(send_message) return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='ํ๊ตญ์์ถ์ ์ํ์์ ์ ๊ณตํ๋ "ํ์จ์ ๋ณด ์๋น์ค"์์.' # ), # Message( # text='chatbrick์์ ์ ๊ณตํ๋ ๊ธ์ต์ ๋ณด๋ ํ๊ตญ์์ถ์ ์ํ์ผ๋ก๋ถํฐ ๋ฐ๋ ์ ๋ณด๋ก ํฌ์ ์ฐธ๊ณ ์ฌํญ์ด๋ฉฐ, ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์ง์ฐ๋ ์ ์์ต๋๋ค.\nchatbrick์ ์ ๊ณต๋ ์ ๋ณด์ ์ํ ํฌ์๊ฒฐ๊ณผ์ ๋ฒ์ ์ฑ ์์ ์ง์ง ์์ต๋๋ค. ๊ฒ์๋ ์ ๋ณด๋ ๋ฌด๋จ์ผ๋ก ๋ฐฐํฌํ ์ ์์ต๋๋ค.' # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element(image_url=BRICK_DEFAULT_IMAGE, title='ํ์จ์ ๋ณด ์๋น์ค', subtitle='ํ๊ตญ์์ถ์ ์ํ์์ ์ ๊ณตํ๋ "ํ์จ์ ๋ณด ์๋น์ค"์์.') ]))), Message( text= 'chatbrick์์ ์ ๊ณตํ๋ ๊ธ์ต์ ๋ณด๋ ํ๊ตญ์์ถ์ ์ํ์ผ๋ก๋ถํฐ ๋ฐ๋ ์ ๋ณด๋ก ํฌ์ ์ฐธ๊ณ ์ฌํญ์ด๋ฉฐ, ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์ง์ฐ๋ ์ ์์ต๋๋ค.\nchatbrick์ ์ ๊ณต๋ ์ ๋ณด์ ์ํ ํฌ์๊ฒฐ๊ณผ์ ๋ฒ์ ์ฑ ์์ ์ง์ง ์์ต๋๋ค. ๊ฒ์๋ ์ ๋ณด๋ ๋ฌด๋จ์ผ๋ก ๋ฐฐํฌํ ์ ์์ต๋๋ค.' ) ] await self.fb.send_messages(send_message) await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() currency = input_data['store'][0]['value'] rslt = await Currency.get_data(input_data['data']['api_key']) if len(rslt) == 0: send_message = [Message(text='๊ธ์ผ์ ํตํ ์ ๋ณด๊ฐ ์์ต๋๋ค.')] else: send_message = [] for money in rslt: try: if money['cur_unit'] == CURRENCY_UNIT['%02d' % int(currency)]: send_message = [ Message( text= '๊ตญ๊ฐ/ํตํ๋ช : {cur_nm}\nํตํ์ฝ๋ : {cur_unit}\n์ก๊ธ ๋ฐ์ ๋ (1 {cur_nm} ๊ธฐ์ค) : {ttb}์\n์ก๊ธ ๋ณด๋ผ ๋ (1 {cur_nm} ๊ธฐ์ค) : {tts}์\n๋งค๋งค ๊ธฐ์ค์จ : {deal_bas_r} ์\n์ฅ๋ถ๊ฐ๊ฒฉ : {bkpr}\n\n๋ ํ๊ฐ๋ฃ์จ : {yy_efee_r}\n10์ผํ๊ฐ๋ฃ์จ : {ten_dd_efee_r}\n์์ธ์ธ๊ตญํ์ค๊ณ ๋งค๋งค๊ธฐ์ค์จ : {kftc_deal_bas_r}\n์์ธ์ธ๊ตญํ์ค๊ณ ์ฅ๋ถ๊ฐ๊ฒฉ : {kftc_bkpr}' .format(**money), quick_replies=QuickReply( quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ํ์จ์ ๋ณด์กฐํ', payload= 'brick|currency|get_started') ])) ] break except ValueError as ex: send_message = [ Message( text='์ซ์๋ง ์ ๋ ฅํ์ ์ผ ๋์.\n์๋ฌ ๋ฉ์์ง: %s' % str(ex), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ํ์จ์ ๋ณด์กฐํ', payload='brick|currency|get_started') ])) ] if len(send_message) == 0: send_message = [Message(text='๊ฒ์๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.')] await self.fb.send_messages(send_message) await self.brick_db.delete() return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='IBM Bluemix์์ ์ ๊ณตํ๋ "์์์๋ฅผ ๋ถ์ํด์ฃผ๋ ์๋น์ค"์์.' # ) # ] send_message = [ Message( attachment=TemplateAttachment( payload=GenericTemplate( elements=[ Element(image_url=BRICK_DEFAULT_IMAGE, title='์์์๋ฅผ ๋ถ์ํด์ฃผ๋ ์๋น์ค', subtitle='IBM Bluemix์์ ์ ๊ณตํ๋ "์์์๋ฅผ ๋ถ์ํด์ฃผ๋ ์๋น์ค"์์.') ] ) ) ) ] await self.fb.send_messages(send_message) await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() contents = input_data['store'][0]['value'] try: parsed_result = await PersonalityInsight.get_data(input_data['data'], contents) sending_message = '๋๊ตฌ๋๊ตฌ!\n์์์์ ๋ถ์๊ฒฐ๊ณผ\n\n์ด ๋จ์ด์ {word_count}\n'.format( word_count=parsed_result.get('word_count', '0')) for item in parsed_result.get('personality', [])[:5]: sending_message += '{name} : {percentile}\n'.format(**item) sending_message += '\n' for item in parsed_result.get('warnings', []): sending_message += '\n{warning_id}\n{message}\n'.format(**item) send_message = [ Message( text='์กฐํ๋ ๊ฒฐ๊ณผ์์.' ), Message( text=sending_message, quick_replies=QuickReply( quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์์์๋ถ์', payload='brick|personality|get_started' ) ] ) ) ] except Exception as ex: send_message = [ Message( text='์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค.\n์ต์ 100๋จ์ด ์ด์์ธ ์์์ ๊ธ์ ์ ๋ ฅํ์๊ฑฐ๋ ์ ์ ํ์ ๋ค์ ์๋ํด์ฃผ์ธ์.\n\n์๋ฌ ๋ฉ์์ง: %s' % str(ex) )] await self.fb.send_messages(send_message) await self.brick_db.delete() return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='Naver Developers์์ ์ ๊ณตํ๋ "์ฌ์ง์ ์ ๋ช ์ธ ์ฐพ๊ธฐ ์๋น์ค"์์.' # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element(image_url=BRICK_DEFAULT_IMAGE, title='์ฌ์ง์ ์ ๋ช ์ธ ์ฐพ๊ธฐ ์๋น์ค', subtitle= 'Naver Developers์์ ์ ๊ณตํ๋ "์ฌ์ง์ ์ ๋ช ์ธ ์ฐพ๊ธฐ ์๋น์ค"์์.') ]))) ] await self.fb.send_messages(send_message) await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() contents = input_data['store'][0]['value'] parsed_result = await Who.get_data(input_data['data'], contents) if parsed_result.get('faces', False): if len(parsed_result['faces']) == 0: send_message = [Message(text='ํ์ง๋ ์ผ๊ตด์ด ์์ต๋๋ค.')] else: send_message = [ Message( text= '์กฐํ๋ ๊ฒฐ๊ณผ์์.\n1์ด ๋ง์ ์ด์์.\n์) 0.37508 ์ 37% ํ๋ฅ ์ ๋งํ๋๊ฑฐ์์. 56%์ ๋๋ฉด ๊ฑฐ์ ๋์ผ์ธ์ด๋ผ๊ณ ๋ณผ ์ ์์ด์.' ), Message( text= '๋๊ตฌ๋๊ตฌ!!\n์ฌ์ง ์์ ์ฌ๋์ {celebrity[confidence]}์ ํ๋ฅ ๋ก {celebrity[value]}์ด๋ค์.' .format(**parsed_result['faces'][0]), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ฌ์ง๋ถ์', payload='brick|who|get_started') ])) ] else: send_message = [ Message( text='์๋ฌ์ฝ๋: {errorCode}\n์๋ฌ๋ฉ์์ง: {errorMessage}'.format( **parsed_result), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem(title='๋ค๋ฅธ ์ฌ์ง๋ถ์', payload='brick|who|get_started') ])) ] await self.fb.send_messages(send_message) await self.brick_db.delete() return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='์ค์์๊ธ์๋ฃ์ผํฐ์์ ์ ๊ณตํ๋ "์๊ธ์ค๊ฒ์ ์๋น์ค"์์.' # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element(image_url=BRICK_DEFAULT_IMAGE, title='์๊ธ์ค๊ฒ์ ์๋น์ค', subtitle='์ค์์๊ธ์๋ฃ์ผํฐ์์ ์ ๊ณตํ๋ "์๊ธ์ค๊ฒ์ ์๋น์ค"์์.') ]))) ] await self.fb.send_messages(send_message) await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() state = input_data['store'][0]['value'] town = input_data['store'][1]['value'] res = requests.get( url= 'http://apis.data.go.kr/B552657/ErmctInfoInqireService/getEgytListInfoInqire?serviceKey=%s&Q0=%s&Q1=%s&ORD=NAME&pageNo=1&startPage=1&numOfRows=3&pageSize=3' % (input_data['data']['api_key'], state, town)) items = get_items_from_xml(res) if type(items) is dict: if items.get('code', '00') == '99' or items.get('code', '00') == '30': send_message = [ Message( text= 'chatbrick ํํ์ด์ง์ ์ฌ๋ฐ๋ฅด์ง ์์ API key๋ฅผ ์ ๋ ฅํ์ด์. ๋ค์ ํ๋ฒ ํ์ธํด์ฃผ์ธ์.', ) ] else: send_message = [Message(text=UNKNOWN_ERROR_MSG)] else: if len(items) == 0: send_message = [ Message(text='์กฐํ๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.', quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ง์ญ๊ฒ์', payload='brick|emergency|get_started') ])) ] else: send_message = [ Message(text='์กฐํ๋ ๊ฒฐ๊ณผ์์'), Message( text= '{dutyName}\n{dutyEmclsName}\n{dutyAddr}\n{dutyTel1}\n{dutyTel3}' .format(**items[0]), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ง์ญ๊ฒ์', payload='brick|emergency|get_started') ])) ] if len(items) > 1: for surplus_item in items[1:]: send_message.insert( 1, Message( text= '{dutyName}\n{dutyEmclsName}\n{dutyAddr}\n{dutyTel1}\n{dutyTel3}' .format(**surplus_item))) await self.brick_db.delete() await self.fb.send_messages(send_message) return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='Naver Developers์์ ์ ๊ณตํ๋ "URL ์ค์ด๊ธฐ ์๋น์ค"์์.' # ), # Message( # attachment=TemplateAttachment( # payload=GenericTemplate( # elements=[ # Element( # image_url='https://www.chatbrick.io/api/static/brick/img_brick_23_002.png', # title='URL ์ค์ด๊ธฐ', # subtitle='๋๋ฌด ๊ธธ์๋ URL์ ์ค์ฌ๋๋ ค์.', # buttons=[ # PostBackButton( # title='์ค์ด๊ธฐ', # payload='brick|shortener|short' # ) # ] # ) # ] # ) # ) # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element( image_url=BRICK_DEFAULT_IMAGE, title='URL ์ค์ด๊ธฐ ์๋น์ค', subtitle='Naver Developers์์ ์ ๊ณตํ๋ "URL ์ค์ด๊ธฐ ์๋น์ค"์์.' ) ]))), Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element( image_url= 'https://www.chatbrick.io/api/static/brick/img_brick_23_002.png', title='URL ์ค์ด๊ธฐ', subtitle='๋๋ฌด ๊ธธ์๋ URL์ ์ค์ฌ๋๋ ค์.', buttons=[ PostBackButton(title='์ค์ด๊ธฐ', payload='brick|shortener|short') ]) ]))) ] await self.fb.send_messages(send_message) elif command == 'short': await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() url = input_data['store'][0]['value'] result = await Shortener.get_short_url( input_data['data']['client_id'], input_data['data']['client_secret'], url) if result.get('errorCode', False): send_message = [Message(text='์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค.\n๋ค์ ์๋ํด์ฃผ์ธ์.')] logger.error(result) else: send_message = [ Message(text='์ค์ฌ์ง URL ๊ฒฐ๊ณผ์์.'), Message( text='%s' % result['result'].get('url', ''), quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem(title='๋ค๋ฅธ URL ์ค์ด๊ธฐ', payload='brick|shortener|short') ])) ] await self.fb.send_messages(send_message) await self.brick_db.delete() return None
async def facebook(self, command): if command == 'get_started': send_message = [ Message( attachment=ImageAttachment( url=BRICK_DEFAULT_IMAGE[1] ) ), Message( text='๋ธ๋ฃจํต์์ ์ ๊ณตํ๋ "๋ฉ์ผ๋ณด๋ด๊ธฐ ์๋น์ค"์์.' ), Message( attachment=TemplateAttachment( payload=GenericTemplate( elements=[ Element(title='๋ฉ์ผ์ ์ก', subtitle='์ฑ๋ด์์ ๋ฉ์ผ์ ๋ณด๋ผ ์ ์์ด์', buttons=[ PostBackButton( title='๋ฉ์ผ๋ณด๋ด๊ธฐ', payload='brick|mailer|show_data' ) ]) ] ) ) ) ] await self.fb.send_messages(send_message) elif command == 'show_data': await self.brick_db.save() elif command == 'cancel': await self.brick_db.delete() await self.fb.send_message( message=Message( text='๋ฉ์ผ ๋ณด๋ด๊ธฐ๋ฅผ ์ทจ์ํ์ด์.', quick_replies=QuickReply( quick_reply_items=[ QuickReplyTextItem( title='์ ๋ฉ์ผ๋ณด๋ด๊ธฐ', payload='brick|mailer|show_data' ) ] ) )) elif command == 'final': input_data = await self.brick_db.get() msg = MIMEText(input_data['store'][2]['value']) msg['Subject'] = '%s๋ก๋ถํฐ ์ด๋ฉ์ผ์ ๋๋ค.' % input_data['store'][0]['value'] msg['To'] = input_data['store'][1]['value'] self.smtp.ehlo() self.smtp.starttls() self.smtp.login(self.sender_email, self.sender_password) self.smtp.sendmail(self.sender_email, input_data['store'][1]['value'], msg.as_string()) await self.fb.send_message( message=Message( text='๋ฉ์ผ ๋ณด๋ด๊ธฐ๊ฐ ์๋ฃ๋์์ด์.', quick_replies=QuickReply( quick_reply_items=[ QuickReplyTextItem( title='์ฐ์ํ์ฌ ๋ฉ์ผ๋ณด๋ด๊ธฐ', payload='brick|mailer|show_data' ) ] ) )) return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='ํ๊ตญ์ ๋ ฅ๊ณต์ฌ์์ ์ ๊ณตํ๋ "์ ๊ธฐ์ฐจ์ถฉ์ ์ ์กฐํ ์๋น์ค"์์.' # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element(image_url=BRICK_DEFAULT_IMAGE, title='์ ๊ธฐ์ฐจ์ถฉ์ ์ ์กฐํ ์๋น์ค', subtitle='ํ๊ตญ์ ๋ ฅ๊ณต์ฌ์์ ์ ๊ณตํ๋ "์ ๊ธฐ์ฐจ์ถฉ์ ์ ์กฐํ ์๋น์ค"์์.') ]))) ] await self.fb.send_messages(send_message) await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() place = input_data['store'][0]['value'] res = requests.get( url= 'http://openapi.kepco.co.kr/service/evInfoService/getEvSearchList?serviceKey=%s&numOfRows=100&pageSize=100&pageNo=1&startPage=1&addr=%s' % (input_data['data']['api_key'], urllib.parse.quote_plus(place))) items = get_items_from_xml(res) if type(items) is dict: if items.get('code', '00') == '99' or items.get('code', '00') == '30': send_message = [ Message( text= 'chatbrick ํํ์ด์ง์ ์ฌ๋ฐ๋ฅด์ง ์์ API key๋ฅผ ์ ๋ ฅํ์ด์. ๋ค์ ํ๋ฒ ํ์ธํด์ฃผ์ธ์.', ) ] else: send_message = [Message(text=UNKNOWN_ERROR_MSG)] else: if len(items) == 0: send_message = [ Message(text='์กฐํ๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.', quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ง์ญ๊ฒ์', payload='brick|electric|get_started') ])) ] else: sending_message = '' for item in items: sending_message += '์ถฉ์ ์๋ช : {csNm}\n์ถฉ์ ์ID : {cpId}\n์ถฉ์ ํ์ : {cpNm}\n์ํ : {cpStat}\n์ฃผ์ : {addr}\n\n'.format( **item) send_message = [ Message(text=sending_message, quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem( title='๋ค๋ฅธ ์ถฉ์ ์ ๊ฒ์', payload='brick|electric|get_started') ])) ] await self.brick_db.delete() await self.fb.send_messages(send_message) return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='๊ตญํ ๊ตํต๋ถ์์ ์ ๊ณตํ๋ "์ด์ฐจ์กฐํ ์๋น์ค"์์. ์ฝ๋ ์ผ/SRT ๋ชจ๋ ์กฐํ ๊ฐ๋ฅํด์.' # ), # Message( # attachment=TemplateAttachment( # payload=GenericTemplate( # elements=[ # Element( # image_url='https://www.chatbrick.io/api/static/brick/img_brick_01_002.png', # title='์ด์ฐจ์กฐํ', # subtitle='์ฝ๋ ์ผ/SRT ๋ชจ๋ ์กฐํํ ์ ์์ด์', # buttons=[ # PostBackButton( # title='์กฐํํ๊ธฐ', # payload='brick|train|show_data' # ) # ] # ) # ] # ) # ) # ) # ] send_message = [ Message( attachment=TemplateAttachment( payload=GenericTemplate( elements=[ Element(image_url=BRICK_DEFAULT_IMAGE, title='์ด์ฐจ์กฐํ ์๋น์ค', subtitle='๊ตญํ ๊ตํต๋ถ์์ ์ ๊ณตํ๋ "์ด์ฐจ์กฐํ ์๋น์ค"์์. ์ฝ๋ ์ผ/SRT ๋ชจ๋ ์กฐํ ๊ฐ๋ฅํด์.') ] ) ) ), Message( attachment=TemplateAttachment( payload=GenericTemplate( elements=[ Element( image_url='https://www.chatbrick.io/api/static/brick/img_brick_01_002.png', title='์ด์ฐจ์กฐํ', subtitle='์ฝ๋ ์ผ/SRT ๋ชจ๋ ์กฐํํ ์ ์์ด์', buttons=[ PostBackButton( title='์กฐํํ๊ธฐ', payload='brick|train|show_data' ) ] ) ] ) ) ) ] await self.fb.send_messages(send_message) elif command == 'show_data': await self.brick_db.save() elif command == 'final': input_data = await self.brick_db.get() departure_station = input_data['store'][0]['value'].strip() destination_station = input_data['store'][1]['value'].strip() departure_date = input_data['store'][2]['value'] train_type = input_data['store'][3]['value'] if STATION.get(departure_station) is None: send_message = [ Message( text='์ถ๋ฐ์ญ์ด ์กฐํํ ์ ์๋ ์ญ์ ๋๋ค.', quick_replies=QuickReply( quick_reply_items=[ QuickReplyTextItem( title='๋ค์ ๊ฒ์ํ๊ธฐ', payload='brick|train|show_data' ) ] ) ) ] elif STATION.get(destination_station) is None: send_message = [ Message( text='๋์ฐฉ์ญ์ด ์กฐํํ ์ ์๋ ์ญ์ ๋๋ค.', quick_replies=QuickReply( quick_reply_items=[ QuickReplyTextItem( title='๋ค์ ๊ฒ์ํ๊ธฐ', payload='brick|train|show_data' ) ] ) ) ] else: res = requests.get( url='http://openapi.tago.go.kr/openapi/service/TrainInfoService/getStrtpntAlocFndTrainInfo?serviceKey=%s&numOfRows=500&pageSize=500&pageNo=1&startPage=1&depPlaceId=%s&arrPlaceId=%s&depPlandTime=%s&trainGradeCode=%s' % ( input_data['data']['api_key'], STATION[departure_station], STATION[destination_station], departure_date, train_type)) items = get_items_from_xml(res) if type(items) is dict: if items.get('code', '00') == '99' or items.get('code', '00') == '30': send_message = [ Message( text='chatbrick ํํ์ด์ง์ ์ฌ๋ฐ๋ฅด์ง ์์ API key๋ฅผ ์ ๋ ฅํ์ด์. ๋ค์ ํ๋ฒ ํ์ธํด์ฃผ์ธ์.', ) ] else: send_message = [ Message( text=UNKNOWN_ERROR_MSG ) ] else: if len(items) == 0: send_message = [ Message( text='์กฐํ๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.', quick_replies=QuickReply( quick_reply_items=[ QuickReplyTextItem( title='๋ค์ ๊ฒ์ํ๊ธฐ', payload='brick|train|show_data' ) ] ) ) ] else: result_message = '{depplacename} -> {arrplacename}\n\n'.format(**items[0]) for item in items: departure_train_datetime = dateutil.parser.parse(item['depplandtime']) arrive_train_datetime = dateutil.parser.parse(item['arrplandtime']) gap = Train.days_hours_minutes(arrive_train_datetime - departure_train_datetime) item['fromtodatetime'] = '%02d:%02d -> %02d:%02d' % ( departure_train_datetime.hour, departure_train_datetime.minute, arrive_train_datetime.hour, arrive_train_datetime.minute) item['time_delta'] = '%02d:%02d' % (gap[0], gap[1]) item['adultcharge_formmated'] = format(int(item['adultcharge']), ',') result_message += '{traingradename} {fromtodatetime} {time_delta} {adultcharge_formmated}\n'.format( **item) send_message = [ Message( text=result_message, quick_replies=QuickReply( quick_reply_items=[ QuickReplyTextItem( title='๋ค์ ๊ฒ์ํ๊ธฐ', payload='brick|train|get_started' ) ] ) ) ] await self.brick_db.delete() await self.fb.send_messages(send_message) return None
async def facebook(self, command): if command == 'get_started': # send_message = [ # Message( # attachment=ImageAttachment( # url=BRICK_DEFAULT_IMAGE # ) # ), # Message( # text='๋ธ๋ฃจํต์์ ์ ๊ณตํ๋ "๋ฉ์ผ๋ณด๋ด๊ธฐ ์๋น์ค"์์.' # ), # Message( # attachment=TemplateAttachment( # payload=GenericTemplate( # elements=[ # Element(title='๋ฉ์ผ์ ์ก', # subtitle='์ฑ๋ด์์ ๋ฉ์ผ์ ๋ณด๋ผ ์ ์์ด์', # image_url=BRICK_GENERIC_TEMPLATE_IMAGE, # buttons=[ # PostBackButton( # title='๋ฉ์ผ๋ณด๋ด๊ธฐ', # payload='brick|mailer|show_data' # ) # ]) # ] # ) # ) # ) # ] send_message = [ Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element(image_url=BRICK_DEFAULT_IMAGE, title='๋ฉ์ผ๋ณด๋ด๊ธฐ ์๋น์ค', subtitle='๋ธ๋ฃจํต์์ ์ ๊ณตํ๋ "๋ฉ์ผ๋ณด๋ด๊ธฐ ์๋น์ค"์์.') ]))), Message(attachment=TemplateAttachment(payload=GenericTemplate( elements=[ Element(title='๋ฉ์ผ์ ์ก', subtitle='์ฑ๋ด์์ ๋ฉ์ผ์ ๋ณด๋ผ ์ ์์ด์', image_url=BRICK_GENERIC_TEMPLATE_IMAGE, buttons=[ PostBackButton( title='๋ฉ์ผ๋ณด๋ด๊ธฐ', payload='brick|mailer|show_data') ]) ]))) ] await self.fb.send_messages(send_message) elif command == 'show_data': await self.brick_db.save() elif command == 'cancel': await self.brick_db.delete() await self.fb.send_message(message=Message( text='๋ฉ์ผ ๋ณด๋ด๊ธฐ๋ฅผ ์ทจ์ํ์ด์.', quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem(title='์ ๋ฉ์ผ๋ณด๋ด๊ธฐ', payload='brick|mailer|show_data') ]))) elif command == 'final': input_data = await self.brick_db.get() msg = MIMEText(input_data['store'][2]['value']) msg['Subject'] = '%s๋ก๋ถํฐ ์ด๋ฉ์ผ์ ๋๋ค.' % input_data['store'][0]['value'] msg['To'] = input_data['store'][1]['value'] result = '๋ฉ์ผ ๋ณด๋ด๊ธฐ๊ฐ ์๋ฃ๋์์ด์.' if self.fb.log_id is None: self.fb.log_id = 'FBSendMessage|%d' % int(time.time() * 1000) try: self.smtp.ehlo() self.smtp.starttls() self.smtp.login(self.sender_email, self.sender_password) self.smtp.sendmail(self.sender_email, input_data['store'][1]['value'], msg.as_string()) except: result = '๋ฉ์ผ ์ ์ก์ ์คํจํ์ต๋๋ค.\n์ ์ ํ ๋ค์ ์๋ํด์ฃผ์ธ์.' save_a_log_to_server({ 'log_id': self.fb.log_id, 'user_id': self.fb.user_id, 'os': '', 'application': 'facebook', 'api_code': 'mail', 'api_provider_code': 'chatbrick', 'origin': 'webhook_server', 'end': int(time.time() * 1000), 'remark': 'SMTP ํต์ ์ผ๋ก ์ด๋ฉ์ผ ์ ์กํจ' }) await self.fb.send_message(message=Message( text=result, quick_replies=QuickReply(quick_reply_items=[ QuickReplyTextItem(title='์ฐ์ํ์ฌ ๋ฉ์ผ๋ณด๋ด๊ธฐ', payload='brick|mailer|show_data') ]))) await self.brick_db.delete() return None