Toggle navigation
Toggle navigation
This project
Loading...
Sign in
김민욱
/
Slack Jokebot
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Graphs
Issues
1
Network
Create a new issue
Commits
Issue Boards
Authored by
김연준
2019-05-25 15:40:28 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
c4d67d078e0316c95771f34941ed141451cf9b46
c4d67d07
1 parent
4941acb3
Sucessed to manage slackbot to respond user input ' random'
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
311 additions
and
183 deletions
Routers/route.js
index.js
mongo.js
operations.js
package-lock.json
package.json
test.js
test2.js
Routers/route.js
View file @
c4d67d0
// Tell a Chuck Norris Joke
function
chuckJoke
(){
axios
.
get
(
'http://api.icndb.com/jokes/random/'
)
.
then
(
res
=>
{
const
joke
=
res
.
data
.
value
.
joke
;
const
MongoClient
=
require
(
'mongodb'
).
MongoClient
;
const
dboperation
=
require
(
'../operations'
);
const
dbname
=
'jokeapi'
;
const
collec
=
'jokes'
;
const
url
=
'mongodb://localhost:27017/'
;
exports
.
randomJoke
=
()
=>
{
MongoClient
.
connect
(
'mongodb://localhost:27017'
,
function
(
err
,
client
){
if
(
err
)
throw
err
;
var
db
=
client
.
db
(
'jokeapi'
);
json_max
=
376
;
function
getRandomInt
()
{
min
=
Math
.
ceil
(
1
);
max
=
Math
.
floor
(
376
);
return
Math
.
floor
(
Math
.
random
()
*
(
max
-
min
+
1
))
+
min
;
}
random
=
getRandomInt
();
result
=
db
.
collection
(
'jokes'
).
findOne
({
id
:
random
});
user
=
result
;
user
.
then
(
function
(
total
){
question
=
total
.
setup
;
joke
=
total
.
punchline
;
const
face
=
{
icon_emoji
:
':laughing:'
};
bot
.
postMessageToChannel
(
'everyone'
,
`Chuck Norris:
${
joke
}
`
,
face
);
bot
.
postMessageToChannel
(
'full-stack-web'
,
`Yo mama:
${
joke
}
`
,
face
);
bot
.
postMessageToChannel
(
'bot_test'
,
`Yo mama:
${
joke
}
`
,
face
);
});
bot
.
postMessageToChannel
(
'everyone'
,
question
,
joke
,
face
);
bot
.
postMessageToChannel
(
'full-stack-web'
,
question
,
joke
,
face
);
bot
.
postMessageToChannel
(
'bot_test'
,
question
,
joke
,
face
);
})
client
.
close
();
})
}
// Tell a yomama Joke
function
yoMamaJoke
(){
axios
.
get
(
'http://api.yomomma.info/'
)
.
then
(
res
=>
{
const
joke
=
res
.
data
.
joke
;
function
generalJoke
(){
dboperation
.
getdata
(
dbname
,
collec
,
"general"
)
.
then
((
data
)
=>
{
var
query
=
{
state
:
'OK'
};
var
n
=
data
.
count
(
query
);
var
r
=
Math
.
floor
(
Math
.
random
()
*
n
);
var
randomElement
=
data
.
find
(
query
).
limit
(
1
).
skip
(
r
);
var
question
=
randomElement
.
setup
;
var
joke
=
randomElement
.
punchline
;
const
face
=
{
icon_emoji
:
':laughing:'
};
bot
.
postMessageToChannel
(
'everyone'
,
question
,
joke
,
face
);
bot
.
postMessageToChannel
(
'full-stack-web'
,
question
,
joke
,
face
);
bot
.
postMessageToChannel
(
'bot_test'
,
question
,
joke
,
face
);
});
};
const
face
=
{
icon_emoji
:
':laughing:'
// Tell a yomama Joke
function
yomamaJoke
(){
axios
.
get
(
'http://api.yomomma.info/'
)
.
then
(
res
=>
{
const
joke
=
res
.
data
.
joke
;
const
face
=
{
icon_emoji
:
':laughing:'
};
bot
.
postMessageToChannel
(
'everyone'
,
`Yo mama:
${
joke
}
`
,
face
);
bot
.
postMessageToChannel
(
'full-stack-web'
,
`Yo mama:
${
joke
}
`
,
face
);
bot
.
postMessageToChannel
(
'bot_test'
,
`Yo mama:
${
joke
}
`
,
face
);
});
};
//Tell random joke
function
runhelp
(){
const
face
=
{
icon_emoji
:
':question:'
};
bot
.
postMessageToChannel
(
'everyone'
,
`Yo mama:
${
joke
}
`
,
face
);
bot
.
postMessageToChannel
(
'full-stack-web'
,
`Yo mama:
${
joke
}
`
,
face
);
bot
.
postMessageToChannel
(
'bot_test'
,
`Yo mama:
${
joke
}
`
,
face
);
});
}
//Tell random joke
function
randomJoke
(){
const
rand
=
Math
.
floor
(
Math
.
random
()
*
2
)
+
1
;
if
(
rand
===
1
){
chuckJoke
();
}
else
if
(
rand
===
2
){
yoMamaJoke
();
}
}
function
runHelp
(){
const
face
=
{
icon_emoji
:
':question:'
};
bot
.
postMessageToChannel
(
'everyone'
,
"Type @joker and write a joke that you would like\n ex- @joker random"
,
face
);
bot
.
postMessageToChannel
(
'full-stack-web'
,
"Type @joker and write a joke that you would like\n ex- @joker random"
,
face
);
}
module
.
exports
=
route
;
\ No newline at end of file
bot
.
postMessageToChannel
(
'everyone'
,
"Type @joker and write a joke that you would like\n ex- @joker random"
,
face
);
bot
.
postMessageToChannel
(
'full-stack-web'
,
"Type @joker and write a joke that you would like\n ex- @joker random"
,
face
);
};
...
...
index.js
View file @
c4d67d0
...
...
@@ -2,8 +2,12 @@ const SlackBot = require('slackbots');
const
axios
=
require
(
'axios'
);
const
route
=
require
(
'./Routers/route'
);
const
MongoClient
=
require
(
'mongodb'
).
MongoClient
;
const
url
=
'mongodb://localhost:27017/'
;
const
bot
=
new
SlackBot
({
token
:
"xoxb-582582124755-587875604934-
rRhFVlXlB0StEMnlrmsQlcac
"
,
token
:
"xoxb-582582124755-587875604934-
EWnGacmzNvfVQk2XvhteoIzw
"
,
name
:
"Joker"
});
...
...
@@ -34,33 +38,56 @@ bot.on('message', (data) => {
// Responding to Data
function
handleMessage
(
message
){
if
(
message
.
includes
(
'chucknorris'
)){
route
.
chuckJoke
()
.
then
((
err
,
data
)
=>
{
if
(
err
)
throw
err
;
console
.
log
(
"ChuckJoke function activated"
);
});
if
(
message
.
includes
(
' yomama'
)){
route
.
startdb
.
yomamaJoke
();
}
else
if
(
message
.
includes
(
' yomama'
)){
route
.
yoMamaJoke
()
.
then
((
err
,
data
)
=>
{
if
(
err
)
throw
err
;
console
.
log
(
"yoMamaJoke function activated"
);
});
else
if
(
message
.
includes
(
' general'
)){
route
.
randomJoke
();
}
else
if
(
message
.
includes
(
' random'
)){
route
.
randomJoke
()
.
then
((
err
,
data
)
=>
{
if
(
err
)
throw
err
;
console
.
log
(
"randomJoke function activated"
);
});
randomJoke
();
}
else
if
(
message
.
includes
(
' programming'
)){
route
.
startdb
()
}
else
if
(
message
.
includes
(
' help'
)){
route
.
startdb
.
runHelp
();
}
}
else
if
(
message
.
includes
(
' help'
)){
route
.
runHelp
()
.
then
((
err
,
data
)
=>
{
if
(
err
)
throw
err
;
console
.
log
(
" function activated"
);
});
randomJoke
=
()
=>
{
MongoClient
.
connect
(
'mongodb://localhost:27017'
,
function
(
err
,
client
){
if
(
err
)
throw
err
;
var
db
=
client
.
db
(
'jokeapi'
);
json_max
=
376
;
function
getRandomInt
()
{
min
=
Math
.
ceil
(
1
);
max
=
Math
.
floor
(
376
);
return
Math
.
floor
(
Math
.
random
()
*
(
max
-
min
+
1
))
+
min
;
}
}
\ No newline at end of file
random
=
getRandomInt
();
result
=
db
.
collection
(
'jokes'
).
findOne
({
id
:
random
});
user
=
result
;
user
.
then
(
function
(
total
){
question
=
total
.
setup
;
joke
=
total
.
punchline
;
const
face
=
{
icon_emoji
:
':laughing:'
};
bot
.
postMessageToChannel
(
'everyone'
,
joke
,
face
);
bot
.
postMessageToChannel
(
'full-stack-web'
,
joke
,
face
);
bot
.
postMessageToChannel
(
'bot_test'
,
joke
,
face
);
bot
.
postMessageToChannel
(
'everyone'
,
question
,
face
);
bot
.
postMessageToChannel
(
'full-stack-web'
,
question
,
joke
,
face
);
bot
.
postMessageToChannel
(
'bot_test'
,
question
,
face
);
})
client
.
close
();
})
}
...
...
mongo.js
View file @
c4d67d0
const
MongoClient
=
require
(
'mongodb'
).
MongoClient
;
const
assert
=
require
(
'assert'
);
const
dboperation
=
require
(
'./operations'
);
const
jokedoc
=
require
(
'./jokes/jokes.json'
);
const
url
=
'mongodb://localhost:27017/'
;
const
dbname
=
'jokeapi'
;
const
collec
=
'jokes'
;
var
url
=
"mongodb://localhost:27017/jokeapi"
;
// C
ode for Creating
database
// C
reate
database
// MongoClient.connect(url, function(err, db) {
// if (err) throw err;
// console.log("Database created!");
// db.close();
// });
// Code for Creating a Collection
// MongoClient.connect(url, function(err, db) {
// if (err) throw err;
// var dbo = db.db("jokeapi");
...
...
@@ -26,21 +23,50 @@ var url = "mongodb://localhost:27017/jokeapi";
// });
// });
//
MongoClient
.
connect
(
url
).
then
((
client
)
=>
{
console
.
log
(
'Connected correctly to server'
);
}).
catch
((
err
)
=>
console
.
log
(
err
));
/*
const db = client.db(dbname);
// Storing data jokes.json data into mongodb
// MongoClient.connect(url).then((client) => {
dboperation.insertDocument(db, jokedoc, collec)
.then((result) => {
console.log("Inserted Document:\n", result.ops);
// console.log('Connected correctly to server');
// const db = client.db(dbname);
return dboperation.findDocuments(db, collec);
})
.catch((err) => console.log(err)
);
// dboperation.insertDocument(db, jokedoc, collec)
// .then((result) => {
// console.log("Inserted Document:\n", result.ops
);
})
*/
\ No newline at end of file
// return dboperation.findDocuments(db, collec);
// })
// .catch((err) => console.log(err));
// })
// .catch((err) => console.log(err));
// //will encapsulate all that database operations
// const assert = require('assert');
// exports.insertDocument = (db, document, collection, callback) =>{
// const coll = db.collection(collection);
// return coll.insert(document);
// };
// exports.findDocuments = (db, collection, input,callback)=>{
// const coll = db.collection(collection);
// return coll.find({"type": input}).toArray();
// }
// exports.removeDocuments = (db, document , collection, callback)=>{
// const coll = db.collection(collection);
// return coll.deleteone(document);
// }
// exports.updateDocuments = (db, document , update ,collection, callback)=>{
// const coll = db.collection(collection);
// return coll.updateOne(document, {$set: update}, null);
// }
// exports.getdata = (db, document, collection, input, callback =>{
// result = findDocuments(db,collection);
// return result;
// })
\ No newline at end of file
...
...
operations.js
View file @
c4d67d0
...
...
@@ -6,9 +6,9 @@ exports.insertDocument = (db, document, collection, callback) =>{
return
coll
.
insert
(
document
);
};
exports
.
findDocuments
=
(
db
,
collection
,
callback
)
=>
{
exports
.
findDocuments
=
(
db
,
collection
,
input
)
=>
{
const
coll
=
db
.
collection
(
collection
);
return
coll
.
find
({}).
toArray
();
return
coll
.
find
({
"type"
:
input
}).
toArray
();
}
exports
.
removeDocuments
=
(
db
,
document
,
collection
,
callback
)
=>
{
...
...
@@ -19,4 +19,11 @@ exports.removeDocuments = (db, document , collection, callback)=>{
exports
.
updateDocuments
=
(
db
,
document
,
update
,
collection
,
callback
)
=>
{
const
coll
=
db
.
collection
(
collection
);
return
coll
.
updateOne
(
document
,
{
$set
:
update
},
null
);
}
exports
.
getdata
=
(
db
,
collection
,
input
,
callback
)
=>
{
const
coll
=
db
.
collection
(
collection
);
result
=
coll
.
find
({
"type"
:
input
});
console
.
log
(
result
);
return
result
;
}
\ No newline at end of file
...
...
package-lock.json
View file @
c4d67d0
...
...
@@ -60,10 +60,10 @@
"tweetnacl"
:
"^0.14.3"
}
},
"
capture-stack-trace
"
:
{
"version"
:
"1.
0
.1"
,
"resolved"
:
"https://registry.npmjs.org/
capture-stack-trace/-/capture-stack-trace-1.0
.1.tgz"
,
"integrity"
:
"sha512-
mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw
=="
"
bson
"
:
{
"version"
:
"1.
1
.1"
,
"resolved"
:
"https://registry.npmjs.org/
bson/-/bson-1.1
.1.tgz"
,
"integrity"
:
"sha512-
jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg
=="
},
"caseless"
:
{
"version"
:
"0.12.0"
,
...
...
@@ -83,14 +83,6 @@
"resolved"
:
"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
,
"integrity"
:
"sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"create-error-class"
:
{
"version"
:
"3.0.2"
,
"resolved"
:
"https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz"
,
"integrity"
:
"sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y="
,
"requires"
:
{
"capture-stack-trace"
:
"^1.0.0"
}
},
"dashdash"
:
{
"version"
:
"1.14.1"
,
"resolved"
:
"https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"
,
...
...
@@ -112,11 +104,6 @@
"resolved"
:
"https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
,
"integrity"
:
"sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"duplexer3"
:
{
"version"
:
"0.1.4"
,
"resolved"
:
"https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz"
,
"integrity"
:
"sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
},
"ecc-jsbn"
:
{
"version"
:
"0.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
,
...
...
@@ -169,16 +156,6 @@
"mime-types"
:
"^2.1.12"
}
},
"free-google-image-search"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/free-google-image-search/-/free-google-image-search-1.0.0.tgz"
,
"integrity"
:
"sha1-emJ4vo7cZG7ZanEiUdsyZxckyBU="
},
"get-stream"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz"
,
"integrity"
:
"sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
},
"getpass"
:
{
"version"
:
"0.1.7"
,
"resolved"
:
"https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"
,
...
...
@@ -187,32 +164,6 @@
"assert-plus"
:
"^1.0.0"
}
},
"google-images"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/google-images/-/google-images-2.1.0.tgz"
,
"integrity"
:
"sha1-EnSuQEgll4Jk06T48tUmuI0L8Cw="
,
"requires"
:
{
"got"
:
"^6.7.1"
}
},
"got"
:
{
"version"
:
"6.7.1"
,
"resolved"
:
"https://registry.npmjs.org/got/-/got-6.7.1.tgz"
,
"integrity"
:
"sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA="
,
"requires"
:
{
"create-error-class"
:
"^3.0.0"
,
"duplexer3"
:
"^0.1.4"
,
"get-stream"
:
"^3.0.0"
,
"is-redirect"
:
"^1.0.0"
,
"is-retry-allowed"
:
"^1.0.0"
,
"is-stream"
:
"^1.0.0"
,
"lowercase-keys"
:
"^1.0.0"
,
"safe-buffer"
:
"^5.0.1"
,
"timed-out"
:
"^4.0.0"
,
"unzip-response"
:
"^2.0.1"
,
"url-parse-lax"
:
"^1.0.0"
}
},
"har-schema"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"
,
...
...
@@ -242,21 +193,6 @@
"resolved"
:
"https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
,
"integrity"
:
"sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
},
"is-redirect"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz"
,
"integrity"
:
"sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="
},
"is-retry-allowed"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz"
,
"integrity"
:
"sha1-EaBgVotnM5REAz0BJaYaINVk+zQ="
},
"is-stream"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"
,
"integrity"
:
"sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
"is-typedarray"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
,
...
...
@@ -303,10 +239,11 @@
"resolved"
:
"https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz"
,
"integrity"
:
"sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
},
"lowercase-keys"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz"
,
"integrity"
:
"sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
"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
},
"mime-db"
:
{
"version"
:
"1.38.0"
,
...
...
@@ -321,6 +258,26 @@
"mime-db"
:
"~1.38.0"
}
},
"mongodb"
:
{
"version"
:
"3.2.6"
,
"resolved"
:
"https://registry.npmjs.org/mongodb/-/mongodb-3.2.6.tgz"
,
"integrity"
:
"sha512-qnHc4tjEkHKemuzBq9R7ycYnhFE0Dlpt6+n6suoZp2DcDdqviQ+teloJU24fsOw/PLmr75yGk4mRx/YabjDQEQ=="
,
"requires"
:
{
"mongodb-core"
:
"3.2.6"
,
"safe-buffer"
:
"^5.1.2"
}
},
"mongodb-core"
:
{
"version"
:
"3.2.6"
,
"resolved"
:
"https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.6.tgz"
,
"integrity"
:
"sha512-i+XRVjur9D0ywGF7cFebOUnALnbvMHajdNhhl3TQuopW6QDE655G8CpPeERbqSqfa3rOKEUo08lENDIiBIuAvQ=="
,
"requires"
:
{
"bson"
:
"^1.1.1"
,
"require_optional"
:
"^1.0.1"
,
"safe-buffer"
:
"^5.1.2"
,
"saslprep"
:
"^1.0.0"
}
},
"ms"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"
,
...
...
@@ -341,11 +298,6 @@
"resolved"
:
"https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"
,
"integrity"
:
"sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"prepend-http"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz"
,
"integrity"
:
"sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
},
"psl"
:
{
"version"
:
"1.1.31"
,
"resolved"
:
"https://registry.npmjs.org/psl/-/psl-1.1.31.tgz"
,
...
...
@@ -395,6 +347,20 @@
}
}
},
"require_optional"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz"
,
"integrity"
:
"sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g=="
,
"requires"
:
{
"resolve-from"
:
"^2.0.0"
,
"semver"
:
"^5.1.0"
}
},
"resolve-from"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz"
,
"integrity"
:
"sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
},
"safe-buffer"
:
{
"version"
:
"5.1.2"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
,
...
...
@@ -405,6 +371,20 @@
"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"
,
"integrity"
:
"sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
},
"slackbots"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/slackbots/-/slackbots-1.2.0.tgz"
,
...
...
@@ -418,6 +398,15 @@
"ws-heartbeat"
:
"^1.0.4"
}
},
"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"
,
"resolved"
:
"https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"
,
...
...
@@ -434,11 +423,6 @@
"tweetnacl"
:
"~0.14.0"
}
},
"timed-out"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz"
,
"integrity"
:
"sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
},
"tough-cookie"
:
{
"version"
:
"2.4.3"
,
"resolved"
:
"https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz"
,
...
...
@@ -473,11 +457,6 @@
"resolved"
:
"https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz"
,
"integrity"
:
"sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="
},
"unzip-response"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz"
,
"integrity"
:
"sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c="
},
"uri-js"
:
{
"version"
:
"4.2.2"
,
"resolved"
:
"https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz"
,
...
...
@@ -486,14 +465,6 @@
"punycode"
:
"^2.1.0"
}
},
"url-parse-lax"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz"
,
"integrity"
:
"sha1-evjzA2Rem9eaJy56FKxovAYJ2nM="
,
"requires"
:
{
"prepend-http"
:
"^1.0.1"
}
},
"uuid"
:
{
"version"
:
"3.3.2"
,
"resolved"
:
"https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz"
,
...
...
package.json
View file @
c4d67d0
...
...
@@ -10,6 +10,7 @@
"license"
:
"MIT"
,
"dependencies"
:
{
"axios"
:
"^0.18.0"
,
"mongodb"
:
"^3.2.6"
,
"slackbots"
:
"^1.2.0"
}
}
...
...
test.js
0 → 100644
View file @
c4d67d0
//
const
joke
=
require
(
'./jokes/jokes.json'
);
const
MongoClient
=
require
(
'mongodb'
).
MongoClient
;
MongoClient
.
connect
(
'mongodb://localhost:27017'
,
function
(
err
,
client
){
if
(
err
)
throw
err
;
var
db
=
client
.
db
(
'jokeapi'
);
question
=
[];
punchline
=
[];
count
=
0
;
json_max
=
376
;
random
=
function
getRandomArbitrary
()
{
return
Math
.
random
()
*
(
376
-
1
)
+
1
;
}
for
(
var
i
=
1
;
i
<
json_max
+
1
;
i
++
){
result
=
db
.
collection
(
'jokes'
).
findOne
({
id
:
i
,
type
:
"programming"
});
if
(
result
===
null
)
return
;
else
if
(
result
)
{
++
count
;
question
.
push
(
result
.
setup
);
punchline
.
push
(
result
.
punchline
);
// var n = result.count(result);
// var r = Math.floor(Math.random() * n);
// var randomElement = result.find().limit(1).skip(r);
// var question = randomElement.setup;
// var joke = randomElement.punchline;
// console.log(question);
// console.log(joke);
// console.log(question);
// console.log(punchline);
//console.log(question);
}
}
client
.
close
();
console
.
log
(
question
);
});
test2.js
0 → 100644
View file @
c4d67d0
const
MongoClient
=
require
(
'mongodb'
).
MongoClient
;
//Get Random Joke
MongoClient
.
connect
(
'mongodb://localhost:27017'
,
function
(
err
,
client
){
if
(
err
)
throw
err
;
var
db
=
client
.
db
(
'jokeapi'
);
json_max
=
376
;
function
getRandomInt
()
{
min
=
Math
.
ceil
(
1
);
max
=
Math
.
floor
(
376
);
return
Math
.
floor
(
Math
.
random
()
*
(
max
-
min
+
1
))
+
min
;
}
random
=
getRandomInt
();
console
.
log
(
random
);
result
=
db
.
collection
(
'jokes'
).
findOne
({
id
:
random
});
user
=
result
;
user
.
then
(
function
(
total
){
console
.
log
(
total
.
setup
);
console
.
log
(
total
.
setup
);
})
client
.
close
();
})
Please
register
or
login
to post a comment