60 lines
1.2 KiB
JavaScript
60 lines
1.2 KiB
JavaScript
|
var Promise = require('promise');
|
|||
|
var requestPromise = require('./helpers/requestPromise.js');
|
|||
|
var BasePlugin = require('./base.js');
|
|||
|
var logger = require('winston');
|
|||
|
|
|||
|
class Joke extends BasePlugin {
|
|||
|
constructor(config) {
|
|||
|
super(config);
|
|||
|
this.name = 'Joke';
|
|||
|
}
|
|||
|
|
|||
|
test(input) {
|
|||
|
var res = null;
|
|||
|
if (res = input.match(/^\.vitsi$/i)) {
|
|||
|
return true;
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
getJoke() {
|
|||
|
var urlArgs = {};
|
|||
|
var url = 'https://icanhazdadjoke.com/';
|
|||
|
|
|||
|
var promise = requestPromise(url, urlArgs, {
|
|||
|
'Accept': 'application/json',
|
|||
|
});
|
|||
|
|
|||
|
return promise;
|
|||
|
}
|
|||
|
|
|||
|
result(input) {
|
|||
|
var that = this;
|
|||
|
var resultPromise = new Promise(function(resultResolve, resultReject) {
|
|||
|
var res = null;
|
|||
|
if (res = input.match(/^\.vitsi$/i)) {
|
|||
|
that.getJoke().then(function(data) {
|
|||
|
var text = 'Vitsi: ';
|
|||
|
|
|||
|
var joke = data.joke;
|
|||
|
if(typeof joke === 'undefined' || joke === null) {
|
|||
|
resultReject('No joke!');
|
|||
|
}
|
|||
|
|
|||
|
text += "\"" + joke + "\"";
|
|||
|
|
|||
|
resultResolve(text);
|
|||
|
|
|||
|
}, function(error) {
|
|||
|
resultReject(error);
|
|||
|
});
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
return resultPromise;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
module.exports = Joke;
|