Toggle navigation
Toggle navigation
This project
Loading...
Sign in
2020-2_open_source_sw_development_Han
/
Jaksimsamil
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
박권수
2020-12-09 12:42:28 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
d0a68894b8e69123ac2da3ea9fd1256b46640cbc
d0a68894
1 parent
f9532318
merge app.js -> line.ctrl
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
160 additions
and
127 deletions
jaksimsamil-server/src/api/line/app.js
jaksimsamil-server/src/api/line/line.ctrl.js
jaksimsamil-server/src/api/line/app.js
View file @
d0a6889
const
lineCtrl
=
require
(
"./line.ctrl"
);
//
const lineCtrl = require("./line.ctrl");
var
Koa
=
require
(
'koa'
);
const
request
=
require
(
'request'
);
const
TARGET_URL
=
'https://api.line.me/v2/bot/message/reply'
const
TOKEN
=
'iaoVQEV5adLHh7MbW8bZvHKoULoKZUD6B0bXD2l0srO+yXyXKRe4HBLvWQwrkKQx2fwdsz1O/qVpVh9eucUf9GxRb8w2dSaaWCXd9FTqDLP5Yu9xovneGprYlU/0VKSAVw1iphi9BfJWfjIjwWY2pAdB04t89/1O/w1cDnyilFU='
;
const
fs
=
require
(
'fs'
);
const
path
=
require
(
'path'
);
const
HTTPS
=
require
(
'https'
);
const
domain
=
"www.ossjaksimsamil.ml"
const
sslport
=
23023
;
//
var Koa = require('koa');
//
const request = require('request');
//
const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
//
const TOKEN = 'iaoVQEV5adLHh7MbW8bZvHKoULoKZUD6B0bXD2l0srO+yXyXKRe4HBLvWQwrkKQx2fwdsz1O/qVpVh9eucUf9GxRb8w2dSaaWCXd9FTqDLP5Yu9xovneGprYlU/0VKSAVw1iphi9BfJWfjIjwWY2pAdB04t89/1O/w1cDnyilFU=';
//
const fs = require('fs');
//
const path = require('path');
//
const HTTPS = require('https');
//
const domain = "www.ossjaksimsamil.ml"
//
const sslport = 23023;
const
bodyParser
=
require
(
'body-parser'
);
var
app
=
new
Koa
();
app
.
use
(
bodyParser
.
json
());
let
username
;
//username 저장
app
.
post
(
'/hook'
,
function
(
req
,
res
)
{
//
const bodyParser = require('body-parser');
//
var app = new Koa();
//
app.use(bodyParser.json());
//
let username; //username 저장
//
app.post('/hook', function (req, res) {
var
eventObj
=
req
.
body
.
events
[
0
];
//var source = eventObj.source;
//var message = eventObj.message;
//
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
);
if
((
eventObj
.
message
.
text
==
'문제추천'
)
&&
(
username
!=
undefined
)){
console
.
log
(
"문제를 추천합니다."
);
recommendData
=
lineCtrl
.
lineRecommend
(
username
);
recommendBJ
(
eventObj
.
replyToken
,
recommendData
);
}
else
{
let
isExist
=
lineCtrl
.
findID
(
eventObj
.
message
.
text
);
if
(
isExist
==
true
)
username
=
eventObj
.
message
.
text
;
else
{
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:[
{
"type"
:
"text"
,
"text"
:
"작심삼일 혹은 백준 사이트의 ID값이 올바르지 않습니다. 다시 입력해주세요."
}
]
}
},(
body
)
=>
{
console
.
log
(
body
)
});
}
//
// request log
//
console.log('======================', new Date() ,'======================');
//
console.log('[request]', req.body);
//
console.log('[request source] ', eventObj.source);
//
console.log('[request message]', eventObj.message);
//
if((eventObj.message.text == '문제추천')&&(username != undefined)){
//
console.log("문제를 추천합니다.");
//
recommendData = lineCtrl.lineRecommend(username);
//
recommendBJ(eventObj.replyToken, recommendData);
//
} else {
//
let isExist = lineCtrl.findID(eventObj.message.text);
//
if (isExist == true)
//
username = eventObj.message.text;
//
else{
//
request.post(
//
{
//
url: TARGET_URL,
//
headers: {
//
'Authorization': `Bearer ${TOKEN}`
//
},
//
json: {
//
"replyToken":replyToken,
//
"messages":[
//
{
//
"type":"text",
//
"text": "작심삼일 혹은 백준 사이트의 ID값이 올바르지 않습니다. 다시 입력해주세요."
//
}
//
]
//
}
//
},(body) => {
//
console.log(body)
//
});
//
}
recommendBJ
(
eventObj
.
replyToken
,
eventObj
.
message
.
text
);
}
res
.
sendStatus
(
200
);
},
//
recommendBJ(eventObj.replyToken, eventObj.message.text);
//
}
//
res.sendStatus(200);
//
},
function
recommendBJ
(
replyToken
,
message
)
{
var
recommendProblem
=
"오늘의 추천문제는 "
+
message
.
problem_title
+
"입니다."
;
var
problemURL
=
"https://www.boj.kr/"
+
recommendData
.
problem_number
;
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:[
{
"type"
:
"text"
,
"text"
:
recommendProblem
},
{
"type"
:
"text"
,
"text"
:
problemURL
}
]
}
},(
body
)
=>
{
console
.
log
(
body
)
});
//
function recommendBJ(replyToken, message) {
//
var recommendProblem = "오늘의 추천문제는 " + message.problem_title + "입니다.";
//
var problemURL = "https://www.boj.kr/" + recommendData.problem_number;
//
request.post(
//
{
//
url: TARGET_URL,
//
headers: {
//
'Authorization': `Bearer ${TOKEN}`
//
},
//
json: {
//
"replyToken":replyToken,
//
"messages":[
//
{
//
"type":"text",
//
"text": recommendProblem
//
},
//
{
//
"type":"text",
//
"text": problemURL
//
}
//
]
//
}
//
},(body) => {
//
console.log(body)
//
});
res
.
sendStatus
(
200
);
});
//
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
(),
};
//
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
);
}
\ No newline at end of file
// 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);
// }
\ No newline at end of file
...
...
jaksimsamil-server/src/api/line/line.ctrl.js
View file @
d0a6889
var
Koa
=
require
(
'koa'
);
const
request
=
require
(
'request'
);
const
TARGET_URL
=
'https://api.line.me/v2/bot/message/reply'
const
TOKEN
=
'iaoVQEV5adLHh7MbW8bZvHKoULoKZUD6B0bXD2l0srO+yXyXKRe4HBLvWQwrkKQx2fwdsz1O/qVpVh9eucUf9GxRb8w2dSaaWCXd9FTqDLP5Yu9xovneGprYlU/0VKSAVw1iphi9BfJWfjIjwWY2pAdB04t89/1O/w1cDnyilFU='
;
...
...
@@ -8,12 +7,12 @@ const HTTPS = require('https');
const
domain
=
"www.ossjaksimsamil.ml"
const
sslport
=
23023
;
const
bodyParser
=
require
(
'body-parser'
);
const
Profile
=
require
(
"../../models/profile"
);
const
problem_set
=
require
(
"../../data/problem_set"
);
const
compareBJ
=
require
(
"../../util/compareBJ"
);
const
user
=
require
(
'../user'
);
let
username
=
""
;
exports
.
linestart
=
function
(
req
,
res
)
{
var
eventObj
=
req
.
body
.
events
[
0
];
...
...
@@ -25,37 +24,71 @@ exports.linestart = function(req,res) {
console
.
log
(
'[request]'
,
req
.
body
);
console
.
log
(
'[request source] '
,
eventObj
.
source
);
console
.
log
(
'[request message]'
,
eventObj
.
message
);
if
((
eventObj
.
message
.
text
==
'문제추천'
)
&&
(
username
!=
undefined
)){
console
.
log
(
"문제를 추천합니다."
);
recommendData
=
lineCtrl
.
lineRecommend
(
username
);
recommendBJ
(
eventObj
.
replyToken
,
recommendData
);
}
else
{
let
isExist
=
lineCtrl
.
findID
(
eventObj
.
message
.
text
);
if
(
isExist
==
true
)
username
=
eventObj
.
message
.
text
;
else
{
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:[
{
"type"
:
"text"
,
"text"
:
"작심삼일 혹은 백준 사이트의 ID값이 올바르지 않습니다. 다시 입력해주세요."
}
]
}
},(
body
)
=>
{
console
.
log
(
body
)
});
}
recommendBJ
(
eventObj
.
replyToken
,
eventObj
.
message
.
text
);
if
(
username
==
""
)
{
username
=
eventObj
.
message
.
text
;
}
if
(
!
isExist
(
username
))
{
username
=
""
;
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:[
{
"type"
:
"text"
,
"text"
:
"작심삼일 혹은 백준 사이트의 ID값이 올바르지 않습니다. 다시 입력해주세요."
}
]
}
},(
body
)
=>
{
console
.
log
(
body
)
});
}
if
(
eventObj
.
message
.
text
==
"문제"
)
{
console
.
log
(
"문제를 추천합니다."
);
recommendData
=
lineRecommend
(
username
);
recommendBJ
(
eventObj
.
replyToken
,
recommendData
);
}
// if((eventObj.message.text == '문제추천')&&(username != undefined)){
// console.log("문제를 추천합니다.");
// recommendData = lineRecommend(username);
// recommendBJ(eventObj.replyToken, recommendData);
// } else {
// let isExist = lineCtrl.findID(eventObj.message.text);
// if (isExist == true)
// username = eventObj.message.text;
// else{
// request.post(
// {
// url: TARGET_URL,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "replyToken":replyToken,
// "messages":[
// {
// "type":"text",
// "text": "작심삼일 혹은 백준 사이트의 ID값이 올바르지 않습니다. 다시 입력해주세요."
// }
// ]
// }
// },(body) => {
// console.log(body)
// });
// }
// recommendBJ(eventObj.replyToken, eventObj.message.text);
// }
res
.
sendStatus
(
200
);
}
...
...
Please
register
or
login
to post a comment