Ubuntu

날씨추가, 지역추가

...@@ -8,7 +8,19 @@ var YEAR = NOW.getFullYear() ...@@ -8,7 +8,19 @@ 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().padStart(4, '0') + MONTH.toString().padStart(2, '0') + DATE.toString().padStart(2, '0') 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=1000&pageNo=1&base_date=${NOWDATE}&base_time=0230&nx=55&ny=127&dataType=JSON` 11 +
12 +
13 +//var dic = {'대구': {'x': 90, 'y': 90}, '학교':{'x':62, 'y'}}
14 +/*
15 +var dic={}
16 +var [schoolx]='62'
17 +var [schooly]='120'
18 +대구 수성구 x 90\
19 +대구 수성구 y 90
20 +*/
21 +//var dic = {'대구': {'x': 90, 'y': 90}, '학교':{'x':62,'y':120}}
22 +const WEATHER_URL_D=`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=90&ny=90&dataType=JSON`
23 +const WEATHER_URL_S=`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=62&ny=120&dataType=JSON`
12 24
13 25
14 const TOKEN = 'RbPAXRYWub0evg2yyi7oiHytZsZsE0JtbZgRYZNZDU1vjpJkOwGqwh+aKTYKVhVHh6LZOUVZLl84NQQlNWNbXR9hUhPEiLEK0cie4O3OlKUuEe/3wAsjPu7HbRi1zn9BsR3Qr4pcqmiIKP8HRUKvEwdB04t89/1O/w1cDnyilFU=' 26 const TOKEN = 'RbPAXRYWub0evg2yyi7oiHytZsZsE0JtbZgRYZNZDU1vjpJkOwGqwh+aKTYKVhVHh6LZOUVZLl84NQQlNWNbXR9hUhPEiLEK0cie4O3OlKUuEe/3wAsjPu7HbRi1zn9BsR3Qr4pcqmiIKP8HRUKvEwdB04t89/1O/w1cDnyilFU='
...@@ -44,22 +56,29 @@ app.post('/hook', function (req, res) { ...@@ -44,22 +56,29 @@ app.post('/hook', function (req, res) {
44 56
45 57
46 rain(eventObj.replyToken, eventObj.message.text); 58 rain(eventObj.replyToken, eventObj.message.text);
47 - clothes(eventObj.replyToken, eventObj.message.text); 59 + //clothes(eventObj.replyToken, eventObj.message.text);
48 60
49 61
50 res.sendStatus(200); 62 res.sendStatus(200);
51 }); 63 });
52 64
53 65
54 -// 비 말고도 날씨 정보 추가 66 +
55 function rain (replyToken, message){ 67 function rain (replyToken, message){
56 - if(message != '날씨') 68 + if(message != '대구' && message != '학교')
57 { 69 {
58 return 70 return
59 } 71 }
72 +
73 + if(message == '대구')
74 + {
75 + WEATHER_URL = WEATHER_URL_D
76 + }else if(message == '학교'){
77 + WEATHER_URL = WEATHER_URL_S
78 + }
60 request.get( 79 request.get(
61 { 80 {
62 - url: WEATHER_URL, 81 + url:WEATHER_URL,
63 json:true 82 json:true
64 },(error, response, body) => { 83 },(error, response, body) => {
65 if(!error && response.statusCode == 200) { 84 if(!error && response.statusCode == 200) {
...@@ -73,6 +92,48 @@ function rain (replyToken, message){ ...@@ -73,6 +92,48 @@ function rain (replyToken, message){
73 var rainMessage= "우산이 굳이 필요하지는 않습니다." 92 var rainMessage= "우산이 굳이 필요하지는 않습니다."
74 } 93 }
75 } 94 }
95 + if(item.category == 'WSD'){
96 + if(item.fcstValue < 8 ){
97 + var windmessage ="기분이 좋을 정도의 바람입니다."
98 + }else if(item.fcstValue>=8 && item.fcstVaule <14){
99 + var windmessage =" 바람이 강한 편입니다."
100 + }else{
101 + var windmessage ="바람이 매우 강합니다. 야외활동을 자제해주세요"
102 + }
103 + }
104 + if (item.category == 'REH'){
105 + if(item.fcstValue < 30){
106 + var watermessage = "너무 건조합니다."
107 + }else if(item.fcstValue<=70 && item.fcstValue >=40){
108 + var watermessage="습도는 적당합니다."
109 + }else{
110 + var watermessage =" 너무 습합니다."
111 + }
112 + }
113 +
114 + //for(var item of body.response.body.items.item) {
115 + if(item.category == 'TMX') {
116 + if(item.fcstValue>=28){
117 + var clothesMessage = `날씨가 매우 덥습니다. 건강에 유의해주세요.
118 + 추천 옷: 민소매, 반팔, 반바지, 여름용 치마, 린넨 소재의 옷`
119 + }else if(23<=item.fcstValue && item.fcstValue<=27){
120 + var clothesMessage = `날이 덥습니다. 가벼운 옷차림을 추천합니다.
121 + 추천 옷: 반팔, 얇은 셔츠, 반바지, 면바지 `
122 + }else if(20<=item.fcstValue && item.fcstValue<=22){
123 + var clothesMessage = `초여름/ 늦여름 날씨입니다. 일교차에 주의해주세요. 추천 옷: 블라우스, 얇은 긴팔 티, 면바지, 슬랙스, 반팔과 가디건`
124 + }else if(17<=item.fcstValue && item.fcstValue<=19){
125 + var clothesMessage=`아직 조금은 쌀쌀합니다. 건강에 유의해주세요. 추천 옷: 얇은 가디건, 니트, 맨투맨, 후드, 긴 바지`
126 + }else if(12<=item.fcstValue && item.fcstValue<=16){
127 + var clothesMessage=`날이 쌀쌀합니다. 추천 옷: 자켓, 가디건, 청자켓, 니트, 청바지`
128 + }else if(9<=item.fcstValue && item.fcstValue<=11){
129 + var clothesMessage =`날이 아직 춥습니다. 따뜻한 옷이 좋습니다. 추천 옷: 트렌치코트, 야상, 점퍼, 기모바지`
130 + }else if(5<=item.fcstValue && item.fcstValue<=8){
131 + var clothesMessage =` 날이 춥습니다. 따뜻하게 입어주세요. 추천 옷: 두꺼운 코트, 히트텍, 가죽 옷, 기모 소재의 옷`
132 + }else{
133 + var clothesMessage= `날씨가 매우 춥습니다. 건강에 유의하세요 .추천 옷: 패딩, 두꺼운 코트, 누빔 옷, 기모 소재의 옷, 히트텍, 목도리, 장갑`
134 + }
135 + }
136 + //}
76 } 137 }
77 request.post( 138 request.post(
78 { 139 {
...@@ -85,7 +146,11 @@ function rain (replyToken, message){ ...@@ -85,7 +146,11 @@ function rain (replyToken, message){
85 "messages":[ 146 "messages":[
86 { 147 {
87 "type":"text", 148 "type":"text",
88 - "text":rainMessage 149 + "text":rainMessage+windmessage+watermessage
150 + },
151 + {
152 + "type":"text",
153 + "text":clothesMessage
89 } 154 }
90 ] 155 ]
91 } 156 }
...@@ -96,11 +161,19 @@ function rain (replyToken, message){ ...@@ -96,11 +161,19 @@ function rain (replyToken, message){
96 }); 161 });
97 } 162 }
98 163
164 +/*
99 function clothes (replyToken, message){ 165 function clothes (replyToken, message){
100 - if(message != '') 166 + if(message != '대구' && message != '학교')
101 { 167 {
102 return 168 return
103 } 169 }
170 +
171 + if(message == '대구'){
172 + WEATHER_URL = WEATHER_URL_D
173 + }else if(message == '학교'){
174 + WEATHER_URL = WEATHER_URL_S
175 + }
176 +
104 request.get( 177 request.get(
105 { 178 {
106 url: WEATHER_URL, 179 url: WEATHER_URL,
...@@ -153,7 +226,7 @@ function clothes (replyToken, message){ ...@@ -153,7 +226,7 @@ function clothes (replyToken, message){
153 } 226 }
154 }); 227 });
155 } 228 }
156 - 229 +*/
157 230
158 231
159 232
......