Showing
2 changed files
with
56 additions
and
93 deletions
... | @@ -2,30 +2,18 @@ var express = require('express');//express 모듈을 사용 | ... | @@ -2,30 +2,18 @@ var express = require('express');//express 모듈을 사용 |
2 | var qs = require('querystring') | 2 | var qs = require('querystring') |
3 | const request = require('request');//request 모듈을 사용 | 3 | const request = require('request');//request 모듈을 사용 |
4 | const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'//라인 api | 4 | const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'//라인 api |
5 | - | 5 | +const fs = require('fs') |
6 | var NOW = new Date() | 6 | 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().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 | +var 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=60&ny=120&dataType=JSON` | ||
11 | 12 | ||
12 | - | 13 | +var region = JSON.parse(fs.readFileSync('region.json', 'utf8')); |
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` | ||
24 | - | ||
25 | 14 | ||
26 | const TOKEN = 'RbPAXRYWub0evg2yyi7oiHytZsZsE0JtbZgRYZNZDU1vjpJkOwGqwh+aKTYKVhVHh6LZOUVZLl84NQQlNWNbXR9hUhPEiLEK0cie4O3OlKUuEe/3wAsjPu7HbRi1zn9BsR3Qr4pcqmiIKP8HRUKvEwdB04t89/1O/w1cDnyilFU=' | 15 | const TOKEN = 'RbPAXRYWub0evg2yyi7oiHytZsZsE0JtbZgRYZNZDU1vjpJkOwGqwh+aKTYKVhVHh6LZOUVZLl84NQQlNWNbXR9hUhPEiLEK0cie4O3OlKUuEe/3wAsjPu7HbRi1zn9BsR3Qr4pcqmiIKP8HRUKvEwdB04t89/1O/w1cDnyilFU=' |
27 | 16 | ||
28 | -const fs = require('fs'); | ||
29 | const path = require('path'); | 17 | const path = require('path'); |
30 | const HTTPS = require('https'); | 18 | const HTTPS = require('https'); |
31 | const domain = "www.osschat.tk" | 19 | const domain = "www.osschat.tk" |
... | @@ -33,12 +21,13 @@ const sslport = 23023; | ... | @@ -33,12 +21,13 @@ const sslport = 23023; |
33 | const bodyParser = require('body-parser'); | 21 | const bodyParser = require('body-parser'); |
34 | var app = express(); | 22 | var app = express(); |
35 | var premessage='premessage' | 23 | var premessage='premessage' |
36 | -var start ='start' | 24 | +var check = false |
37 | -var check = true | ||
38 | - | ||
39 | 25 | ||
40 | app.use(bodyParser.json()); | 26 | app.use(bodyParser.json()); |
41 | -app.use(express.static('statics')); | 27 | + |
28 | +fs.readFile('region.json', 'utf8', function(err, data){ | ||
29 | + console.log(data); | ||
30 | + }); | ||
42 | 31 | ||
43 | 32 | ||
44 | 33 | ||
... | @@ -54,9 +43,11 @@ app.post('/hook', function (req, res) { | ... | @@ -54,9 +43,11 @@ app.post('/hook', function (req, res) { |
54 | console.log('[request source] ', eventObj.source); | 43 | console.log('[request source] ', eventObj.source); |
55 | console.log('[request message]', eventObj.message); | 44 | console.log('[request message]', eventObj.message); |
56 | 45 | ||
57 | - | 46 | + if (check == false){ |
58 | - rain(eventObj.replyToken, eventObj.message.text); | 47 | + start(eventObj.replyToken, eventObj.message.text)} |
59 | - //clothes(eventObj.replyToken, eventObj.message.text); | 48 | + else{ |
49 | + info(eventObj.replyToken, eventObj.message.text)} | ||
50 | + | ||
60 | 51 | ||
61 | 52 | ||
62 | res.sendStatus(200); | 53 | res.sendStatus(200); |
... | @@ -64,17 +55,26 @@ app.post('/hook', function (req, res) { | ... | @@ -64,17 +55,26 @@ app.post('/hook', function (req, res) { |
64 | 55 | ||
65 | 56 | ||
66 | 57 | ||
67 | -function rain (replyToken, message){ | 58 | +function info (replyToken, message){ |
68 | - if(message != '대구' && message != '학교') | 59 | + |
60 | + if(check==false) | ||
69 | { | 61 | { |
70 | return | 62 | return |
71 | } | 63 | } |
72 | - | 64 | + |
73 | - if(message == '대구') | 65 | + |
66 | + if(check == true) | ||
74 | { | 67 | { |
75 | - WEATHER_URL = WEATHER_URL_D | 68 | + var s = message.split(' '); |
76 | - }else if(message == '학교'){ | 69 | + for(i=0; i<region.length; i++){ |
77 | - WEATHER_URL = WEATHER_URL_S | 70 | + if (s[0] == region[i].l1 && s[1]== region[i].l2 && s[2]==region[i].l3) |
71 | + { | ||
72 | + var rx=region[i].x | ||
73 | + var ry=region[i].y | ||
74 | + 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=${rx}&ny=${ry}&dataType=JSON` | ||
75 | + | ||
76 | + } | ||
77 | + } | ||
78 | } | 78 | } |
79 | request.get( | 79 | request.get( |
80 | { | 80 | { |
... | @@ -110,8 +110,6 @@ function rain (replyToken, message){ | ... | @@ -110,8 +110,6 @@ function rain (replyToken, message){ |
110 | var watermessage =" 너무 습합니다." | 110 | var watermessage =" 너무 습합니다." |
111 | } | 111 | } |
112 | } | 112 | } |
113 | - | ||
114 | - //for(var item of body.response.body.items.item) { | ||
115 | if(item.category == 'TMX') { | 113 | if(item.category == 'TMX') { |
116 | if(item.fcstValue>=28){ | 114 | if(item.fcstValue>=28){ |
117 | var clothesMessage = `날씨가 매우 덥습니다. 건강에 유의해주세요. | 115 | var clothesMessage = `날씨가 매우 덥습니다. 건강에 유의해주세요. |
... | @@ -133,7 +131,7 @@ function rain (replyToken, message){ | ... | @@ -133,7 +131,7 @@ function rain (replyToken, message){ |
133 | var clothesMessage= `날씨가 매우 춥습니다. 건강에 유의하세요 .추천 옷: 패딩, 두꺼운 코트, 누빔 옷, 기모 소재의 옷, 히트텍, 목도리, 장갑` | 131 | var clothesMessage= `날씨가 매우 춥습니다. 건강에 유의하세요 .추천 옷: 패딩, 두꺼운 코트, 누빔 옷, 기모 소재의 옷, 히트텍, 목도리, 장갑` |
134 | } | 132 | } |
135 | } | 133 | } |
136 | - //} | 134 | + |
137 | } | 135 | } |
138 | request.post( | 136 | request.post( |
139 | { | 137 | { |
... | @@ -161,73 +159,38 @@ function rain (replyToken, message){ | ... | @@ -161,73 +159,38 @@ function rain (replyToken, message){ |
161 | }); | 159 | }); |
162 | } | 160 | } |
163 | 161 | ||
164 | -/* | 162 | + |
165 | -function clothes (replyToken, message){ | 163 | +function start (replyToken, message){ |
166 | - if(message != '대구' && message != '학교') | 164 | + if(message != '시작') |
167 | { | 165 | { |
166 | + check = false | ||
168 | return | 167 | return |
169 | } | 168 | } |
170 | 169 | ||
171 | - if(message == '대구'){ | 170 | + if(message == '시작'){ |
172 | - WEATHER_URL = WEATHER_URL_D | 171 | + check= true |
173 | - }else if(message == '학교'){ | ||
174 | - WEATHER_URL = WEATHER_URL_S | ||
175 | } | 172 | } |
176 | - | 173 | + |
177 | - request.get( | 174 | + var startMessage= '특별 혹은 광역시/도 시/구/군/ 읍/면/동으로 입력해주세요. 예)서울특별시 종로구 사직동, 강원도 화천군 화천읍, 충청남도 아산시 둔포면' |
178 | - { | 175 | + request.post( |
179 | - url: WEATHER_URL, | 176 | + { |
180 | - json:true | 177 | + url: TARGET_URL, |
181 | - },(error, response, body) => { | 178 | + headers: { |
182 | - if(!error && response.statusCode == 200) { | 179 | + 'Authorization': `Bearer ${TOKEN}` |
183 | - console.log(body.message); | 180 | + }, |
184 | - for(var item of body.response.body.items.item) { | 181 | + json: { |
185 | - if(item.category == 'TMX') { | 182 | + "replyToken":replyToken, |
186 | - if(item.fcstValue>=28){ | 183 | + "messages":[ |
187 | - var clothesMessage = `날씨가 매우 덥습니다. 건강에 유의해주세요. | 184 | + { |
188 | - 추천 옷: 민소매, 반팔, 반바지, 여름용 치마, 린넨 소재의 옷` | 185 | + "type":"text", |
189 | - }else if(23<=item.fcstValue && item.fcstValue<=27){ | 186 | + "text":startMessage |
190 | - var clothesMessage = `날이 덥습니다. 가벼운 옷차림을 추천합니다. | 187 | + } |
191 | - 추천 옷: 반팔, 얇은 셔츠, 반바지, 면바지 ` | 188 | + ] |
192 | - }else if(20<=item.fcstValue && item.fcstValue<=22){ | 189 | + } |
193 | - var clothesMessage = `초여름/ 늦여름 날씨입니다. 일교차에 주의해주세요. 추천 옷: 블라우스, 얇은 긴팔 티, 면바지, 슬랙스, 반팔과 가디건` | 190 | + },(error, response, body) => { |
194 | - }else if(17<=item.fcstValue && item.fcstValue<=19){ | 191 | + console.log(body) |
195 | - var clothesMessage=`아직 조금은 쌀쌀합니다. 건강에 유의해주세요. 추천 옷: 얇은 가디건, 니트, 맨투맨, 후드, 긴 바지` | 192 | + }); |
196 | - }else if(12<=item.fcstValue && item.fcstValue<=16){ | ||
197 | - var clothesMessage=`날이 쌀쌀합니다. 추천 옷: 자켓, 가디건, 청자켓, 니트, 청바지` | ||
198 | - }else if(9<=item.fcstValue && item.fcstValue<=11){ | ||
199 | - var clothesMessage =`날이 아직 춥습니다. 따뜻한 옷이 좋습니다. 추천 옷: 트렌치코트, 야상, 점퍼, 기모바지` | ||
200 | - }else if(5<=item.fcstValue && item.fcstValue<=8){ | ||
201 | - var clothesMessage =` 날이 춥습니다. 따뜻하게 입어주세요. 추천 옷: 두꺼운 코트, 히트텍, 가죽 옷, 기모 소재의 옷` | ||
202 | - }else{ | ||
203 | - var clothesMessage= `날씨가 매우 춥습니다. 건강에 유의하세요 .추천 옷: 패딩, 두꺼운 코트, 누빔 옷, 기모 소재의 옷, 히트텍, 목도리, 장갑` | ||
204 | - } | ||
205 | - } | ||
206 | - } | ||
207 | - | ||
208 | - request.post( | ||
209 | - { | ||
210 | - url: TARGET_URL, | ||
211 | - headers: { | ||
212 | - 'Authorization': `Bearer ${TOKEN}` | ||
213 | - }, | ||
214 | - json: { | ||
215 | - "replyToken":replyToken, | ||
216 | - "messages":[ | ||
217 | - { | ||
218 | - "type":"text", | ||
219 | - "text":clothesMessage | ||
220 | - } | ||
221 | - ] | ||
222 | - } | ||
223 | - },(error, response, body) => { | ||
224 | - console.log(body) | ||
225 | - }); | ||
226 | - } | ||
227 | - }); | ||
228 | } | 193 | } |
229 | -*/ | ||
230 | - | ||
231 | 194 | ||
232 | 195 | ||
233 | 196 | ... | ... |
Experiments/messenger/trans/region.json
0 → 100644
This diff could not be displayed because it is too large.
-
Please register or login to post a comment