Toggle navigation
Toggle navigation
This project
Loading...
Sign in
장수창
/
COVID19_Information_Chatbot
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
1
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
장수창
2020-06-17 16:00:20 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
f97d9bdb5b00a0d76b2d9c0b995591dc05f837fb
f97d9bdb
1 parent
86bf7a2c
merge app.js
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
128 additions
and
207 deletions
nodejs/app.js
nodejs/reply.js
nodejs/app.js
View file @
f97d9bd
var
express
=
require
(
'express'
);
const
request
=
require
(
'request'
);
const
TARGET_URL
=
'https://api.line.me/v2/bot/message/push'
const
MULTI_TARGET_URL
=
'https://api.line.me/v2/bot/message/multicast'
const
TARGET_URL
=
'https://api.line.me/v2/bot/message/reply'
const
BROAD_TARGET_URL
=
'https://api.line.me/v2/bot/message/broadcast'
const
TOKEN
=
''
const
USER_ID
=
'U2d841876b98eeabbdc2102f467546d00'
const
fs
=
require
(
'fs'
);
const
path
=
require
(
'path'
);
const
HTTPS
=
require
(
'https'
);
const
domain
=
"www.osschatbot2020.tk"
const
sslport
=
23023
;
// Single User
// request.post(
// {
// url: TARGET_URL,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "to": `${USER_ID}`,
// "messages":[
// {
// "type":"text",
// "text":"Hello, user"
// },
// {
// "type":"text",
// "text":"May I help you?"
// }
// ]
// }
// },(error, response, body) => {
// console.log(body)
// });
const
bodyParser
=
require
(
'body-parser'
);
var
app
=
express
();
app
.
use
(
bodyParser
.
json
());
app
.
post
(
'/hook'
,
function
(
req
,
res
)
{
var
eventObj
=
req
.
body
.
events
[
0
];
var
source
=
eventObj
.
source
;
var
message
=
eventObj
.
message
;
// Multicast User
// request.post(
// {
// url: MULTI_TARGET_URL,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "to": [`${USER_ID}`],
// "messages":[
// {
// "type":"text",
// "text":"Hello, user"
// },
// {
// "type":"text",
// "text":"May I help you?"
// }
// ]
// }
// },(error, response, body) => {
// console.log(body)
// });
// request log
console
.
log
(
'======================'
,
new
Date
()
,
'======================'
);
console
.
log
(
'[request]'
,
req
.
body
);
console
.
log
(
'[request source] '
,
eventObj
.
source
);
console
.
log
(
'[request message]'
,
eventObj
.
message
);
var
isNationWide
=
message
.
text
;
var
sub_nationwide
=
"국내"
;
if
(
isNationWide
.
indexOf
(
sub_nationwide
)
!==
-
1
){
replyNationWide
(
eventObj
);
}
else
if
(
message
.
text
==
"야"
||
message
.
text
==
"도움말"
){
hello
(
eventObj
)
}
res
.
sendStatus
(
200
);
});
//reply
function
replyNationWide
(
eventObj
)
{
//read status
var
strings
=
[
'날짜'
,
'확진환자'
,
'격리해제'
,
'검사진행'
,
'사망자'
]
var
fs
=
require
(
'fs'
);
var
array
=
fs
.
readFileSync
(
'status.txt'
).
toString
().
split
(
"\n"
);
for
(
i
in
array
)
{
strings
[
i
]
=
array
[
i
]
}
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:[
{
"type"
:
"text"
,
"text"
:
strings
[
0
]
},
{
"type"
:
"text"
,
"text"
:
strings
[
1
]
},
{
"type"
:
"text"
,
"text"
:
strings
[
2
]
},
{
"type"
:
"text"
,
"text"
:
strings
[
3
]
},
{
"type"
:
"text"
,
"text"
:
strings
[
4
]
},
]
}
},(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
}
//hello
function
hello
(
eventObj
)
{
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:[
{
"type"
:
"text"
,
"text"
:
"안녕하십니까. 코로나 도우미 입니다."
},
{
"type"
:
"text"
,
"text"
:
"국내 현황은 '국내'를 타이핑 해주세요."
},
{
"type"
:
"sticker"
,
"packageId"
:
"11539"
,
"stickerId"
:
"52114110"
}
]
}
},(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
}
// Broadcast
function
broadcast
(
eventObj
){
request
.
post
(
{
url
:
BROAD_TARGET_URL
,
...
...
@@ -76,4 +138,20 @@ const USER_ID = 'U2d841876b98eeabbdc2102f467546d00'
}
},(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
\ No newline at end of file
});
}
try
{
const
option
=
{
ca
:
fs
.
readFileSync
(
'/etc/letsencrypt/live/'
+
domain
+
'/fullchain.pem'
),
key
:
fs
.
readFileSync
(
path
.
resolve
(
process
.
cwd
(),
'/etc/letsencrypt/live/'
+
domain
+
'/privkey.pem'
),
'utf8'
).
toString
(),
cert
:
fs
.
readFileSync
(
path
.
resolve
(
process
.
cwd
(),
'/etc/letsencrypt/live/'
+
domain
+
'/cert.pem'
),
'utf8'
).
toString
(),
};
HTTPS
.
createServer
(
option
,
app
).
listen
(
sslport
,
()
=>
{
console
.
log
(
`[HTTPS] Server is started on port
${
sslport
}
`
);
});
}
catch
(
error
)
{
console
.
log
(
'[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.'
);
console
.
log
(
error
);
}
\ No newline at end of file
...
...
nodejs/reply.js
deleted
100644 → 0
View file @
86bf7a2
var
express
=
require
(
'express'
);
const
request
=
require
(
'request'
);
const
TARGET_URL
=
'https://api.line.me/v2/bot/message/reply'
const
BROAD_TARGET_URL
=
'https://api.line.me/v2/bot/message/broadcast'
const
TOKEN
=
''
const
fs
=
require
(
'fs'
);
const
path
=
require
(
'path'
);
const
HTTPS
=
require
(
'https'
);
const
domain
=
"www.osschatbot2020.tk"
const
sslport
=
23023
;
const
bodyParser
=
require
(
'body-parser'
);
var
app
=
express
();
app
.
use
(
bodyParser
.
json
());
app
.
post
(
'/hook'
,
function
(
req
,
res
)
{
var
eventObj
=
req
.
body
.
events
[
0
];
var
source
=
eventObj
.
source
;
var
message
=
eventObj
.
message
;
// request log
console
.
log
(
'======================'
,
new
Date
()
,
'======================'
);
console
.
log
(
'[request]'
,
req
.
body
);
console
.
log
(
'[request source] '
,
eventObj
.
source
);
console
.
log
(
'[request message]'
,
eventObj
.
message
);
var
isNationWide
=
message
.
text
;
var
sub_nationwide
=
"국내"
;
if
(
isNationWide
.
indexOf
(
sub_nationwide
)
!==
-
1
){
replyNationWide
(
eventObj
);
}
else
if
(
message
.
text
==
"야"
||
message
.
text
==
"도움말"
){
hello
(
eventObj
)
}
res
.
sendStatus
(
200
);
});
//reply
function
replyNationWide
(
eventObj
)
{
//read status
var
strings
=
[
'날짜'
,
'확진환자'
,
'격리해제'
,
'검사진행'
,
'사망자'
]
var
fs
=
require
(
'fs'
);
var
array
=
fs
.
readFileSync
(
'status.txt'
).
toString
().
split
(
"\n"
);
for
(
i
in
array
)
{
strings
[
i
]
=
array
[
i
]
}
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:[
{
"type"
:
"text"
,
"text"
:
strings
[
0
]
},
{
"type"
:
"text"
,
"text"
:
strings
[
1
]
},
{
"type"
:
"text"
,
"text"
:
strings
[
2
]
},
{
"type"
:
"text"
,
"text"
:
strings
[
3
]
},
{
"type"
:
"text"
,
"text"
:
strings
[
4
]
},
]
}
},(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
}
//hello
function
hello
(
eventObj
)
{
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:[
{
"type"
:
"text"
,
"text"
:
"안녕하십니까. 코로나 도우미 입니다."
},
{
"type"
:
"text"
,
"text"
:
"국내 현황은 '국내'를 타이핑 해주세요."
},
{
"type"
:
"sticker"
,
"packageId"
:
"11539"
,
"stickerId"
:
"52114110"
}
]
}
},(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
}
// Broadcast
function
broadcast
(
eventObj
){
request
.
post
(
{
url
:
BROAD_TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"messages"
:[
{
"type"
:
"text"
,
"text"
:
"Hello, user"
},
{
"type"
:
"text"
,
"text"
:
"May I help you?"
}
]
}
},(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
}
try
{
const
option
=
{
ca
:
fs
.
readFileSync
(
'/etc/letsencrypt/live/'
+
domain
+
'/fullchain.pem'
),
key
:
fs
.
readFileSync
(
path
.
resolve
(
process
.
cwd
(),
'/etc/letsencrypt/live/'
+
domain
+
'/privkey.pem'
),
'utf8'
).
toString
(),
cert
:
fs
.
readFileSync
(
path
.
resolve
(
process
.
cwd
(),
'/etc/letsencrypt/live/'
+
domain
+
'/cert.pem'
),
'utf8'
).
toString
(),
};
HTTPS
.
createServer
(
option
,
app
).
listen
(
sslport
,
()
=>
{
console
.
log
(
`[HTTPS] Server is started on port
${
sslport
}
`
);
});
}
catch
(
error
)
{
console
.
log
(
'[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.'
);
console
.
log
(
error
);
}
\ No newline at end of file
Please
register
or
login
to post a comment