Showing
1 changed file
with
53 additions
and
27 deletions
... | @@ -7,8 +7,8 @@ var NOW = new Date() | ... | @@ -7,8 +7,8 @@ var NOW = new Date() |
7 | var YEAR = NOW.getFullYear() | 7 | var YEAR = NOW.getFullYear() |
8 | var MONTH= NOW.getMonth()+1 | 8 | var MONTH= NOW.getMonth()+1 |
9 | var DATE= NOW.getDate(); | 9 | var DATE= NOW.getDate(); |
10 | -var NOWDATE= YEAR.toString() + MONTH.toString() + DATE.toString() | 10 | +var NOWDATE= YEAR.toString().padStart(4, '0') + MONTH.toString().padStart(2, '0') + DATE.toString().padStart(2, '0') |
11 | -const WEATHER_URL=`http://apis.data.go.kr/1360000/VilageFcstInfoService/getVilageFcst?serviceKey=StHx15%2FPZFKIJvR5AtCu8uyowAtnEYHpAXR%2B5XYYN6OWDt%2BCz15z%2Fxn%2FDiV%2FLN9%2BY5YSPZUPUnCq982CiBupmw%3D%3D&numOfRows=10&pageNo=1&base_date=${NOWDATE}&base_time=0230&nx=55&ny=127&dataType=JSON` | 11 | +const WEATHER_URL=`http://apis.data.go.kr/1360000/VilageFcstInfoService/getVilageFcst?serviceKey=StHx15%2FPZFKIJvR5AtCu8uyowAtnEYHpAXR%2B5XYYN6OWDt%2BCz15z%2Fxn%2FDiV%2FLN9%2BY5YSPZUPUnCq982CiBupmw%3D%3D&numOfRows=1000&pageNo=1&base_date=${NOWDATE}&base_time=0230&nx=55&ny=127&dataType=JSON` |
12 | 12 | ||
13 | 13 | ||
14 | const TOKEN = 'RbPAXRYWub0evg2yyi7oiHytZsZsE0JtbZgRYZNZDU1vjpJkOwGqwh+aKTYKVhVHh6LZOUVZLl84NQQlNWNbXR9hUhPEiLEK0cie4O3OlKUuEe/3wAsjPu7HbRi1zn9BsR3Qr4pcqmiIKP8HRUKvEwdB04t89/1O/w1cDnyilFU=' | 14 | const TOKEN = 'RbPAXRYWub0evg2yyi7oiHytZsZsE0JtbZgRYZNZDU1vjpJkOwGqwh+aKTYKVhVHh6LZOUVZLl84NQQlNWNbXR9hUhPEiLEK0cie4O3OlKUuEe/3wAsjPu7HbRi1zn9BsR3Qr4pcqmiIKP8HRUKvEwdB04t89/1O/w1cDnyilFU=' |
... | @@ -22,6 +22,7 @@ const bodyParser = require('body-parser'); | ... | @@ -22,6 +22,7 @@ const bodyParser = require('body-parser'); |
22 | var app = express(); | 22 | var app = express(); |
23 | var premessage='premessage' | 23 | var premessage='premessage' |
24 | var start ='start' | 24 | var start ='start' |
25 | +var check = true | ||
25 | 26 | ||
26 | 27 | ||
27 | app.use(bodyParser.json()); | 28 | app.use(bodyParser.json()); |
... | @@ -41,16 +42,18 @@ app.post('/hook', function (req, res) { | ... | @@ -41,16 +42,18 @@ app.post('/hook', function (req, res) { |
41 | console.log('[request source] ', eventObj.source); | 42 | console.log('[request source] ', eventObj.source); |
42 | console.log('[request message]', eventObj.message); | 43 | console.log('[request message]', eventObj.message); |
43 | 44 | ||
45 | + | ||
44 | rain(eventObj.replyToken, eventObj.message.text); | 46 | rain(eventObj.replyToken, eventObj.message.text); |
47 | + clothes(eventObj.replyToken, eventObj.message.text); | ||
45 | 48 | ||
46 | 49 | ||
47 | res.sendStatus(200); | 50 | res.sendStatus(200); |
48 | }); | 51 | }); |
49 | 52 | ||
50 | 53 | ||
51 | - | 54 | +// 비 말고도 날씨 정보 추가 |
52 | function rain (replyToken, message){ | 55 | function rain (replyToken, message){ |
53 | - if(message != '오늘 옷') | 56 | + if(message != '날씨') |
54 | { | 57 | { |
55 | return | 58 | return |
56 | } | 59 | } |
... | @@ -61,11 +64,16 @@ function rain (replyToken, message){ | ... | @@ -61,11 +64,16 @@ function rain (replyToken, message){ |
61 | },(error, response, body) => { | 64 | },(error, response, body) => { |
62 | if(!error && response.statusCode == 200) { | 65 | if(!error && response.statusCode == 200) { |
63 | console.log(body.message); | 66 | console.log(body.message); |
64 | - if(body.POP>=50){ | 67 | + for(var item of body.response.body.items.item) { |
68 | + if(item.category == 'POP') { | ||
69 | + if(item.fcstValue >= 50) { | ||
65 | var rainMessage = "꼭! 우산을 챙기세요"; | 70 | var rainMessage = "꼭! 우산을 챙기세요"; |
66 | - }else{ | 71 | + } |
72 | + else { | ||
67 | var rainMessage= "우산이 굳이 필요하지는 않습니다." | 73 | var rainMessage= "우산이 굳이 필요하지는 않습니다." |
68 | } | 74 | } |
75 | + } | ||
76 | + } | ||
69 | request.post( | 77 | request.post( |
70 | { | 78 | { |
71 | url: TARGET_URL, | 79 | url: TARGET_URL, |
... | @@ -88,26 +96,42 @@ function rain (replyToken, message){ | ... | @@ -88,26 +96,42 @@ function rain (replyToken, message){ |
88 | }); | 96 | }); |
89 | } | 97 | } |
90 | 98 | ||
91 | - | 99 | +function clothes (replyToken, message){ |
92 | -/* | 100 | + if(message != '옷') |
93 | - | ||
94 | -function trans(replyToken, message) { | ||
95 | - | ||
96 | - if( message != '길찾기') | ||
97 | { | 101 | { |
98 | return | 102 | return |
99 | } | 103 | } |
100 | - premessage=message | ||
101 | - | ||
102 | request.get( | 104 | request.get( |
103 | { | 105 | { |
104 | - url: MAP_URL, | 106 | + url: WEATHER_URL, |
105 | - headers: { | 107 | + json:true |
106 | - 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', | 108 | + },(error, response, body) => { |
107 | - 'X-NCP-APIGW-API-KEY-ID': `${MAP_ID}`, | 109 | + if(!error && response.statusCode == 200) { |
108 | - 'X-NCP-APIGW-API-KEY': `${MAP_SECRET}` | 110 | + console.log(body.message); |
111 | + for(var item of body.response.body.items.item) { | ||
112 | + if(item.category == 'TMX') { | ||
113 | + if(item.fcstValue>=28){ | ||
114 | + var clothesMessage = `날씨가 매우 덥습니다. 건강에 유의해주세요. | ||
115 | + 추천 옷: 민소매, 반팔, 반바지, 여름용 치마, 린넨 소재의 옷` | ||
116 | + }else if(23<=item.fcstValue && item.fcstValue<=27){ | ||
117 | + var clothesMessage = `날이 덥습니다. 가벼운 옷차림을 추천합니다. | ||
118 | + 추천 옷: 반팔, 얇은 셔츠, 반바지, 면바지 ` | ||
119 | + }else if(20<=item.fcstValue && item.fcstValue<=22){ | ||
120 | + var clothesMessage = `초여름/ 늦여름 날씨입니다. 일교차에 주의해주세요. 추천 옷: 블라우스, 얇은 긴팔 티, 면바지, 슬랙스, 반팔과 가디건` | ||
121 | + }else if(17<=item.fcstValue && item.fcstValue<=19){ | ||
122 | + var clothesMessage=`아직 조금은 쌀쌀합니다. 건강에 유의해주세요. 추천 옷: 얇은 가디건, 니트, 맨투맨, 후드, 긴 바지` | ||
123 | + }else if(12<=item.fcstValue && item.fcstValue<=16){ | ||
124 | + var clothesMessage=`날이 쌀쌀합니다. 추천 옷: 자켓, 가디건, 청자켓, 니트, 청바지` | ||
125 | + }else if(9<=item.fcstValue && item.fcstValue<=11){ | ||
126 | + var clothesMessage =`날이 아직 춥습니다. 따뜻한 옷이 좋습니다. 추천 옷: 트렌치코트, 야상, 점퍼, 기모바지` | ||
127 | + }else if(5<=item.fcstValue && item.fcstValue<=8){ | ||
128 | + var clothesMessage =` 날이 춥습니다. 따뜻하게 입어주세요. 추천 옷: 두꺼운 코트, 히트텍, 가죽 옷, 기모 소재의 옷` | ||
129 | + }else{ | ||
130 | + var clothesMessage= `날씨가 매우 춥습니다. 건강에 유의하세요 .추천 옷: 패딩, 두꺼운 코트, 누빔 옷, 기모 소재의 옷, 히트텍, 목도리, 장갑` | ||
131 | + } | ||
132 | + } | ||
109 | } | 133 | } |
110 | - }).pipe(fs.createWriteStream('statics/replymap.jpg')).on('close', function() { | 134 | + |
111 | request.post( | 135 | request.post( |
112 | { | 136 | { |
113 | url: TARGET_URL, | 137 | url: TARGET_URL, |
... | @@ -118,19 +142,21 @@ function trans(replyToken, message) { | ... | @@ -118,19 +142,21 @@ function trans(replyToken, message) { |
118 | "replyToken":replyToken, | 142 | "replyToken":replyToken, |
119 | "messages":[ | 143 | "messages":[ |
120 | { | 144 | { |
121 | - "type": "image", | 145 | + "type":"text", |
122 | - "originalContentUrl": "https://www.osschat.tk:23023/replymap.jpg", | 146 | + "text":clothesMessage |
123 | - "previewImageUrl": "https://www.osschat.tk:23023/replymap.jpg" | 147 | + } |
124 | - }//message | ||
125 | ] | 148 | ] |
126 | - }//json | 149 | + } |
127 | },(error, response, body) => { | 150 | },(error, response, body) => { |
128 | console.log(body) | 151 | console.log(body) |
129 | }); | 152 | }); |
153 | + } | ||
130 | }); | 154 | }); |
131 | - | ||
132 | } | 155 | } |
133 | -*/ | 156 | + |
157 | + | ||
158 | + | ||
159 | + | ||
134 | 160 | ||
135 | try { | 161 | try { |
136 | const option = { | 162 | const option = { | ... | ... |
-
Please register or login to post a comment