신지원

재생목록 중 1곡 뽑아내기

......@@ -11,7 +11,7 @@
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}/playlistbyid.js"
"program": "${workspaceFolder}/video_list_sad.js"
}
]
}
\ No newline at end of file
......
......@@ -14,9 +14,11 @@ const bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
// var { google } = require('googleapis');
/// ----
var { google } = require('googleapis');
/// ----
var sad = require('./video_sad');
app.post('/hook', function (req, res) {
......@@ -35,7 +37,6 @@ app.post('/hook', function (req, res) {
res.sendStatus(200);
});
function trans(replyToken, message) {
request.post(
......@@ -48,12 +49,11 @@ function trans(replyToken, message) {
'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
},
body: 'source=ko&target=en&text=' + message,
json:true
json: true
},
(error, response, body) => {
if(!error && response.statusCode == 200)
{
if (!error && response.statusCode == 200) {
// message 가 사용자에게서 입력받은 메시지 내용입니다. sendMessage 는 보낼 메시지 내용입니다.
// 위에 PAPAGO API부분은 추후 API를 연동시킬 때 맞춰서 작성하기 쉽도록 템플릿을 남겨놓았습니다. 자세한 정보는 교수님 학습 자료의 experiment의 trans 폴더를 참고하세요.
// (현재 코드에선 PAPAGO API의 작동 결과는 반영되지 않습니다.)
......@@ -61,79 +61,17 @@ function trans(replyToken, message) {
// var sendMessage;
// --------
if (message=="노래 추천해줘")
{
var sendMessage = "아이유의 노래를 추천드립니다.";
console.log(typeof(sendMessage));
console.log(sendMessage);
if (message == "슬픈노래") {
sad.check(message,replyToken);
}
else
{
// var sendMessage = "무슨 말인지 못알아먹겠습니다";
// --------
var service = google.youtube('v3');
service.videos.list({
key: 'AIzaSyBInggOtXxPFYIRee0Xs3vb5iZ9YE9_518',
part: 'snippet,statistics',
id: 'p5iu1V30myk', // 동영상 Id
fields: 'items(snippet(title))'
}, function(err, response) {
if (err) {
console.log('The API returned an error: ',err);
return;
else {
sad.check(message, replyToken);
}
var video = response.data.items;
if(video.length ==0){
console.log('검색된 동영상이 없습니다.');
} else {
// var sendMessage ="123";
// console.log(JSON.stringify(response.data.items[0].snippet.title));// 콘솔에 출력
// console.log(JSON.stringify(response.data.items[0].snippet));// 콘솔에 출력
// console.log(JSON.stringify(response.data.items[0]));// 콘솔에 출력
// console.log(JSON.stringify(response.data));// 콘솔에 출력
var sendMessage = JSON.stringify(response.data.items[0].snippet.title);
// sendMessage = response.data.items[0].snippet.title;
console.log(sendMessage);
console.log(typeof (sendMessage));
}
})
// // --------
}
//↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
console.log("11111");
console.log(body.message);
console.log("11111");
// console.log(typeof(response.data.items[0].snippet.title));
request.post(
{
url: TARGET_URL,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"replyToken":replyToken,
"messages":[
{
"type":"text",
"text":sendMessage
}
]
}
},(error, response, body) => {
console.log(body)
});
}
});
}
try {
const option = {
ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'),
......
var express = require('express');
const request = require('request');
const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
const TOKEN = 'Kb1/rQYz4MUhF8XyKQv7z9x0MxVQ5bX/XO8S/yt/1qQEJVAbsEFAaMvXKEOx9Umr7KhivfyDPfZHRRLFPngR0O4ZGWV2VFses8ufPE7uAdvYr4G6keBNAU69nBz5IC71HfbIrUHxXYqD7GfhVwXzpwdB04t89/1O/w1cDnyilFU='
const PAPAGO_URL = 'https://openapi.naver.com/v1/papago/n2mt'
const PAPAGO_ID = 'kwoxKGTi6azBaW9aSVxe'
const PAPAGO_SECRET = 'svB_MM61oD'
const fs = require('fs');
const path = require('path');
const HTTPS = require('https');
const domain = "2020105631.oss2021.tk"
const sslport = 23023;
const bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
var { google } = require('googleapis');
/// ----
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);
trans(eventObj.replyToken, eventObj.message.text);
res.sendStatus(200);
});
function trans(replyToken, message) {
request.post(
{
url: PAPAGO_URL,
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Naver-Client-Id': `${PAPAGO_ID}`,
'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
},
body: 'source=ko&target=en&text=' + message,
json: true
},
(error, response, body) => {
if (!error && response.statusCode == 200) {
// message 가 사용자에게서 입력받은 메시지 내용입니다. sendMessage 는 보낼 메시지 내용입니다.
// 위에 PAPAGO API부분은 추후 API를 연동시킬 때 맞춰서 작성하기 쉽도록 템플릿을 남겨놓았습니다. 자세한 정보는 교수님 학습 자료의 experiment의 trans 폴더를 참고하세요.
// (현재 코드에선 PAPAGO API의 작동 결과는 반영되지 않습니다.)
//↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
// var sendMessage;
// --------
if (message == "노래 추천해줘") {
sendMessage = "아이유의 노래를 추천드립니다.";
console.log(typeof (sendMessage));
console.log(sendMessage);
request.post(
{
url: TARGET_URL,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"replyToken": replyToken,
"messages": [
{
"type": "text",
"text": sendMessage
}
]
}
}, (error, response, body) => {
console.log(body)
});
}
else {
// var sendMessage = "무슨 말인지 못알아먹겠습니다";
// --------
var service = google.youtube('v3');
service.videos.list({
key: 'AIzaSyBInggOtXxPFYIRee0Xs3vb5iZ9YE9_518',
part: 'snippet,statistics',
id: 'p5iu1V30myk', // 동영상 Id
fields: 'items(snippet(title))'
}, function (err, response) {
if (err) {
console.log('The API returned an error: ', err);
return;
}
var video = response.data.items;
if (video.length == 0) {
console.log('검색된 동영상이 없습니다.');
} else {
// var sendMessage ="123";
// console.log(JSON.stringify(response.data.items[0].snippet.title));// 콘솔에 출력
// console.log(JSON.stringify(response.data.items[0].snippet));// 콘솔에 출력
// console.log(JSON.stringify(response.data.items[0]));// 콘솔에 출력
// console.log(JSON.stringify(response.data));// 콘솔에 출력
var sendMessage = JSON.stringify(response.data.items[0].snippet.title);
// sendMessage = response.data.items[0].snippet.title;
console.log(sendMessage);
console.log(typeof (sendMessage));
}
request.post(
{
url: TARGET_URL,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"replyToken": replyToken,
"messages": [
{
"type": "text",
"text": sendMessage
}
]
}
}, (error, response, body) => {
console.log(body)
});
})
// // --------
}
}
});
}
// function trans(replyToken, message) {
// request.post(
// {
// url: PAPAGO_URL,
// headers: {
// 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
// 'X-Naver-Client-Id': `${PAPAGO_ID}`,
// 'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
// },
// body: 'source=ko&target=en&text=' + message,
// json:true
// },
// (error, response, body) => {
// if(!error && response.statusCode == 200)
// {
// // message 가 사용자에게서 입력받은 메시지 내용입니다. sendMessage 는 보낼 메시지 내용입니다.
// // 위에 PAPAGO API부분은 추후 API를 연동시킬 때 맞춰서 작성하기 쉽도록 템플릿을 남겨놓았습니다. 자세한 정보는 교수님 학습 자료의 experiment의 trans 폴더를 참고하세요.
// // (현재 코드에선 PAPAGO API의 작동 결과는 반영되지 않습니다.)
// //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
// var sendMessage;
// // --------
// if (message=="노래 추천해줘")
// {
// sendMessage = "아이유의 노래를 추천드립니다.";
// console.log(typeof(sendMessage));
// console.log(sendMessage);
// console.log("11111");
// console.log(body.message);
// console.log("11111");
// // console.log(typeof(response.data.items[0].snippet.title));
// request.post(
// {
// url: TARGET_URL,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "replyToken": replyToken,
// "messages": [
// {
// "type": "text",
// "text": sendMessage
// }
// ]
// }
// }, (error, response, body) => {
// console.log(body)
// });
// }
// else
// {
// // var sendMessage = "무슨 말인지 못알아먹겠습니다";
// // --------
// var service = google.youtube('v3');
// service.videos.list({
// key: 'AIzaSyBInggOtXxPFYIRee0Xs3vb5iZ9YE9_518',
// part: 'snippet,statistics',
// id: 'p5iu1V30myk', // 동영상 Id
// fields: 'items(snippet(title))'
// }, function (err, response) {
// if (err) {
// console.log('The API returned an error: ', err);
// return;
// }
// var video = response.data.items;
// if (video.length == 0) {
// console.log('검색된 동영상이 없습니다.');
// } else {
// // var sendMessage ="123";
// // console.log(JSON.stringify(response.data.items[0].snippet.title));// 콘솔에 출력
// // console.log(JSON.stringify(response.data.items[0].snippet));// 콘솔에 출력
// // console.log(JSON.stringify(response.data.items[0]));// 콘솔에 출력
// // console.log(JSON.stringify(response.data));// 콘솔에 출력
// sendMessage = JSON.stringify(response.data.items[0].snippet.title);
// // sendMessage = response.data.items[0].snippet.title;
// console.log(sendMessage);
// console.log(typeof (sendMessage));
// }
// //console.log(sendMessage);
// })
// //console.log(sendMessage);
// // // --------
// /// ----
// console.log("11111");
// console.log(body.message);
// console.log("11111");
// // console.log(typeof(response.data.items[0].snippet.title));
// request.post(
// {
// url: TARGET_URL,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "replyToken": replyToken,
// "messages": [
// {
// "type": "text",
// "text": sendMessage
// }
// ]
// }
// }, (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);
}
exports.check = function(message,replyToken){
const rand_0to9 = Math.floor(Math.random() * 10); // 0~9까지 난수생성
var ids = ['p5iu1V30myk', 'i-SBnhaZSSU', 'Etfgb6A7hSI', 'IN2mml9xs_s', // 모든 동영상 id를 관리하는 배열
'tp1uoFAfgHE', 'Qx22TnVVIfU', '3y1QIqR115A', 'VXBI1wt8XII', 'aWMBn2--E0Q', 'HyTbgBlnLCo'];
const request = require('request');
const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
const TOKEN = 'Kb1/rQYz4MUhF8XyKQv7z9x0MxVQ5bX/XO8S/yt/1qQEJVAbsEFAaMvXKEOx9Umr7KhivfyDPfZHRRLFPngR0O4ZGWV2VFses8ufPE7uAdvYr4G6keBNAU69nBz5IC71HfbIrUHxXYqD7GfhVwXzpwdB04t89/1O/w1cDnyilFU='
var { google } = require('googleapis');
var service = google.youtube('v3');
service.videos.list({
key: 'AIzaSyBInggOtXxPFYIRee0Xs3vb5iZ9YE9_518',
part: 'snippet',
id: ids[rand_0to9], // 동영상 Id random input
fields: 'items(snippet(title))'
}, function (err, response) {
if (err) {
console.log('The API returned an error: ', err);
return;
}
var video = response.data.items;
if (video.length == 0) {
console.log('검색된 동영상이 없습니다.');
} else {
sendMessage = JSON.stringify(response.data.items[0].snippet.title);
console.log(sendMessage);
request.post(
{
url: TARGET_URL,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"replyToken": replyToken,
"messages": [
{
"type": "text",
"text": sendMessage
}
]
}
}, (error, response, body) => {
console.log(body)
});
}
})
}