박권수

merge app.js -> line.ctrl

1 -const lineCtrl = require("./line.ctrl"); 1 +// const lineCtrl = require("./line.ctrl");
2 2
3 -var Koa = require('koa'); 3 +// var Koa = require('koa');
4 -const request = require('request'); 4 +// const request = require('request');
5 -const TARGET_URL = 'https://api.line.me/v2/bot/message/reply' 5 +// const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
6 -const TOKEN = 'iaoVQEV5adLHh7MbW8bZvHKoULoKZUD6B0bXD2l0srO+yXyXKRe4HBLvWQwrkKQx2fwdsz1O/qVpVh9eucUf9GxRb8w2dSaaWCXd9FTqDLP5Yu9xovneGprYlU/0VKSAVw1iphi9BfJWfjIjwWY2pAdB04t89/1O/w1cDnyilFU='; 6 +// const TOKEN = 'iaoVQEV5adLHh7MbW8bZvHKoULoKZUD6B0bXD2l0srO+yXyXKRe4HBLvWQwrkKQx2fwdsz1O/qVpVh9eucUf9GxRb8w2dSaaWCXd9FTqDLP5Yu9xovneGprYlU/0VKSAVw1iphi9BfJWfjIjwWY2pAdB04t89/1O/w1cDnyilFU=';
7 -const fs = require('fs'); 7 +// const fs = require('fs');
8 -const path = require('path'); 8 +// const path = require('path');
9 -const HTTPS = require('https'); 9 +// const HTTPS = require('https');
10 -const domain = "www.ossjaksimsamil.ml" 10 +// const domain = "www.ossjaksimsamil.ml"
11 -const sslport = 23023; 11 +// const sslport = 23023;
12 12
13 -const bodyParser = require('body-parser'); 13 +// const bodyParser = require('body-parser');
14 -var app = new Koa(); 14 +// var app = new Koa();
15 -app.use(bodyParser.json()); 15 +// app.use(bodyParser.json());
16 -let username; //username 저장 16 +// let username; //username 저장
17 -app.post('/hook', function (req, res) { 17 +// app.post('/hook', function (req, res) {
18 18
19 - var eventObj = req.body.events[0]; 19 +// var eventObj = req.body.events[0];
20 - //var source = eventObj.source; 20 +// //var source = eventObj.source;
21 - //var message = eventObj.message; 21 +// //var message = eventObj.message;
22 22
23 - // request log 23 +// // request log
24 - console.log('======================', new Date() ,'======================'); 24 +// console.log('======================', new Date() ,'======================');
25 - console.log('[request]', req.body); 25 +// console.log('[request]', req.body);
26 - console.log('[request source] ', eventObj.source); 26 +// console.log('[request source] ', eventObj.source);
27 - console.log('[request message]', eventObj.message); 27 +// console.log('[request message]', eventObj.message);
28 - if((eventObj.message.text == '문제추천')&&(username != undefined)){ 28 +// if((eventObj.message.text == '문제추천')&&(username != undefined)){
29 - console.log("문제를 추천합니다."); 29 +// console.log("문제를 추천합니다.");
30 - recommendData = lineCtrl.lineRecommend(username); 30 +// recommendData = lineCtrl.lineRecommend(username);
31 - recommendBJ(eventObj.replyToken, recommendData); 31 +// recommendBJ(eventObj.replyToken, recommendData);
32 - } else { 32 +// } else {
33 - let isExist = lineCtrl.findID(eventObj.message.text); 33 +// let isExist = lineCtrl.findID(eventObj.message.text);
34 - if (isExist == true) 34 +// if (isExist == true)
35 - username = eventObj.message.text; 35 +// username = eventObj.message.text;
36 - else{ 36 +// else{
37 - request.post( 37 +// request.post(
38 - { 38 +// {
39 - url: TARGET_URL, 39 +// url: TARGET_URL,
40 - headers: { 40 +// headers: {
41 - 'Authorization': `Bearer ${TOKEN}` 41 +// 'Authorization': `Bearer ${TOKEN}`
42 - }, 42 +// },
43 - json: { 43 +// json: {
44 - "replyToken":replyToken, 44 +// "replyToken":replyToken,
45 - "messages":[ 45 +// "messages":[
46 - { 46 +// {
47 - "type":"text", 47 +// "type":"text",
48 - "text": "작심삼일 혹은 백준 사이트의 ID값이 올바르지 않습니다. 다시 입력해주세요." 48 +// "text": "작심삼일 혹은 백준 사이트의 ID값이 올바르지 않습니다. 다시 입력해주세요."
49 - } 49 +// }
50 - ] 50 +// ]
51 - } 51 +// }
52 - },(body) => { 52 +// },(body) => {
53 - console.log(body) 53 +// console.log(body)
54 - }); 54 +// });
55 - } 55 +// }
56 56
57 - recommendBJ(eventObj.replyToken, eventObj.message.text); 57 +// recommendBJ(eventObj.replyToken, eventObj.message.text);
58 - } 58 +// }
59 - res.sendStatus(200); 59 +// res.sendStatus(200);
60 -}, 60 +// },
61 61
62 -function recommendBJ(replyToken, message) { 62 +// function recommendBJ(replyToken, message) {
63 - var recommendProblem = "오늘의 추천문제는 " + message.problem_title + "입니다."; 63 +// var recommendProblem = "오늘의 추천문제는 " + message.problem_title + "입니다.";
64 - var problemURL = "https://www.boj.kr/" + recommendData.problem_number; 64 +// var problemURL = "https://www.boj.kr/" + recommendData.problem_number;
65 - request.post( 65 +// request.post(
66 - { 66 +// {
67 - url: TARGET_URL, 67 +// url: TARGET_URL,
68 - headers: { 68 +// headers: {
69 - 'Authorization': `Bearer ${TOKEN}` 69 +// 'Authorization': `Bearer ${TOKEN}`
70 - }, 70 +// },
71 - json: { 71 +// json: {
72 - "replyToken":replyToken, 72 +// "replyToken":replyToken,
73 - "messages":[ 73 +// "messages":[
74 - { 74 +// {
75 - "type":"text", 75 +// "type":"text",
76 - "text": recommendProblem 76 +// "text": recommendProblem
77 - }, 77 +// },
78 - { 78 +// {
79 - "type":"text", 79 +// "type":"text",
80 - "text": problemURL 80 +// "text": problemURL
81 - } 81 +// }
82 - ] 82 +// ]
83 - } 83 +// }
84 - },(body) => { 84 +// },(body) => {
85 - console.log(body) 85 +// console.log(body)
86 - }); 86 +// });
87 87
88 88
89 - res.sendStatus(200); 89 +// res.sendStatus(200);
90 -}); 90 +// });
91 91
92 -try { 92 +// try {
93 - const option = { 93 +// const option = {
94 - ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'), 94 +// ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'),
95 - key: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/privkey.pem'), 'utf8').toString(), 95 +// key: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/privkey.pem'), 'utf8').toString(),
96 - cert: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/cert.pem'), 'utf8').toString(), 96 +// cert: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/cert.pem'), 'utf8').toString(),
97 - }; 97 +// };
98 98
99 - HTTPS.createServer(option, app).listen(sslport, () => {
100 - console.log(`[HTTPS] Server is started on port ${sslport}`);
101 - });
102 - } catch (error) {
103 - console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.');
104 - console.log(error);
105 - }
...\ No newline at end of file ...\ No newline at end of file
99 +// HTTPS.createServer(option, app).listen(sslport, () => {
100 +// console.log(`[HTTPS] Server is started on port ${sslport}`);
101 +// });
102 +// } catch (error) {
103 +// console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.');
104 +// console.log(error);
105 +// }
...\ No newline at end of file ...\ No newline at end of file
......
1 -var Koa = require('koa');
2 const request = require('request'); 1 const request = require('request');
3 const TARGET_URL = 'https://api.line.me/v2/bot/message/reply' 2 const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
4 const TOKEN = 'iaoVQEV5adLHh7MbW8bZvHKoULoKZUD6B0bXD2l0srO+yXyXKRe4HBLvWQwrkKQx2fwdsz1O/qVpVh9eucUf9GxRb8w2dSaaWCXd9FTqDLP5Yu9xovneGprYlU/0VKSAVw1iphi9BfJWfjIjwWY2pAdB04t89/1O/w1cDnyilFU='; 3 const TOKEN = 'iaoVQEV5adLHh7MbW8bZvHKoULoKZUD6B0bXD2l0srO+yXyXKRe4HBLvWQwrkKQx2fwdsz1O/qVpVh9eucUf9GxRb8w2dSaaWCXd9FTqDLP5Yu9xovneGprYlU/0VKSAVw1iphi9BfJWfjIjwWY2pAdB04t89/1O/w1cDnyilFU=';
...@@ -8,12 +7,12 @@ const HTTPS = require('https'); ...@@ -8,12 +7,12 @@ const HTTPS = require('https');
8 const domain = "www.ossjaksimsamil.ml" 7 const domain = "www.ossjaksimsamil.ml"
9 const sslport = 23023; 8 const sslport = 23023;
10 9
11 -const bodyParser = require('body-parser');
12 -
13 const Profile = require("../../models/profile"); 10 const Profile = require("../../models/profile");
14 const problem_set = require("../../data/problem_set"); 11 const problem_set = require("../../data/problem_set");
15 const compareBJ = require("../../util/compareBJ"); 12 const compareBJ = require("../../util/compareBJ");
13 +const user = require('../user');
16 14
15 +let username = "";
17 16
18 exports.linestart = function(req,res) { 17 exports.linestart = function(req,res) {
19 var eventObj = req.body.events[0]; 18 var eventObj = req.body.events[0];
...@@ -25,37 +24,71 @@ exports.linestart = function(req,res) { ...@@ -25,37 +24,71 @@ exports.linestart = function(req,res) {
25 console.log('[request]', req.body); 24 console.log('[request]', req.body);
26 console.log('[request source] ', eventObj.source); 25 console.log('[request source] ', eventObj.source);
27 console.log('[request message]', eventObj.message); 26 console.log('[request message]', eventObj.message);
28 - if((eventObj.message.text == '문제추천')&&(username != undefined)){
29 - console.log("문제를 추천합니다.");
30 - recommendData = lineCtrl.lineRecommend(username);
31 - recommendBJ(eventObj.replyToken, recommendData);
32 - } else {
33 - let isExist = lineCtrl.findID(eventObj.message.text);
34 - if (isExist == true)
35 - username = eventObj.message.text;
36 - else{
37 - request.post(
38 - {
39 - url: TARGET_URL,
40 - headers: {
41 - 'Authorization': `Bearer ${TOKEN}`
42 - },
43 - json: {
44 - "replyToken":replyToken,
45 - "messages":[
46 - {
47 - "type":"text",
48 - "text": "작심삼일 혹은 백준 사이트의 ID값이 올바르지 않습니다. 다시 입력해주세요."
49 - }
50 - ]
51 - }
52 - },(body) => {
53 - console.log(body)
54 - });
55 - }
56 27
57 - recommendBJ(eventObj.replyToken, eventObj.message.text); 28 + if(username == "") {
29 + username = eventObj.message.text;
30 + }
31 +
32 + if (!isExist(username)) {
33 + username = "";
34 +
35 + request.post(
36 + {
37 + url: TARGET_URL,
38 + headers: {
39 + 'Authorization': `Bearer ${TOKEN}`
40 + },
41 + json: {
42 + "replyToken":replyToken,
43 + "messages":[
44 + {
45 + "type":"text",
46 + "text": "작심삼일 혹은 백준 사이트의 ID값이 올바르지 않습니다. 다시 입력해주세요."
47 + }
48 + ]
49 + }
50 + },(body) => {
51 + console.log(body)
52 + });
53 + }
54 +
55 + if(eventObj.message.text == "문제") {
56 + console.log("문제를 추천합니다.");
57 + recommendData = lineRecommend(username);
58 + recommendBJ(eventObj.replyToken, recommendData);
58 } 59 }
60 +
61 + // if((eventObj.message.text == '문제추천')&&(username != undefined)){
62 + // console.log("문제를 추천합니다.");
63 + // recommendData = lineRecommend(username);
64 + // recommendBJ(eventObj.replyToken, recommendData);
65 + // } else {
66 + // let isExist = lineCtrl.findID(eventObj.message.text);
67 + // if (isExist == true)
68 + // username = eventObj.message.text;
69 + // else{
70 + // request.post(
71 + // {
72 + // url: TARGET_URL,
73 + // headers: {
74 + // 'Authorization': `Bearer ${TOKEN}`
75 + // },
76 + // json: {
77 + // "replyToken":replyToken,
78 + // "messages":[
79 + // {
80 + // "type":"text",
81 + // "text": "작심삼일 혹은 백준 사이트의 ID값이 올바르지 않습니다. 다시 입력해주세요."
82 + // }
83 + // ]
84 + // }
85 + // },(body) => {
86 + // console.log(body)
87 + // });
88 + // }
89 +
90 + // recommendBJ(eventObj.replyToken, eventObj.message.text);
91 + // }
59 res.sendStatus(200); 92 res.sendStatus(200);
60 } 93 }
61 94
......