Showing
1 changed file
with
37 additions
and
10 deletions
... | @@ -11,9 +11,10 @@ const bodyParser = require('body-parser'); | ... | @@ -11,9 +11,10 @@ const bodyParser = require('body-parser'); |
11 | var app = express(); | 11 | var app = express(); |
12 | const { info } = require('console'); | 12 | const { info } = require('console'); |
13 | 13 | ||
14 | -var PythonShell = require('python-shell'); | 14 | +var { PythonShell } = require('python-shell'); |
15 | +var pyshell = new PythonShell('weather_chat.py'); | ||
15 | 16 | ||
16 | -var options = { | 17 | +let options = { |
17 | mode: 'text', | 18 | mode: 'text', |
18 | pythonPath: '', | 19 | pythonPath: '', |
19 | pythonOptions: ['-u'], | 20 | pythonOptions: ['-u'], |
... | @@ -41,11 +42,8 @@ app.post('/hook', function (req, res) { | ... | @@ -41,11 +42,8 @@ app.post('/hook', function (req, res) { |
41 | else if(eventObj.message.text == "이용방법") { | 42 | else if(eventObj.message.text == "이용방법") { |
42 | chatUse(eventObj.replyToken); | 43 | chatUse(eventObj.replyToken); |
43 | } | 44 | } |
44 | - else if(eventObj.message.text == "오늘의 날씨는") { | 45 | + else if(eventObj.message.text == "오늘의 날씨는?") { |
45 | - PythonShell.run('weather_chat.py', options, function(err, results) { | 46 | + chatWeather(eventObj.replyToken); |
46 | - if(err) throw err; | ||
47 | - console.log('results: %j', results); | ||
48 | - }); | ||
49 | } | 47 | } |
50 | else { | 48 | else { |
51 | chatWrong(eventObj.replyToken); | 49 | chatWrong(eventObj.replyToken); |
... | @@ -66,7 +64,7 @@ function chatInfo(replyToken){ | ... | @@ -66,7 +64,7 @@ function chatInfo(replyToken){ |
66 | "messages":[ | 64 | "messages":[ |
67 | { | 65 | { |
68 | "type":"text", | 66 | "type":"text", |
69 | - "text":"서울 지역의 날씨와 기온에 따른 옷차림새를 추천해줍니다." | 67 | + "text":"서울 지역의 오늘의 날씨와 기온에 따른 옷차림새를 추천해줍니다." |
70 | } | 68 | } |
71 | ] | 69 | ] |
72 | } | 70 | } |
... | @@ -87,7 +85,36 @@ function chatUse(replyToken){ | ... | @@ -87,7 +85,36 @@ function chatUse(replyToken){ |
87 | "messages":[ | 85 | "messages":[ |
88 | { | 86 | { |
89 | "type":"text", | 87 | "type":"text", |
90 | - "text":"오늘의 날씨는? 을 똑같이\n 입력해주시면 작동합니다." | 88 | + "text":"오늘의 날씨는? 을 똑같이\n입력해주시면 작동합니다." |
89 | + } | ||
90 | + ] | ||
91 | + } | ||
92 | + },(error, response, body) => { | ||
93 | + console.log(body) | ||
94 | + }); | ||
95 | +} | ||
96 | + | ||
97 | +function chatWeather(replyToken){ | ||
98 | + var PM = " "; | ||
99 | + | ||
100 | + pyshell.send('request') | ||
101 | + pyshell.on('message', function(data){ | ||
102 | + console.log(data); | ||
103 | + PM = data; | ||
104 | + }); | ||
105 | + | ||
106 | + request.post( | ||
107 | + { | ||
108 | + url: TARGET_URL, | ||
109 | + headers: { | ||
110 | + 'Authorization': `Bearer ${TOKEN}` | ||
111 | + }, | ||
112 | + json: { | ||
113 | + "replyToken":replyToken, | ||
114 | + "messages":[ | ||
115 | + { | ||
116 | + "type":"text", | ||
117 | + "text": PM | ||
91 | } | 118 | } |
92 | ] | 119 | ] |
93 | } | 120 | } |
... | @@ -108,7 +135,7 @@ function chatWrong(replyToken){ | ... | @@ -108,7 +135,7 @@ function chatWrong(replyToken){ |
108 | "messages":[ | 135 | "messages":[ |
109 | { | 136 | { |
110 | "type":"text", | 137 | "type":"text", |
111 | - "text":"잘못된 입력입니다.\n '이용방법' 혹은 '오늘의 날씨는?'을 입력해주세요." | 138 | + "text":"잘못된 입력입니다.\n'설명', '이용방법', '오늘의 날씨는?' \n중 하나를 입력해주세요." |
112 | } | 139 | } |
113 | ] | 140 | ] |
114 | } | 141 | } | ... | ... |
-
Please register or login to post a comment