Toggle navigation
Toggle navigation
This project
Loading...
Sign in
최재은
/
밀당강의봇
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
김예미
2019-06-02 16:44:39 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
c565f30fd0e67784a1c05af273f284898f7d9003
c565f30f
1 parent
6477c7a5
Enable webhook, Add Init code
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
221 additions
and
566 deletions
.gitignore
app.js
controller.js
package-lock.json
package.json
template.js
.gitignore
View file @
c565f30
node_modules
.idea/
config/
\ No newline at end of file
...
...
app.js
View file @
c565f30
'use strict'
;
let
express
=
require
(
"express"
),
bodyParser
=
require
(
"body-parser"
),
app
=
express
(),
config
=
require
(
'config'
),
controller
=
require
(
'./controller'
);
var
express
=
require
(
"express"
);
var
request
=
require
(
"request"
);
var
bodyParser
=
require
(
"body-parser"
);
var
controller
=
require
(
'./controller'
);
app
.
use
(
bodyParser
.
urlencoded
({
extended
:
false
}));
var
app
=
express
();
app
.
use
(
bodyParser
.
urlencoded
({
extended
:
false
}));
app
.
use
(
bodyParser
.
json
());
app
.
listen
((
process
.
env
.
PORT
||
5000
));
let
users
=
{};
app
.
listen
(
process
.
env
.
PORT
||
8989
,
()
=>
console
.
log
(
'Example app listening on por 8989!'
));
app
.
get
(
'/'
,
(
req
,
res
)
=>
res
.
send
(
'Hello World!'
));
// Adds support for GET requests to our webhook
app
.
get
(
'/webhook'
,
(
req
,
res
)
=>
{
// Your verify token, Should be a random string.
let
VERIFY_TOKEN
=
config
.
get
(
'facebook.page.verify_token'
);
// Parse the query params
let
mode
=
req
.
query
[
'hub.mode'
];
let
token
=
req
.
query
[
'hub.verify_token'
];
let
challenge
=
req
.
query
[
'hub.challenge'
];
// Checks if a token and mode is in the query string of the request
if
(
mode
&&
token
)
{
// Checks the mode and token sent is correcct
if
(
mode
===
'subscribe'
&&
token
===
VERIFY_TOKEN
)
{
// Responds with the challenge token from the request
console
.
log
(
'WEBHOOK_VERIFIED'
);
res
.
status
(
200
).
send
(
challenge
);
// Server index page
app
.
get
(
"/"
,
function
(
req
,
res
)
{
res
.
send
(
"Deployed!"
);
});
}
else
{
// Responds with '403 Forbidden' if verify tokens do not match
res
.
sendStatus
(
403
);
}
// Facebook Webhook
// Used for verification
app
.
get
(
"/webhook"
,
function
(
req
,
res
)
{
if
(
req
.
query
[
"hub.verify_token"
]
===
process
.
env
.
VERIFICATION_TOKEN
)
{
console
.
log
(
"Verified webhook"
);
res
.
status
(
200
).
send
(
req
.
query
[
"hub.challenge"
]);
}
else
{
console
.
error
(
"Verification failed. The tokens do not match."
);
res
.
sendStatus
(
403
);
}
});
// Creates the endpoint for our webhook
app
.
post
(
'/webhook'
,
(
req
,
res
)
=>
{
...
...
@@ -62,6 +44,7 @@ app.post('/webhook', (req, res) => {
// Get the sender PSID
let
sender_psid
=
webhook_event
.
sender
.
id
;
console
.
log
(
'Sender PSID: '
+
sender_psid
);
// Check if the event is a message or postback and
// pass the event to the appropriate handler function
...
...
@@ -71,6 +54,7 @@ app.post('/webhook', (req, res) => {
controller
.
handlePostback
(
sender_psid
,
webhook_event
.
postback
);
}
});
// Returns a '200 OK' response to all requests
res
.
status
(
200
).
send
(
'EVENT_RECEIVED'
);
}
else
{
...
...
@@ -79,4 +63,3 @@ app.post('/webhook', (req, res) => {
}
});
...
...
controller.js
View file @
c565f30
let
request
=
require
(
'request'
),
template
=
require
(
'./template'
),
config
=
require
(
'config'
);
template
=
require
(
'./template'
);
// Views - handle Message, handle Postback
...
...
@@ -9,17 +8,13 @@ exports.handleMessage = (sender_psid, received_message) => {
let
response
;
if
(
received_message
.
text
){
// Create the payload for a basic text message
response
=
template
.
askTemplate
()
response
=
template
.
messageTemplate
();
}
// Sends the reponse message
callSendAPI
(
sender_psid
,
response
);
}
// Handle postback(=button) events
exports
.
handlePostback
=
(
sender_psid
,
received_postback
)
=>
{
let
response
;
...
...
@@ -27,45 +22,39 @@ exports.handlePostback = (sender_psid, received_postback) => {
let
payload
=
received_postback
.
payload
;
// Set the response based on the postback payload
if
(
payload
===
'CAT_PICS'
)
{
response
=
template
.
imageTemplate
(
'cats'
,
sender_psid
);
callSendAPI
(
sender_psid
,
response
,
function
(){
callSendAPI
(
sender_psid
,
template
.
askTemplate
(
'Show me more'
));
});
}
else
if
(
payload
===
'DOG_PICS'
)
{
response
=
template
.
imageTemplate
(
'dogs'
,
sender_psid
);
callSendAPI
(
sender_psid
,
response
,
function
(){
callSendAPI
(
sender_psid
,
template
.
askTemplate
(
'Show me more'
));
});
}
else
if
(
payload
===
'GET_STARTED'
){
response
=
template
.
greetingTemplate
();
callSendAPI
(
sender_psid
,
response
);
if
(
payload
===
'Greeting'
){
response
=
template
.
greetingTemplate
();
callSendAPI
(
sender_psid
,
response
);
}
else
if
(
payload
===
'CHOICE_BY_PROF'
){
response
=
template
.
choicebyprofTemplate
();
callSendAPI
(
sender_psid
,
response
);
}
else
if
(
payload
===
'CHOICE_BY_LECT'
){
response
=
template
.
choicebylectTemplate
();
callSendAPI
(
sender_psid
,
response
);
}
else
if
(
payload
===
'HELP'
){
response
=
template
.
help
();
callSendAPI
(
sender_psid
,
response
);
}
else
if
(
payload
.
match
(
'rate'
)){
response
=
template
.
rate
(
payload
);
callSendAPI
(
sender_psid
,
response
);
}
// Send the message to acknowledge the postback
}
// Sends response messages via the Send API
const
callSendAPI
=
(
sender_psid
,
response
,
cb
=
null
)
=>
{
// Construct the message body
let
request_body
=
{
"recipient"
:
{
"id"
:
sender_psid
},
"message"
:
response
};
// Send the HTTP request to the Messenger Platform
request
({
"ur
i
"
:
"https://graph.facebook.com/v2.6/me/messages"
,
"qs"
:
{
"access_token"
:
config
.
get
(
'facebook.page.access_token'
)
},
"ur
l
"
:
"https://graph.facebook.com/v2.6/me/messages"
,
"qs"
:
{
"access_token"
:
process
.
env
.
PAGE_ACCESS_TOKEN
},
"method"
:
"POST"
,
"json"
:
request_body
"json"
:
{
recipient
:
{
id
:
sender_psid
},
message
:
response
}
},
(
err
,
res
,
body
)
=>
{
if
(
!
err
)
{
if
(
cb
){
cb
();
}
}
else
{
if
(
err
)
{
console
.
error
(
"Unable to send message:"
+
err
);
}
});
...
...
package-lock.json
View file @
c565f30
...
...
@@ -13,14 +13,6 @@
"negotiator"
:
"0.6.2"
}
},
"agent-base"
:
{
"version"
:
"4.2.1"
,
"resolved"
:
"https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz"
,
"integrity"
:
"sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg=="
,
"requires"
:
{
"es6-promisify"
:
"^5.0.0"
}
},
"ajv"
:
{
"version"
:
"6.10.0"
,
"resolved"
:
"https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz"
,
...
...
@@ -50,10 +42,13 @@
"resolved"
:
"https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
,
"integrity"
:
"sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
},
"async-limiter"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz"
,
"integrity"
:
"sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
"async"
:
{
"version"
:
"2.6.2"
,
"resolved"
:
"https://registry.npmjs.org/async/-/async-2.6.2.tgz"
,
"integrity"
:
"sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg=="
,
"requires"
:
{
"lodash"
:
"^4.17.11"
}
},
"asynckit"
:
{
"version"
:
"0.4.0"
,
...
...
@@ -70,11 +65,6 @@
"resolved"
:
"https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz"
,
"integrity"
:
"sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
},
"balanced-match"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
,
"integrity"
:
"sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"bcrypt-pbkdf"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"
,
...
...
@@ -83,10 +73,10 @@
"tweetnacl"
:
"^0.14.3"
}
},
"b
ignumber.js
"
:
{
"version"
:
"
7.2
.1"
,
"resolved"
:
"https://registry.npmjs.org/b
ignumber.js/-/bignumber.js-7.2
.1.tgz"
,
"integrity"
:
"sha512-
S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ
=="
"b
luebird
"
:
{
"version"
:
"
3.5
.1"
,
"resolved"
:
"https://registry.npmjs.org/b
luebird/-/bluebird-3.5
.1.tgz"
,
"integrity"
:
"sha512-
MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA
=="
},
"body-parser"
:
{
"version"
:
"1.19.0"
,
...
...
@@ -105,24 +95,10 @@
"type-is"
:
"~1.6.17"
}
},
"brace-expansion"
:
{
"version"
:
"1.1.11"
,
"resolved"
:
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
,
"integrity"
:
"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
,
"requires"
:
{
"balanced-match"
:
"^1.0.0"
,
"concat-map"
:
"0.0.1"
}
},
"buffer-from"
:
{
"bson"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"
,
"integrity"
:
"sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"buffer-shims"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"
,
"integrity"
:
"sha1-mXjOMXOIxkmth5MCjDR37wRKi1E="
"resolved"
:
"https://registry.npmjs.org/bson/-/bson-1.1.1.tgz"
,
"integrity"
:
"sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg=="
},
"bytes"
:
{
"version"
:
"3.1.0"
,
...
...
@@ -142,22 +118,6 @@
"delayed-stream"
:
"~1.0.0"
}
},
"concat-map"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
"integrity"
:
"sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"concat-stream"
:
{
"version"
:
"1.6.2"
,
"resolved"
:
"https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz"
,
"integrity"
:
"sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw=="
,
"requires"
:
{
"buffer-from"
:
"^1.0.0"
,
"inherits"
:
"^2.0.3"
,
"readable-stream"
:
"^2.2.2"
,
"typedarray"
:
"^0.0.6"
}
},
"content-disposition"
:
{
"version"
:
"0.5.3"
,
"resolved"
:
"https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz"
,
...
...
@@ -217,11 +177,6 @@
"resolved"
:
"https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
,
"integrity"
:
"sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"each-series"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/each-series/-/each-series-1.0.0.tgz"
,
"integrity"
:
"sha1-+Ibmxm39sl7x/nNWQUbuXLR4r8s="
},
"ecc-jsbn"
:
{
"version"
:
"0.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
,
...
...
@@ -236,37 +191,11 @@
"resolved"
:
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
,
"integrity"
:
"sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"emoji-regex"
:
{
"version"
:
"6.5.1"
,
"resolved"
:
"https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz"
,
"integrity"
:
"sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ=="
},
"emoji-strip"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/emoji-strip/-/emoji-strip-1.0.1.tgz"
,
"integrity"
:
"sha1-z5OQU1BEEhiIQgrk20NtA6bMRZ0="
,
"requires"
:
{
"emoji-regex"
:
"^6.1.3"
}
},
"encodeurl"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
,
"integrity"
:
"sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
},
"es6-promise"
:
{
"version"
:
"4.2.6"
,
"resolved"
:
"https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz"
,
"integrity"
:
"sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q=="
},
"es6-promisify"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz"
,
"integrity"
:
"sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM="
,
"requires"
:
{
"es6-promise"
:
"^4.0.3"
}
},
"escape-html"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
,
...
...
@@ -278,9 +207,9 @@
"integrity"
:
"sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
"express"
:
{
"version"
:
"4.17.
0
"
,
"resolved"
:
"https://registry.npmjs.org/express/-/express-4.17.
0
.tgz"
,
"integrity"
:
"sha512-
1Z7/t3Z5ZnBG252gKUPyItc4xdeaA0X934ca2ewckAsVsw9EG71i++ZHZPYnus8g/s5Bty8IMpSVEuRkmwwPRQ
=="
,
"version"
:
"4.17.
1
"
,
"resolved"
:
"https://registry.npmjs.org/express/-/express-4.17.
1
.tgz"
,
"integrity"
:
"sha512-
mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g
=="
,
"requires"
:
{
"accepts"
:
"~1.3.7"
,
"array-flatten"
:
"1.1.1"
,
...
...
@@ -319,17 +248,6 @@
"resolved"
:
"https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"
,
"integrity"
:
"sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
"extract-zip"
:
{
"version"
:
"1.6.7"
,
"resolved"
:
"https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz"
,
"integrity"
:
"sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k="
,
"requires"
:
{
"concat-stream"
:
"1.6.2"
,
"debug"
:
"2.6.9"
,
"mkdirp"
:
"0.5.1"
,
"yauzl"
:
"2.4.1"
}
},
"extsprintf"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
,
...
...
@@ -345,14 +263,6 @@
"resolved"
:
"https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"
,
"integrity"
:
"sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
},
"fd-slicer"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz"
,
"integrity"
:
"sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU="
,
"requires"
:
{
"pend"
:
"~1.2.0"
}
},
"finalhandler"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"
,
...
...
@@ -392,11 +302,6 @@
"resolved"
:
"https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
,
"integrity"
:
"sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
"fs.realpath"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
,
"integrity"
:
"sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"getpass"
:
{
"version"
:
"0.1.7"
,
"resolved"
:
"https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"
,
...
...
@@ -405,19 +310,6 @@
"assert-plus"
:
"^1.0.0"
}
},
"glob"
:
{
"version"
:
"7.1.4"
,
"resolved"
:
"https://registry.npmjs.org/glob/-/glob-7.1.4.tgz"
,
"integrity"
:
"sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A=="
,
"requires"
:
{
"fs.realpath"
:
"^1.0.0"
,
"inflight"
:
"^1.0.4"
,
"inherits"
:
"2"
,
"minimatch"
:
"^3.0.4"
,
"once"
:
"^1.3.0"
,
"path-is-absolute"
:
"^1.0.0"
}
},
"har-schema"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"
,
...
...
@@ -454,30 +346,6 @@
"sshpk"
:
"^1.7.0"
}
},
"https-proxy-agent"
:
{
"version"
:
"2.2.1"
,
"resolved"
:
"https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz"
,
"integrity"
:
"sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ=="
,
"requires"
:
{
"agent-base"
:
"^4.1.0"
,
"debug"
:
"^3.1.0"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"3.2.6"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-3.2.6.tgz"
,
"integrity"
:
"sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ=="
,
"requires"
:
{
"ms"
:
"^2.1.1"
}
},
"ms"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"
,
"integrity"
:
"sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
}
},
"iconv-lite"
:
{
"version"
:
"0.4.24"
,
"resolved"
:
"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
,
...
...
@@ -486,15 +354,6 @@
"safer-buffer"
:
">= 2.1.2 < 3"
}
},
"inflight"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
,
"integrity"
:
"sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk="
,
"requires"
:
{
"once"
:
"^1.3.0"
,
"wrappy"
:
"1"
}
},
"inherits"
:
{
"version"
:
"2.0.3"
,
"resolved"
:
"https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
,
...
...
@@ -510,11 +369,6 @@
"resolved"
:
"https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
,
"integrity"
:
"sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
"isarray"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
,
"integrity"
:
"sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"isstream"
:
{
"version"
:
"0.1.2"
,
"resolved"
:
"https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
,
...
...
@@ -551,11 +405,27 @@
"verror"
:
"1.10.0"
}
},
"kareem"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/kareem/-/kareem-2.3.0.tgz"
,
"integrity"
:
"sha512-6hHxsp9e6zQU8nXsP+02HGWXwTkOEw6IROhF2ZA28cYbUk4eJ6QbtZvdqZOdD9YPKghG3apk5eOCvs+tLl3lRg=="
},
"lodash"
:
{
"version"
:
"4.17.11"
,
"resolved"
:
"https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz"
,
"integrity"
:
"sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
},
"media-typer"
:
{
"version"
:
"0.3.0"
,
"resolved"
:
"https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
,
"integrity"
:
"sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"memory-pager"
:
{
"version"
:
"1.5.0"
,
"resolved"
:
"https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz"
,
"integrity"
:
"sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg=="
,
"optional"
:
true
},
"merge-descriptors"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
,
...
...
@@ -584,98 +454,81 @@
"mime-db"
:
"1.40.0"
}
},
"m
inimatch
"
:
{
"version"
:
"3.
0.4
"
,
"resolved"
:
"https://registry.npmjs.org/m
inimatch/-/minimatch-3.0.4
.tgz"
,
"integrity"
:
"sha512-
yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA
=="
,
"m
ongodb
"
:
{
"version"
:
"3.
2.6
"
,
"resolved"
:
"https://registry.npmjs.org/m
ongodb/-/mongodb-3.2.6
.tgz"
,
"integrity"
:
"sha512-
qnHc4tjEkHKemuzBq9R7ycYnhFE0Dlpt6+n6suoZp2DcDdqviQ+teloJU24fsOw/PLmr75yGk4mRx/YabjDQEQ
=="
,
"requires"
:
{
"brace-expansion"
:
"^1.1.7"
"mongodb-core"
:
"3.2.6"
,
"safe-buffer"
:
"^5.1.2"
}
},
"minimist"
:
{
"version"
:
"0.0.8"
,
"resolved"
:
"https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
,
"integrity"
:
"sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
"mkdirp"
:
{
"version"
:
"0.5.1"
,
"resolved"
:
"https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
,
"integrity"
:
"sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM="
,
"mongodb-core"
:
{
"version"
:
"3.2.6"
,
"resolved"
:
"https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.6.tgz"
,
"integrity"
:
"sha512-i+XRVjur9D0ywGF7cFebOUnALnbvMHajdNhhl3TQuopW6QDE655G8CpPeERbqSqfa3rOKEUo08lENDIiBIuAvQ=="
,
"requires"
:
{
"minimist"
:
"0.0.8"
"bson"
:
"^1.1.1"
,
"require_optional"
:
"^1.0.1"
,
"safe-buffer"
:
"^5.1.2"
,
"saslprep"
:
"^1.0.0"
}
},
"mongoose"
:
{
"version"
:
"5.5.12"
,
"resolved"
:
"https://registry.npmjs.org/mongoose/-/mongoose-5.5.12.tgz"
,
"integrity"
:
"sha512-G6KfSHfxfoBw7zpRRdbG1GzLZSkY71nY3CMHMMfg5o+xVAGc3Q78Qu+kA3P+Ka15KHLu6LNyvAc1Zvtv1JhGfw=="
,
"requires"
:
{
"async"
:
"2.6.2"
,
"bson"
:
"~1.1.1"
,
"kareem"
:
"2.3.0"
,
"mongodb"
:
"3.2.6"
,
"mongodb-core"
:
"3.2.6"
,
"mongoose-legacy-pluralize"
:
"1.0.2"
,
"mpath"
:
"0.6.0"
,
"mquery"
:
"3.2.0"
,
"ms"
:
"2.1.1"
,
"regexp-clone"
:
"0.0.1"
,
"safe-buffer"
:
"5.1.2"
,
"sift"
:
"7.0.1"
,
"sliced"
:
"1.0.1"
},
"dependencies"
:
{
"ms"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"
,
"integrity"
:
"sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
}
},
"mongojs"
:
{
"version"
:
"2.6.0"
,
"resolved"
:
"https://registry.npmjs.org/mongojs/-/mongojs-2.6.0.tgz"
,
"integrity"
:
"sha512-r6tj71DjYcaRTi2jpa+CA6Iq72cTZclB2JKy+Zub+0JPTEq/l2plsAYfF2eHqSYBtZbKNcObvhGYk9E9UKZWJg=="
,
"mongoose-legacy-pluralize"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz"
,
"integrity"
:
"sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
},
"mpath"
:
{
"version"
:
"0.6.0"
,
"resolved"
:
"https://registry.npmjs.org/mpath/-/mpath-0.6.0.tgz"
,
"integrity"
:
"sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw=="
},
"mquery"
:
{
"version"
:
"3.2.0"
,
"resolved"
:
"https://registry.npmjs.org/mquery/-/mquery-3.2.0.tgz"
,
"integrity"
:
"sha512-qPJcdK/yqcbQiKoemAt62Y0BAc0fTEKo1IThodBD+O5meQRJT/2HSe5QpBNwaa4CjskoGrYWsEyjkqgiE0qjhg=="
,
"requires"
:
{
"each-series"
:
"^1.0.0"
,
"mongodb"
:
"^2.2.31"
,
"once"
:
"^1.4.0"
,
"parse-mongo-url"
:
"^1.1.1"
,
"readable-stream"
:
"^2.3.3"
,
"thunky"
:
"^1.0.2"
,
"to-mongodb-core"
:
"^2.0.0"
,
"xtend"
:
"^4.0.1"
"bluebird"
:
"3.5.1"
,
"debug"
:
"3.1.0"
,
"regexp-clone"
:
"0.0.1"
,
"safe-buffer"
:
"5.1.2"
,
"sliced"
:
"1.0.1"
},
"dependencies"
:
{
"bson"
:
{
"version"
:
"1.0.9"
,
"resolved"
:
"https://registry.npmjs.org/bson/-/bson-1.0.9.tgz"
,
"integrity"
:
"sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg=="
},
"es6-promise"
:
{
"version"
:
"3.2.1"
,
"resolved"
:
"https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz"
,
"integrity"
:
"sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q="
},
"mongodb"
:
{
"version"
:
"2.2.36"
,
"resolved"
:
"https://registry.npmjs.org/mongodb/-/mongodb-2.2.36.tgz"
,
"integrity"
:
"sha512-P2SBLQ8Z0PVx71ngoXwo12+FiSfbNfGOClAao03/bant5DgLNkOPAck5IaJcEk4gKlQhDEURzfR3xuBG1/B+IA=="
,
"requires"
:
{
"es6-promise"
:
"3.2.1"
,
"mongodb-core"
:
"2.1.20"
,
"readable-stream"
:
"2.2.7"
},
"dependencies"
:
{
"readable-stream"
:
{
"version"
:
"2.2.7"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz"
,
"integrity"
:
"sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE="
,
"requires"
:
{
"buffer-shims"
:
"~1.0.0"
,
"core-util-is"
:
"~1.0.0"
,
"inherits"
:
"~2.0.1"
,
"isarray"
:
"~1.0.0"
,
"process-nextick-args"
:
"~1.0.6"
,
"string_decoder"
:
"~1.0.0"
,
"util-deprecate"
:
"~1.0.1"
}
}
}
},
"mongodb-core"
:
{
"version"
:
"2.1.20"
,
"resolved"
:
"https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.20.tgz"
,
"integrity"
:
"sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ=="
,
"requires"
:
{
"bson"
:
"~1.0.4"
,
"require_optional"
:
"~1.0.0"
}
},
"process-nextick-args"
:
{
"version"
:
"1.0.7"
,
"resolved"
:
"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"
,
"integrity"
:
"sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
},
"string_decoder"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
,
"integrity"
:
"sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ=="
,
"debug"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-3.1.0.tgz"
,
"integrity"
:
"sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g=="
,
"requires"
:
{
"
safe-buffer"
:
"~5.1
.0"
"
ms"
:
"2.0
.0"
}
}
}
...
...
@@ -685,17 +538,6 @@
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"integrity"
:
"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"mysql"
:
{
"version"
:
"2.17.1"
,
"resolved"
:
"https://registry.npmjs.org/mysql/-/mysql-2.17.1.tgz"
,
"integrity"
:
"sha512-7vMqHQ673SAk5C8fOzTG2LpPcf3bNt0oL3sFpxPEEFp1mdlDcrLK0On7z8ZYKaaHrHwNcQ/MTUz7/oobZ2OyyA=="
,
"requires"
:
{
"bignumber.js"
:
"7.2.1"
,
"readable-stream"
:
"2.3.6"
,
"safe-buffer"
:
"5.1.2"
,
"sqlstring"
:
"2.3.1"
}
},
"negotiator"
:
{
"version"
:
"0.6.2"
,
"resolved"
:
"https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz"
,
...
...
@@ -714,54 +556,21 @@
"ee-first"
:
"1.1.1"
}
},
"once"
:
{
"version"
:
"1.4.0"
,
"resolved"
:
"https://registry.npmjs.org/once/-/once-1.4.0.tgz"
,
"integrity"
:
"sha1-WDsap3WWHUsROsF9nFC6753Xa9E="
,
"requires"
:
{
"wrappy"
:
"1"
}
},
"parse-mongo-url"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/parse-mongo-url/-/parse-mongo-url-1.1.1.tgz"
,
"integrity"
:
"sha1-ZiON9fjnwMjKTNlw1KtqE3PrdbU="
},
"parseurl"
:
{
"version"
:
"1.3.3"
,
"resolved"
:
"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
,
"integrity"
:
"sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
},
"path-is-absolute"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
,
"integrity"
:
"sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"path-to-regexp"
:
{
"version"
:
"0.1.7"
,
"resolved"
:
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
,
"integrity"
:
"sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"pend"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/pend/-/pend-1.2.0.tgz"
,
"integrity"
:
"sha1-elfrVQpng/kRUzH89GY9XI4AelA="
},
"performance-now"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"
,
"integrity"
:
"sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"process-nextick-args"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz"
,
"integrity"
:
"sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
},
"progress"
:
{
"version"
:
"2.0.3"
,
"resolved"
:
"https://registry.npmjs.org/progress/-/progress-2.0.3.tgz"
,
"integrity"
:
"sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
},
"proxy-addr"
:
{
"version"
:
"2.0.5"
,
"resolved"
:
"https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz"
,
...
...
@@ -771,91 +580,16 @@
"ipaddr.js"
:
"1.9.0"
}
},
"proxy-from-env"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz"
,
"integrity"
:
"sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4="
},
"psl"
:
{
"version"
:
"1.1.3
1
"
,
"resolved"
:
"https://registry.npmjs.org/psl/-/psl-1.1.3
1
.tgz"
,
"integrity"
:
"sha512-
/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw
=="
"version"
:
"1.1.3
2
"
,
"resolved"
:
"https://registry.npmjs.org/psl/-/psl-1.1.3
2
.tgz"
,
"integrity"
:
"sha512-
MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g
=="
},
"punycode"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
,
"integrity"
:
"sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"puppeteer"
:
{
"version"
:
"1.17.0"
,
"resolved"
:
"https://registry.npmjs.org/puppeteer/-/puppeteer-1.17.0.tgz"
,
"integrity"
:
"sha512-3EXZSximCzxuVKpIHtyec8Wm2dWZn1fc5tQi34qWfiUgubEVYHjUvr0GOJojqf3mifI6oyKnCdrGxaOI+lWReA=="
,
"requires"
:
{
"debug"
:
"^4.1.0"
,
"extract-zip"
:
"^1.6.6"
,
"https-proxy-agent"
:
"^2.2.1"
,
"mime"
:
"^2.0.3"
,
"progress"
:
"^2.0.1"
,
"proxy-from-env"
:
"^1.0.0"
,
"rimraf"
:
"^2.6.1"
,
"ws"
:
"^6.1.0"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"4.1.1"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz"
,
"integrity"
:
"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw=="
,
"requires"
:
{
"ms"
:
"^2.1.1"
}
},
"mime"
:
{
"version"
:
"2.4.3"
,
"resolved"
:
"https://registry.npmjs.org/mime/-/mime-2.4.3.tgz"
,
"integrity"
:
"sha512-QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw=="
},
"ms"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"
,
"integrity"
:
"sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
}
},
"puppeteer-core"
:
{
"version"
:
"1.17.0"
,
"resolved"
:
"https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-1.17.0.tgz"
,
"integrity"
:
"sha512-3Em/zPGO9Y6PVxiIBCEUiCXhKLyNfyuEIDP7OO5ZEG1N/XNaeoDCIGUsJSUqXMe+kdPQITsJjvw0/7pyecjL4w=="
,
"requires"
:
{
"debug"
:
"^4.1.0"
,
"extract-zip"
:
"^1.6.6"
,
"https-proxy-agent"
:
"^2.2.1"
,
"mime"
:
"^2.0.3"
,
"progress"
:
"^2.0.1"
,
"proxy-from-env"
:
"^1.0.0"
,
"rimraf"
:
"^2.6.1"
,
"ws"
:
"^6.1.0"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"4.1.1"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz"
,
"integrity"
:
"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw=="
,
"requires"
:
{
"ms"
:
"^2.1.1"
}
},
"mime"
:
{
"version"
:
"2.4.3"
,
"resolved"
:
"https://registry.npmjs.org/mime/-/mime-2.4.3.tgz"
,
"integrity"
:
"sha512-QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw=="
},
"ms"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"
,
"integrity"
:
"sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
}
},
"qs"
:
{
"version"
:
"6.7.0"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"
,
...
...
@@ -877,19 +611,10 @@
"unpipe"
:
"1.0.0"
}
},
"readable-stream"
:
{
"version"
:
"2.3.6"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz"
,
"integrity"
:
"sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw=="
,
"requires"
:
{
"core-util-is"
:
"~1.0.0"
,
"inherits"
:
"~2.0.3"
,
"isarray"
:
"~1.0.0"
,
"process-nextick-args"
:
"~2.0.0"
,
"safe-buffer"
:
"~5.1.1"
,
"string_decoder"
:
"~1.1.1"
,
"util-deprecate"
:
"~1.0.1"
}
"regexp-clone"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz"
,
"integrity"
:
"sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk="
},
"request"
:
{
"version"
:
"2.88.0"
,
...
...
@@ -939,14 +664,6 @@
"resolved"
:
"https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz"
,
"integrity"
:
"sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
},
"rimraf"
:
{
"version"
:
"2.6.3"
,
"resolved"
:
"https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz"
,
"integrity"
:
"sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA=="
,
"requires"
:
{
"glob"
:
"^7.1.3"
}
},
"safe-buffer"
:
{
"version"
:
"5.1.2"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
,
...
...
@@ -957,6 +674,15 @@
"resolved"
:
"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
,
"integrity"
:
"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"saslprep"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz"
,
"integrity"
:
"sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag=="
,
"optional"
:
true
,
"requires"
:
{
"sparse-bitfield"
:
"^3.0.3"
}
},
"semver"
:
{
"version"
:
"5.7.0"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-5.7.0.tgz"
,
...
...
@@ -1005,10 +731,24 @@
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
,
"integrity"
:
"sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
},
"sqlstring"
:
{
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz"
,
"integrity"
:
"sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A="
"sift"
:
{
"version"
:
"7.0.1"
,
"resolved"
:
"https://registry.npmjs.org/sift/-/sift-7.0.1.tgz"
,
"integrity"
:
"sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g=="
},
"sliced"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz"
,
"integrity"
:
"sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
},
"sparse-bitfield"
:
{
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz"
,
"integrity"
:
"sha1-/0rm5oZWBWuks+eSqzM004JzyhE="
,
"optional"
:
true
,
"requires"
:
{
"memory-pager"
:
"^1.0.2"
}
},
"sshpk"
:
{
"version"
:
"1.16.1"
,
...
...
@@ -1031,24 +771,6 @@
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
,
"integrity"
:
"sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
"string_decoder"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
,
"integrity"
:
"sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="
,
"requires"
:
{
"safe-buffer"
:
"~5.1.0"
}
},
"thunky"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz"
,
"integrity"
:
"sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow=="
},
"to-mongodb-core"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/to-mongodb-core/-/to-mongodb-core-2.0.0.tgz"
,
"integrity"
:
"sha1-NZbsdhOsmtO5ioncua77pWnNJ+s="
},
"toidentifier"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"
,
...
...
@@ -1092,11 +814,6 @@
"mime-types"
:
"~2.1.24"
}
},
"typedarray"
:
{
"version"
:
"0.0.6"
,
"resolved"
:
"https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
,
"integrity"
:
"sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"unpipe"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
,
...
...
@@ -1110,11 +827,6 @@
"punycode"
:
"^2.1.0"
}
},
"util-deprecate"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
,
"integrity"
:
"sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"utils-merge"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
,
...
...
@@ -1139,32 +851,6 @@
"core-util-is"
:
"1.0.2"
,
"extsprintf"
:
"^1.2.0"
}
},
"wrappy"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
,
"integrity"
:
"sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"ws"
:
{
"version"
:
"6.2.1"
,
"resolved"
:
"https://registry.npmjs.org/ws/-/ws-6.2.1.tgz"
,
"integrity"
:
"sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA=="
,
"requires"
:
{
"async-limiter"
:
"~1.0.0"
}
},
"xtend"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
,
"integrity"
:
"sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
},
"yauzl"
:
{
"version"
:
"2.4.1"
,
"resolved"
:
"https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz"
,
"integrity"
:
"sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU="
,
"requires"
:
{
"fd-slicer"
:
"~1.0.1"
}
}
}
}
...
...
package.json
View file @
c565f30
{
"name"
:
"spbot"
,
"version"
:
"1.0.0"
,
"description"
:
"
SPBot Server
"
,
"description"
:
""
,
"main"
:
"app.js"
,
"scripts"
:
{
"test"
:
"echo
\"
Error: no test specified
\"
&& exit 1"
,
"start"
:
"node app.js"
},
"author"
:
"
WonJun Choi
"
,
"author"
:
""
,
"license"
:
"ISC"
,
"dependencies"
:
{
"body-parser"
:
"^1.19.0"
,
"emoji-strip"
:
"^1.0.1"
,
"express"
:
"^4.17.0"
,
"mongojs"
:
"^2.6.0"
,
"mysql"
:
"^2.17.1"
,
"puppeteer"
:
"^1.17.0"
,
"puppeteer-core"
:
"^1.17.0"
,
"express"
:
"^4.17.1"
,
"mongoose"
:
"^5.5.12"
,
"request"
:
"^2.88.0"
}
}
...
...
template.js
View file @
c565f30
let
images
=
require
(
"./pics"
);
exports
.
messageTemplate
=
(
text
)
=>
{
//메세지
}
let
greetingText
=
"안녕하세요! 컴공/소융 강의평가 봇이에요. 아래에 버튼 3개를 눌러주세요."
;
// 인사말
let
greetingTitle
=
[
"교수명으로 검색"
,
"강의명으로 검색"
,
"HELP"
];
...
...
@@ -21,11 +25,11 @@ exports.greetingTemplate = () => {
"type"
:
"postback"
,
"title"
:
greetingTitle
[
1
],
"payload"
:
"CHOICE_BY_LECT"
}
}
,
{
"type"
:
"postback"
,
"title"
:
greetingTitle
[
2
],
"payload"
:
"
CHOICE_BY_
HELP"
"payload"
:
"HELP"
}
]
}
...
...
@@ -33,44 +37,43 @@ exports.greetingTemplate = () => {
}
}
exports
.
askTemplate
=
(
text
)
=>
{
return
{
"attachment"
:{
"type"
:
"template"
,
"payload"
:{
"template_type"
:
"button"
,
"text"
:
text
,
"buttons"
:[
{
"type"
:
"postback"
,
"title"
:
"Cats"
,
"payload"
:
"CAT_PICS"
},
{
"type"
:
"postback"
,
"title"
:
"Dogs"
,
"payload"
:
"DOG_PICS"
}
]
}
}
}
exports
.
choicebyprofTemplate
=
()
=>
{
return
{
text
:
"교수명을 입력하세요."
};
//교수님 성함 사용자 입력 받기
//교수님 목록 띄우기_버튼
//강의명 목록 띄우기_버튼
//->강의평가 띄우기
}
exports
.
choicebylectTemplate
=
()
=>
{
//강의명 사용자 입력 받기
//일치하는 강의 없으면 추측 강의 목록 띄우기_버튼
//max n개 강의 목록 띄우기_버튼
//->그 중에 없으면 교수명 입력으로
//->있으면 강의평가 띄우기
}
exports
.
help
=
()
=>
{
//소개, 뒤로가기
}
exports
.
imageTemplate
=
(
type
,
sender_id
)
=>
{
return
{
"attachment"
:{
"type"
:
"image"
,
"payload"
:{
"url"
:
getImage
(
type
,
sender_id
),
"is_reusable"
:
true
}
}
}
exports
.
rate
=
(
payload
)
=>
{
return
{
text
:
"강의평가입니다."
};
//강의평가
}
let
users
=
{};
const
getImage
=
(
type
,
sender_id
)
=>
{
...
...
Please
register
or
login
to post a comment