diff --git a/config.kulmapaikka.js b/config.kulmapaikka.js index b43e3d3..47088e5 100644 --- a/config.kulmapaikka.js +++ b/config.kulmapaikka.js @@ -8,6 +8,7 @@ var config = { 'Tweet', 'Url', 'Weather', + 'Joke', ], irc: { connect: true, @@ -24,6 +25,10 @@ var config = { user: /lanxu$/, host: /(.*)\.elisa-laajakaista\.fi$/ }, + 'lanxu3': { + user: /lanxu/, + host: /(.*)\.kapsi\.fi$/ + }, 'asdfas': { user: /asdfas$/, host: /(.*)\.ssp\.fi$/ @@ -44,6 +49,10 @@ var config = { user: /mindflaye$/, host: /(.*)opintanner\.fi$/ }, + 'mindflayer2': { + user: /mindflaye$/, + host: /(.*)inet\.fi$/ + }, 'pariah': { user: /rautia$/, host: /mozart\.cc\.tut\.fi$/ @@ -89,7 +98,7 @@ var config = { consumerSecret: '' }, google: { - apiKey: '' + apiKey: '' }, owm: { apiKey: '' diff --git a/plugins/joke.js b/plugins/joke.js new file mode 100644 index 0000000..4b58552 --- /dev/null +++ b/plugins/joke.js @@ -0,0 +1,59 @@ +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; diff --git a/plugins/youtube.js b/plugins/youtube.js index 5b99e2d..0b1fee8 100644 --- a/plugins/youtube.js +++ b/plugins/youtube.js @@ -8,7 +8,7 @@ class Youtube extends BasePlugin { super(config); this.name = 'Youtube'; this.config = config; - } + } test(input) { // Kernel version @@ -27,13 +27,15 @@ class Youtube extends BasePlugin { var resultString = 'Youtube: '; resultString += result.title; resultString += ', esittäjänä ' + result.channelTitle; - var rotten = (Number(result.statistics.likeCount)/(Number(result.statistics.likeCount)+Number(result.statistics.dislikeCount))).toFixed(2); - resultString += ' ('+result.duration+', '+ result.statistics.viewCount +' katselukertaa, '+rotten*100+'% tykätty, '+result.url+' )'; + if(typeof result.statistics !== 'undefined') { + var rotten = (Number(result.statistics.likeCount)/(Number(result.statistics.likeCount)+Number(result.statistics.dislikeCount))).toFixed(2); + resultString += ' ('+result.duration+', '+ result.statistics.viewCount +' katselukertaa, '+rotten*100+'% tykätty, '+result.url+' )'; + } resolve(resultString); }, function(err) { logger.info('Error', err); reject('Youtube: jokin meni pieleen...'); - }); + }); } else { reject('Youtube: jokin meni pahasti pieleen...'); }