Ubuntu

0614 온도에 따른 옷 추천 추가

......@@ -7,8 +7,8 @@ var NOW = new Date()
var YEAR = NOW.getFullYear()
var MONTH= NOW.getMonth()+1
var DATE= NOW.getDate();
var NOWDATE= YEAR.toString() + MONTH.toString() + DATE.toString()
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`
var NOWDATE= YEAR.toString().padStart(4, '0') + MONTH.toString().padStart(2, '0') + DATE.toString().padStart(2, '0')
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`
const TOKEN = 'RbPAXRYWub0evg2yyi7oiHytZsZsE0JtbZgRYZNZDU1vjpJkOwGqwh+aKTYKVhVHh6LZOUVZLl84NQQlNWNbXR9hUhPEiLEK0cie4O3OlKUuEe/3wAsjPu7HbRi1zn9BsR3Qr4pcqmiIKP8HRUKvEwdB04t89/1O/w1cDnyilFU='
......@@ -22,6 +22,7 @@ const bodyParser = require('body-parser');
var app = express();
var premessage='premessage'
var start ='start'
var check = true
app.use(bodyParser.json());
......@@ -41,16 +42,18 @@ app.post('/hook', function (req, res) {
console.log('[request source] ', eventObj.source);
console.log('[request message]', eventObj.message);
rain(eventObj.replyToken, eventObj.message.text);
clothes(eventObj.replyToken, eventObj.message.text);
res.sendStatus(200);
});
// 비 말고도 날씨 정보 추가
function rain (replyToken, message){
if(message != '오늘 옷')
if(message != '날씨')
{
return
}
......@@ -61,11 +64,16 @@ function rain (replyToken, message){
},(error, response, body) => {
if(!error && response.statusCode == 200) {
console.log(body.message);
if(body.POP>=50){
for(var item of body.response.body.items.item) {
if(item.category == 'POP') {
if(item.fcstValue >= 50) {
var rainMessage = "꼭! 우산을 챙기세요";
}else{
}
else {
var rainMessage= "우산이 굳이 필요하지는 않습니다."
}
}
}
request.post(
{
url: TARGET_URL,
......@@ -88,26 +96,42 @@ function rain (replyToken, message){
});
}
/*
function trans(replyToken, message) {
if( message != '길찾기')
function clothes (replyToken, message){
if(message != '옷')
{
return
}
premessage=message
request.get(
{
url: MAP_URL,
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-NCP-APIGW-API-KEY-ID': `${MAP_ID}`,
'X-NCP-APIGW-API-KEY': `${MAP_SECRET}`
url: WEATHER_URL,
json:true
},(error, response, body) => {
if(!error && response.statusCode == 200) {
console.log(body.message);
for(var item of body.response.body.items.item) {
if(item.category == 'TMX') {
if(item.fcstValue>=28){
var clothesMessage = `날씨가 매우 덥습니다. 건강에 유의해주세요.
추천 옷: 민소매, 반팔, 반바지, 여름용 치마, 린넨 소재의 옷`
}else if(23<=item.fcstValue && item.fcstValue<=27){
var clothesMessage = `날이 덥습니다. 가벼운 옷차림을 추천합니다.
추천 옷: 반팔, 얇은 셔츠, 반바지, 면바지 `
}else if(20<=item.fcstValue && item.fcstValue<=22){
var clothesMessage = `초여름/ 늦여름 날씨입니다. 일교차에 주의해주세요. 추천 옷: 블라우스, 얇은 긴팔 티, 면바지, 슬랙스, 반팔과 가디건`
}else if(17<=item.fcstValue && item.fcstValue<=19){
var clothesMessage=`아직 조금은 쌀쌀합니다. 건강에 유의해주세요. 추천 옷: 얇은 가디건, 니트, 맨투맨, 후드, 긴 바지`
}else if(12<=item.fcstValue && item.fcstValue<=16){
var clothesMessage=`날이 쌀쌀합니다. 추천 옷: 자켓, 가디건, 청자켓, 니트, 청바지`
}else if(9<=item.fcstValue && item.fcstValue<=11){
var clothesMessage =`날이 아직 춥습니다. 따뜻한 옷이 좋습니다. 추천 옷: 트렌치코트, 야상, 점퍼, 기모바지`
}else if(5<=item.fcstValue && item.fcstValue<=8){
var clothesMessage =` 날이 춥습니다. 따뜻하게 입어주세요. 추천 옷: 두꺼운 코트, 히트텍, 가죽 옷, 기모 소재의 옷`
}else{
var clothesMessage= `날씨가 매우 춥습니다. 건강에 유의하세요 .추천 옷: 패딩, 두꺼운 코트, 누빔 옷, 기모 소재의 옷, 히트텍, 목도리, 장갑`
}
}
}
}).pipe(fs.createWriteStream('statics/replymap.jpg')).on('close', function() {
request.post(
{
url: TARGET_URL,
......@@ -118,19 +142,21 @@ function trans(replyToken, message) {
"replyToken":replyToken,
"messages":[
{
"type": "image",
"originalContentUrl": "https://www.osschat.tk:23023/replymap.jpg",
"previewImageUrl": "https://www.osschat.tk:23023/replymap.jpg"
}//message
"type":"text",
"text":clothesMessage
}
]
}//json
}
},(error, response, body) => {
console.log(body)
});
}
});
}
*/
try {
const option = {
......