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-17 16:37:41 +0000
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
7b8ee2517a8252dafed969055a092d23ae2ce402
7b8ee251
1 parent
98208991
날씨추가, 지역추가
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
84 additions
and
11 deletions
Experiments/messenger/trans/app.js
Experiments/messenger/trans/app.js
View file @
7b8ee25
...
...
@@ -8,7 +8,19 @@ var YEAR = NOW.getFullYear()
var
MONTH
=
NOW
.
getMonth
()
+
1
var
DATE
=
NOW
.
getDate
();
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`
//var dic = {'대구': {'x': 90, 'y': 90}, '학교':{'x':62, 'y'}}
/*
var dic={}
var [schoolx]='62'
var [schooly]='120'
대구 수성구 x 90\
대구 수성구 y 90
*/
//var dic = {'대구': {'x': 90, 'y': 90}, '학교':{'x':62,'y':120}}
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`
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`
const
TOKEN
=
'RbPAXRYWub0evg2yyi7oiHytZsZsE0JtbZgRYZNZDU1vjpJkOwGqwh+aKTYKVhVHh6LZOUVZLl84NQQlNWNbXR9hUhPEiLEK0cie4O3OlKUuEe/3wAsjPu7HbRi1zn9BsR3Qr4pcqmiIKP8HRUKvEwdB04t89/1O/w1cDnyilFU='
...
...
@@ -44,22 +56,29 @@ app.post('/hook', function (req, res) {
rain
(
eventObj
.
replyToken
,
eventObj
.
message
.
text
);
clothes
(
eventObj
.
replyToken
,
eventObj
.
message
.
text
);
//
clothes(eventObj.replyToken, eventObj.message.text);
res
.
sendStatus
(
200
);
});
// 비 말고도 날씨 정보 추가
function
rain
(
replyToken
,
message
){
if
(
message
!=
'
날씨
'
)
if
(
message
!=
'
대구'
&&
message
!=
'학교
'
)
{
return
}
if
(
message
==
'대구'
)
{
WEATHER_URL
=
WEATHER_URL_D
}
else
if
(
message
==
'학교'
){
WEATHER_URL
=
WEATHER_URL_S
}
request
.
get
(
{
url
:
WEATHER_URL
,
url
:
WEATHER_URL
,
json
:
true
},(
error
,
response
,
body
)
=>
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
...
...
@@ -73,6 +92,48 @@ function rain (replyToken, message){
var
rainMessage
=
"우산이 굳이 필요하지는 않습니다."
}
}
if
(
item
.
category
==
'WSD'
){
if
(
item
.
fcstValue
<
8
){
var
windmessage
=
"기분이 좋을 정도의 바람입니다."
}
else
if
(
item
.
fcstValue
>=
8
&&
item
.
fcstVaule
<
14
){
var
windmessage
=
" 바람이 강한 편입니다."
}
else
{
var
windmessage
=
"바람이 매우 강합니다. 야외활동을 자제해주세요"
}
}
if
(
item
.
category
==
'REH'
){
if
(
item
.
fcstValue
<
30
){
var
watermessage
=
"너무 건조합니다."
}
else
if
(
item
.
fcstValue
<=
70
&&
item
.
fcstValue
>=
40
){
var
watermessage
=
"습도는 적당합니다."
}
else
{
var
watermessage
=
" 너무 습합니다."
}
}
//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
=
`날씨가 매우 춥습니다. 건강에 유의하세요 .추천 옷: 패딩, 두꺼운 코트, 누빔 옷, 기모 소재의 옷, 히트텍, 목도리, 장갑`
}
}
//}
}
request
.
post
(
{
...
...
@@ -85,8 +146,12 @@ function rain (replyToken, message){
"messages"
:[
{
"type"
:
"text"
,
"text"
:
rainMessage
}
"text"
:
rainMessage
+
windmessage
+
watermessage
},
{
"type"
:
"text"
,
"text"
:
clothesMessage
}
]
}
},(
error
,
response
,
body
)
=>
{
...
...
@@ -96,11 +161,19 @@ function rain (replyToken, message){
});
}
/*
function clothes (replyToken, message){
if
(
message
!=
'
옷
'
)
if(message != '
대구' && message != '학교
')
{
return
}
if(message == '대구'){
WEATHER_URL = WEATHER_URL_D
}else if(message == '학교'){
WEATHER_URL = WEATHER_URL_S
}
request.get(
{
url: WEATHER_URL,
...
...
@@ -112,10 +185,10 @@ function clothes (replyToken, message){
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){
...
...
@@ -153,7 +226,7 @@ function clothes (replyToken, message){
}
});
}
*/
...
...
Please
register
or
login
to post a comment