Toggle navigation
Toggle navigation
This project
Loading...
Sign in
오세헌
/
Ingredient-to-Dish-ChatBot
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
전언석
2022-06-09 15:29:02 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
39dbd0d8b7273aa5bb8b5f33295e6c9f1fae0672
39dbd0d8
1 parent
4416f722
ADD : added message (when there's a typo)
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
53 additions
and
39 deletions
I_to_D_chatbot/reply.js
I_to_D_chatbot/reply.js
View file @
39dbd0d
...
...
@@ -7,46 +7,14 @@ const path = require('path');
const
HTTPS
=
require
(
'https'
);
const
domain
=
"2019102226.osschatbot2022.ml"
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
(),
'======================'
);
// mwsql
var
mysql
=
require
(
'mysql'
);
var
db
=
mysql
.
createConnection
({
host
:
'chatbot.c7fzgftc3yrm.us-east-1.rds.amazonaws.com'
,
user
:
'chatbot'
,
password
:
''
,
database
:
'chatbot'
,
port
:
'3306'
});
db
.
connect
();
db
.
query
(
'SELECT * FROM data'
,
function
(
error
,
results
,
fields
)
{
if
(
error
)
{
console
.
log
(
error
);
}
var
arr
=
new
Array
();
var
input_ingredients_list
=
message
.
text
.
split
(
" "
);
for
(
var
i
=
0
;
i
<
results
.
length
;
i
++
)
{
var
ingredients_list
=
results
[
i
].
ingredients
.
split
(
", "
);
if
(
ingredients_list
.
filter
(
x
=>
input_ingredients_list
.
includes
(
x
)).
length
===
input_ingredients_list
.
length
)
{
arr
.
push
(
i
);
}
}
if
(
arr
.
length
!=
0
)
{
var
num
=
arr
[
Math
.
floor
(
Math
.
random
()
*
arr
.
length
)];
function
output_message
(
results
,
list
)
{
var
num
=
list
[
Math
.
floor
(
Math
.
random
()
*
list
.
length
)];
request
.
post
(
{
url
:
TARGET_URL
,
...
...
@@ -62,7 +30,7 @@ app.post('/hook', function (req, res) {
},
{
"type"
:
"text"
,
"text"
:
`필요한 재료는\n\n"
${
results
[[
num
]].
ingredients
}
"\n\n입니다.`
"text"
:
`필요한 재료는\n\n"
${
results
[[
num
]].
ingrediant
}
"\n\n입니다.`
},
{
"type"
:
"text"
,
...
...
@@ -74,6 +42,47 @@ app.post('/hook', function (req, res) {
console
.
log
(
body
)
});
}
// request log
console
.
log
(
'======================'
,
new
Date
(),
'======================'
);
// mwsql
var
mysql
=
require
(
'mysql'
);
var
db
=
mysql
.
createConnection
({
host
:
'chatbot.c7fzgftc3yrm.us-east-1.rds.amazonaws.com'
,
user
:
'chatbot'
,
password
:
''
,
database
:
'chatbot'
,
port
:
'3306'
});
db
.
connect
();
var
max
=
0
;
var
arr2
;
db
.
query
(
'SELECT * FROM recipe'
,
function
(
error
,
results
,
fields
)
{
if
(
error
)
{
console
.
log
(
error
);
}
var
arr1
=
new
Array
();
var
input_ingredients_list
=
message
.
text
.
split
(
" "
);
console
.
log
(
input_ingredients_list
);
for
(
var
i
=
0
;
i
<
results
.
length
;
i
++
)
{
var
ingredients_list
=
results
[
i
].
ingrediant
.
split
(
","
);
var
count
=
ingredients_list
.
filter
(
x
=>
input_ingredients_list
.
includes
(
x
)).
length
;
if
(
count
>
max
)
{
max
=
count
;
arr2
=
new
Array
();
}
if
(
count
===
input_ingredients_list
.
length
)
{
arr1
.
push
(
i
);
}
else
if
(
arr1
.
length
===
0
&&
count
!=
0
&&
count
===
max
)
{
arr2
.
push
(
i
);
}
}
if
(
arr1
.
length
!=
0
)
{
output_message
(
results
,
arr1
);
}
else
if
(
arr2
!=
undefined
)
{
output_message
(
results
,
arr2
);
}
else
{
request
.
post
(
{
...
...
@@ -87,6 +96,15 @@ app.post('/hook', function (req, res) {
{
"type"
:
"text"
,
"text"
:
`재료를 다시 입력해주세요.`
},
{
"type"
:
"text"
,
"text"
:
`여러 재료를 입력시\n띄어쓰기로만 구분을 해주세요.`
}
,
{
"type"
:
"text"
,
"text"
:
`예시) 감자 양파 대파 (o)\n\n 감자, 양파,대파 (x)`
}
]
}
...
...
@@ -95,18 +113,15 @@ app.post('/hook', function (req, res) {
});
}
});
db
.
end
();
res
.
sendStatus
(
200
);
});
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
}
`
);
});
...
...
@@ -114,4 +129,3 @@ try {
console
.
log
(
'[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.'
);
console
.
log
(
error
);
}
\ No newline at end of file
...
...
Please
register
or
login
to post a comment