김연우

read_csv to main

Showing 1 changed file with 175 additions and 14 deletions
......@@ -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
......