Toggle navigation
Toggle navigation
This project
Loading...
Sign in
신원형
/
study-or-enjoy
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
김연우
2022-06-06 19:13:20 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
ed4dc171051eb83a22405abad4c08f1c4a492e47
ed4dc171
1 parent
6fd95d0e
read_csv to main
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
175 additions
and
14 deletions
main.js
main.js
View file @
ed4dc17
...
...
@@ -7,10 +7,10 @@ const path = require('path');
const
HTTPS
=
require
(
'https'
);
const
bodyParser
=
require
(
'body-parser'
);
var
latitude
=
37.2429832
;
var
longitude
=
127.0749535
;
var
locationAdd
=
"경기 용인시 기흥구 서그내로49번길 13"
var
location_name
=
"카페 서천"
//
var latitude = 37.2429832;
//
var longitude = 127.0749535;
//
var locationAdd = "경기 용인시 기흥구 서그내로49번길 13"
//
var location_name = "카페 서천"
const
TARGET_URL
=
'https://api.line.me/v2/bot/message/reply'
...
...
@@ -21,6 +21,11 @@ const TOKEN = tokens.channel
const
id
=
tokens
.
id
const
pw
=
tokens
.
pw
var
first
=
false
;
//첫 시도인지
var
second
=
false
;
//첫번째 분류 선택했는지
var
destCar
=
""
;
var
destination
=
[];
function
sendText
(
replyToken
,
messages
)
{
request
.
post
(
{
...
...
@@ -75,8 +80,8 @@ app.use(bodyParser.json());
app
.
post
(
'/hook'
,
function
(
req
,
res
)
{
var
eventObj
=
req
.
body
.
events
[
0
];
//
var source = eventObj.source;
//
var message = eventObj.message;
var
source
=
eventObj
.
source
;
var
message
=
eventObj
.
message
;
// request log
console
.
log
(
'======================'
,
new
Date
(),
'======================'
);
...
...
@@ -84,20 +89,118 @@ app.post('/hook', function (req, res) {
console
.
log
(
'[request source] '
,
eventObj
.
source
);
console
.
log
(
'[request message]'
,
eventObj
.
message
);
sendText
(
eventObj
.
replyToken
,
talk
.
start
(
id
,
pw
))
// Test only
//sendImage(eventObj.replyToken)
if
(
first
==
false
&&
eventObj
.
message
.
text
==
"처음"
)
{
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:
[
{
"type"
:
"text"
,
"text"
:
"카테고리를 선택해주세요.\n1. 식사\n2. 카페\n3. 술\n4. 놀거리\n(숫자만 입력해주세요)"
}
]
},
},
(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
first
=
true
;
}
else
if
(
first
==
true
&&
second
==
false
)
{
if
(
eventObj
.
message
.
text
==
1
)
{
//식사 선택
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:
[{
"type"
:
"text"
,
"text"
:
"[식사] 키워드를 선택해주세요\n1. 양식\n2. 한식\n3. 중식\n4. 일식\n5. 기타\n(숫자만 입력해주세요)"
}]
}
},
(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
destCar
=
"meal"
;
}
else
if
(
eventObj
.
message
.
text
==
2
)
{
//카페 선택
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:
[{
"type"
:
"text"
,
"text"
:
"[카페] 키워드를 선택해주세요\n1. 감성\n2. 카공\n3. 디저트\n(숫자만 입력해주세요)"
}]
}
},
(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
destCar
=
"cafe"
;
}
else
if
(
eventObj
.
message
.
text
==
3
)
{
//술 선택
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:
[{
"type"
:
"text"
,
"text"
:
"[술] 키워드를 선택해주세요\n1. 소주\n2. 이자카야\n3. 막걸리\n4. 맥주\n(숫자만 입력해주세요)"
}]
}
},
(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
destCar
=
"bar"
}
else
if
(
eventObj
.
message
.
text
==
4
)
{
//놀거리 선택
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:
[{
"type"
:
"text"
,
"text"
:
"[놀거리] 키워드를 선택해주세요\n1. 노래방\n2. 피시방\n3. 기타\n(숫자만 입력해주세요)"
}]
}
},
(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
destCar
=
"play"
}
chooseFile
();
second
=
true
;
}
else
if
(
first
==
true
&&
second
==
true
)
{
if
(
destCar
==
"meal"
)
{
if
(
eventObj
.
message
.
text
==
1
)
{
var
randpick
=
randomNum
(
0
,
6
);
destination
=
results
[
randpick
]
}
else
if
(
eventObj
.
message
.
text
==
2
)
{
var
randpick
=
randomNum
(
7
,
19
);
destination
=
results
[
randpick
]
}
else
if
(
eventObj
.
message
.
text
==
3
)
{
var
randpick
=
randomNum
(
20
,
25
);
destination
=
results
[
randpick
]
}
else
if
(
eventObj
.
message
.
text
==
4
)
{
var
randpick
=
randomNum
(
26
,
36
);
destination
=
results
[
randpick
]
}
else
if
(
eventObj
.
message
.
text
==
5
)
{
var
randpick
=
randomNum
(
37
,
46
);
destination
=
results
[
randpick
]
}
}
else
if
(
destCar
==
"cafe"
)
{
if
(
eventObj
.
message
.
text
==
1
)
{
var
randpick
=
randomNum
(
0
,
5
);
destination
=
results
[
randpick
]
}
else
if
(
eventObj
.
message
.
text
==
2
)
{
var
randpick
=
randomNum
(
6
,
12
);
destination
=
results
[
randpick
]
}
else
if
(
eventObj
.
message
.
text
==
3
)
{
var
randpick
=
randomNum
(
13
,
17
);
destination
=
results
[
randpick
]
}
}
else
if
(
destCar
==
"bar"
)
{
if
(
eventObj
.
message
.
text
==
1
)
{
var
randpick
=
randomNum
(
0
,
5
);
destination
=
results
[
randpick
]
}
else
if
(
eventObj
.
message
.
text
==
2
)
{
var
randpick
=
randomNum
(
6
,
11
);
destination
=
results
[
randpick
]
}
else
if
(
eventObj
.
message
.
text
==
3
)
{
var
randpick
=
randomNum
(
12
,
15
);
destination
=
results
[
randpick
]
}
else
if
(
eventObj
.
message
.
text
==
4
)
{
var
randpick
=
randomNum
(
16
,
20
);
destination
=
results
[
randpick
]
}
}
else
if
(
destCar
==
"play"
)
{
if
(
eventObj
.
message
.
text
==
1
)
{
var
randpick
=
randomNum
(
0
,
3
);
destination
=
results
[
randpick
]
}
else
if
(
eventObj
.
message
.
text
==
2
)
{
var
randpick
=
randomNum
(
4
,
8
);
destination
=
results
[
randpick
]
}
else
if
(
eventObj
.
message
.
text
==
3
)
{
var
randpick
=
randomNum
(
9
,
13
);
destination
=
results
[
randpick
]
}
}
}
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
(),
};
//
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
,
()
=>
{
HTTPS
.
createServer
(
app
).
listen
(
sslport
,
()
=>
{
console
.
log
(
`[HTTPS] Server is started on port
${
sslport
}
`
);
});
}
catch
(
error
)
{
...
...
@@ -105,3 +208,61 @@ try {
console
.
log
(
error
);
}
const
csv
=
require
(
'csv-parser'
)
const
results
=
[];
chooseFile
=
function
()
{
if
(
destCar
==
"cafe"
)
{
fs
.
createReadStream
(
'cafe_list.csv'
)
.
pipe
(
csv
())
.
on
(
'data'
,
(
data
)
=>
results
.
push
(
data
))
.
on
(
'end'
,
()
=>
{
console
.
log
(
results
);
});
}
else
if
(
destCar
==
"meal"
)
{
fs
.
createReadStream
(
'meal_list.csv'
)
.
pipe
(
csv
())
.
on
(
'data'
,
(
data
)
=>
results
.
push
(
data
))
.
on
(
'end'
,
()
=>
{
console
.
log
(
results
);
});
}
else
if
(
destCar
==
"play"
)
{
fs
.
createReadStream
(
'play_list.csv'
)
.
pipe
(
csv
())
.
on
(
'data'
,
(
data
)
=>
results
.
push
(
data
))
.
on
(
'end'
,
()
=>
{
console
.
log
(
results
);
});
}
else
if
(
destCar
==
"bar"
)
{
fs
.
createReadStream
(
'bar_list.csv'
)
.
pipe
(
csv
())
.
on
(
'data'
,
(
data
)
=>
results
.
push
(
data
))
.
on
(
'end'
,
()
=>
{
console
.
log
(
results
);
});
}
}
function
randomNum
(
min
,
max
)
{
var
randNum
=
Math
.
floor
(
Math
.
random
()
*
(
max
-
min
+
1
))
+
min
;
return
randNum
;
}
function
getX
()
{
return
destination
.
x
;
}
function
getY
()
{
return
destination
.
y
;
}
function
getName
()
{
return
destination
.
name
;
}
function
getAddress
()
{
return
destination
.
address
;
}
//export { getX, getY, getName, getAddress }
\ No newline at end of file
...
...
Please
register
or
login
to post a comment