Toggle navigation
Toggle navigation
This project
Loading...
Sign in
신정아
/
weather_chatbot
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Graphs
Issues
1
Network
Create a new issue
Commits
Issue Boards
Authored by
Ubuntu
2020-06-14 09:09:47 +0000
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
982089916f4dc6cadcb227f231592a32c2d75273
98208991
1 parent
a0573834
0614 온도에 따른 옷 추천 추가
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
59 additions
and
33 deletions
Experiments/messenger/trans/app.js
Experiments/messenger/trans/app.js
View file @
9820899
...
...
@@ -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=10
00
&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,30 +42,37 @@ 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
}
request
.
get
(
request
.
get
(
{
url
:
WEATHER_URL
,
json
:
true
},(
error
,
response
,
body
)
=>
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
console
.
log
(
body
.
message
);
if
(
body
.
POP
>=
50
){
var
rainMessage
=
"꼭! 우산을 챙기세요"
;
}
else
{
var
rainMessage
=
"우산이 굳이 필요하지는 않습니다."
for
(
var
item
of
body
.
response
.
body
.
items
.
item
)
{
if
(
item
.
category
==
'POP'
)
{
if
(
item
.
fcstValue
>=
50
)
{
var
rainMessage
=
"꼭! 우산을 챙기세요"
;
}
else
{
var
rainMessage
=
"우산이 굳이 필요하지는 않습니다."
}
}
}
request
.
post
(
{
...
...
@@ -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}`
request
.
get
(
{
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
=
{
...
...
Please
register
or
login
to post a comment