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
redbean096@khu.ac.kr
2020-12-09 03:18:32 +0000
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
4d359a621e26e5d133dbaeefa9b08314ffce0c21
4d359a62
1 parent
2a42b655
edit syntax
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
114 additions
and
9 deletions
jaksimsamil-page/.eslintcache
jaksimsamil-server/src/api/index.js
jaksimsamil-server/src/api/line/app.js
jaksimsamil-server/src/api/line/line.ctrl.js
jaksimsamil-page/.eslintcache
View file @
4d359a6
This diff is collapsed. Click to expand it.
jaksimsamil-server/src/api/index.js
View file @
4d359a6
...
...
@@ -6,11 +6,13 @@ const friend = require("./friend");
const
notify
=
require
(
"./notify"
);
const
user
=
require
(
"./user"
);
const
profile
=
require
(
"./profile"
);
const
line
=
require
(
"./line"
)
api
.
use
(
"/auth"
,
auth
.
routes
());
api
.
use
(
"/friend"
,
friend
.
routes
());
api
.
use
(
"/notify"
,
notify
.
routes
());
api
.
use
(
"/user"
,
user
.
routes
());
api
.
use
(
"/profile"
,
profile
.
routes
());
api
.
use
(
"/line"
,
line
.
routes
());
module
.
exports
=
api
;
module
.
exports
=
api
;
\ No newline at end of file
...
...
jaksimsamil-server/src/api/line/app.js
View file @
4d359a6
...
...
@@ -3,11 +3,11 @@ 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
=
'
tdN03DyXDAcKGZsuiPndaU7UC2GzuEQYUhPCkDnGWXGGdiPmV15QYbFU1U5JP5EpiETIKLqOmci/RxFZTfD7FRMED0OpT+3qgEYBNf8T9/jRzHRm7rblBLtzFBVOeXeYRcluOsz4koE4JaAJaUtMtwdB04t89/1O/w1cDnyilFU='
const
TOKEN
=
'
iaoVQEV5adLHh7MbW8bZvHKoULoKZUD6B0bXD2l0srO+yXyXKRe4HBLvWQwrkKQx2fwdsz1O/qVpVh9eucUf9GxRb8w2dSaaWCXd9FTqDLP5Yu9xovneGprYlU/0VKSAVw1iphi9BfJWfjIjwWY2pAdB04t89/1O/w1cDnyilFU='
;
const
fs
=
require
(
'fs'
);
const
path
=
require
(
'path'
);
const
HTTPS
=
require
(
'https'
);
const
domain
=
"www.oss
test17
.ml"
const
domain
=
"www.oss
jaksimsamil
.ml"
const
sslport
=
23023
;
const
bodyParser
=
require
(
'body-parser'
);
...
...
jaksimsamil-server/src/api/line/line.ctrl.js
View file @
4d359a6
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'
);
const
Profile
=
require
(
"../../models/profile"
);
const
problem_set
=
require
(
"../../data/problem_set"
);
const
compareBJ
=
require
(
"../../util/compareBJ"
);
exports
.
linestart
=
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
);
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
);
}
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
);
}
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
);
}
/*
POST api/notify/slack/recommend
{
username: "username"
}
*/
exports
.
lineRecommend
=
(
username
)
=>
{
function
lineRecommend
(
username
)
{
const
profile
=
await
Profile
.
findByUsername
(
username
);
if
(
!
profile
)
{
...
...
@@ -24,13 +127,13 @@ exports.lineRecommend = (username) => {
if
(
!
recommendData
)
{
console
.
log
(
"402"
);
return
;
}
else
{
return
recommendData
;
}
}
return
recommendData
;
};
exports
.
isExist
=
(
id
)
=>
{
function
isExist
(
username
)
{
const
profile
=
await
Profile
.
findByUsername
(
username
);
if
(
!
profile
)
{
return
false
;
...
...
Please
register
or
login
to post a comment