From 73e9b218242281003f7233a2275393ea8936e3bd Mon Sep 17 00:00:00 2001 From: Daniel Dowling Date: Wed, 30 Jan 2013 14:19:52 +0000 Subject: [PATCH 1/7] added random xkcd function using "*" as the param Will get a random comic from http://dynamic.xkcd.com/random/comic/ Needs testing --- modules/link/link.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/link/link.js b/modules/link/link.js index d684cf3..f36ce71 100644 --- a/modules/link/link.js +++ b/modules/link/link.js @@ -35,22 +35,29 @@ var link = function(dbot) { '~xkcd': function(event) { var comicId = event.params[1]; - if(comicId){ + if(comicId){ comicId = comicId + "/"; } else { comicId = ""; } var link = "http://xkcd.com/"+comicId+"info.0.json"; + + if(comicId == "*"){ + link = "http://dynamic.xkcd.com/random/comic"; + request(link, function(error, response, body) + link = response.location + "info.0.json"; + } + request(link, function(error, response, body) { if (response.statusCode == "200") { data = JSON.parse(body); event.reply(dbot.t("xkcd",data)); - } else { + } else { event.reply(dbot.t("no-hits")); } }); }, - + '~ud': function(event) { var query = event.input[1]; var reqUrl = 'http://api.urbandictionary.com/v0/define?term=' + encodeURI(query); From 67d7abbf84cc0a67365b22e5ad1562de0fcfbddf Mon Sep 17 00:00:00 2001 From: Daniel Dowling Date: Wed, 30 Jan 2013 16:50:54 +0000 Subject: [PATCH 2/7] fixed xkcd random and updated readme for link --- config.json.sample | 8 +++---- modules/link/README.md | 2 +- modules/link/link.js | 53 +++++++++++++++++++++++++----------------- 3 files changed, 37 insertions(+), 26 deletions(-) diff --git a/config.json.sample b/config.json.sample index 05c37a4..a3d95e4 100644 --- a/config.json.sample +++ b/config.json.sample @@ -1,13 +1,13 @@ { - "name": "testressionbot", + "name": "welshtestbot", "servers": { "freenode": { - "server": "irc.freenode.net", + "server": "irc.aberwiki.org", "port": 6667, "nickserv": "nickserv", - "password": "lolturtles", + "password": "", "channels": [ - "#realitest" + "#lolhax" ] } }, diff --git a/modules/link/README.md b/modules/link/README.md index 21de8ef..fed0a33 100644 --- a/modules/link/README.md +++ b/modules/link/README.md @@ -22,4 +22,4 @@ which was posted in the current channel. #### ~ud [headword] Returns the first [Urban Dictionary](http://www.urbandictionary.com) definition for the headword provided. #### ~xkcd -Returns a link to the [xkcd](http://xkcd.com) comic specified, or the latest one if a comic is not given. +Returns a link to the [xkcd](http://xkcd.com) comic specified, or the latest one if a comic is not given. Use '*' to return a link to a random comic. diff --git a/modules/link/link.js b/modules/link/link.js index f36ce71..7dca608 100644 --- a/modules/link/link.js +++ b/modules/link/link.js @@ -20,7 +20,20 @@ var link = function(dbot) { } }); }; - + + function outputComic(comicId,event){ + var link = "http://xkcd.com/"+comicId+"info.0.json"; + request(link, function(error, response, body) { + if (response.statusCode == "200") { + data = JSON.parse(body); + event.reply(dbot.t("xkcd",data)); + } else { + event.reply(dbot.t("no-hits")); + } + }); + } + + var commands = { '~title': function(event) { var link = this.links[event.channel.name]; @@ -35,28 +48,26 @@ var link = function(dbot) { '~xkcd': function(event) { var comicId = event.params[1]; - if(comicId){ - comicId = comicId + "/"; - } else { - comicId = ""; - } - var link = "http://xkcd.com/"+comicId+"info.0.json"; if(comicId == "*"){ - link = "http://dynamic.xkcd.com/random/comic"; - request(link, function(error, response, body) - link = response.location + "info.0.json"; - } - - request(link, function(error, response, body) { - if (response.statusCode == "200") { - data = JSON.parse(body); - event.reply(dbot.t("xkcd",data)); - } else { - event.reply(dbot.t("no-hits")); - } - }); - }, + request("http://xkcd.com/info.0.json", function(error, response, body){ + if (response.statusCode == "200") { + data = JSON.parse(body); + comicId = data.num; + comicId = Math.floor(Math.random() * comicId); + comicId++; + comicId = comicId + "/"; + outputComic(comicId,event); + } + }); + }else if(comicId){ + comicId = comicId + "/"; + outputComic(comicId,event); + } else { + comicId = ""; + outputComic(comicId,event); + } + }, '~ud': function(event) { var query = event.input[1]; From 5a83e788206f24cd325d4905a5b82e588fb5bae2 Mon Sep 17 00:00:00 2001 From: Daniel Dowling Date: Wed, 30 Jan 2013 17:04:27 +0000 Subject: [PATCH 3/7] Reverted file --- config.json.sample | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config.json.sample b/config.json.sample index a3d95e4..05c37a4 100644 --- a/config.json.sample +++ b/config.json.sample @@ -1,13 +1,13 @@ { - "name": "welshtestbot", + "name": "testressionbot", "servers": { "freenode": { - "server": "irc.aberwiki.org", + "server": "irc.freenode.net", "port": 6667, "nickserv": "nickserv", - "password": "", + "password": "lolturtles", "channels": [ - "#lolhax" + "#realitest" ] } }, From bcdca5d002fec4d6f031994825e59c0d108df734 Mon Sep 17 00:00:00 2001 From: Daniel Dowling Date: Wed, 30 Jan 2013 17:18:07 +0000 Subject: [PATCH 4/7] updated xkcd random to use dbot api instead of function call. --- modules/link/link.js | 53 +++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/modules/link/link.js b/modules/link/link.js index 7dca608..9c26a76 100644 --- a/modules/link/link.js +++ b/modules/link/link.js @@ -20,20 +20,7 @@ var link = function(dbot) { } }); }; - - function outputComic(comicId,event){ - var link = "http://xkcd.com/"+comicId+"info.0.json"; - request(link, function(error, response, body) { - if (response.statusCode == "200") { - data = JSON.parse(body); - event.reply(dbot.t("xkcd",data)); - } else { - event.reply(dbot.t("no-hits")); - } - }); - } - - + var commands = { '~title': function(event) { var link = this.links[event.channel.name]; @@ -52,21 +39,31 @@ var link = function(dbot) { if(comicId == "*"){ request("http://xkcd.com/info.0.json", function(error, response, body){ if (response.statusCode == "200") { - data = JSON.parse(body); - comicId = data.num; - comicId = Math.floor(Math.random() * comicId); - comicId++; - comicId = comicId + "/"; - outputComic(comicId,event); - } + data = JSON.parse(body); + comicId = data.num; + comicId = (Math.floor(Math.random() * comicId) + 1); + event.message = '~xkcd ' + comicId; + event.action = 'PRIVMSG'; + event.params = event.message.split(' '); + dbot.instance.emit(event); + } }); - }else if(comicId){ - comicId = comicId + "/"; - outputComic(comicId,event); - } else { - comicId = ""; - outputComic(comicId,event); - } + }else { + if(comicId){ + comicId = comicId + "/"; + } else { + comicId = ""; + } + var link = "http://xkcd.com/"+comicId+"info.0.json"; + request(link, function(error, response, body) { + if (response.statusCode == "200") { + data = JSON.parse(body); + event.reply(dbot.t("xkcd",data)); + } else { + event.reply(dbot.t("no-hits")); + } + }); + } }, '~ud': function(event) { From 8d3d5d08a5bcd38b5101e58f613e48918091ecf0 Mon Sep 17 00:00:00 2001 From: Daniel Dowling Date: Wed, 30 Jan 2013 17:23:53 +0000 Subject: [PATCH 5/7] Update modules/link/link.js indent fix test --- modules/link/link.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/link/link.js b/modules/link/link.js index 9c26a76..37d4945 100644 --- a/modules/link/link.js +++ b/modules/link/link.js @@ -88,7 +88,6 @@ var link = function(dbot) { var urlMatches = event.message.match(this.urlRegex); if(urlMatches !== null) { this.links[event.channel.name] = urlMatches[0]; - if(dbot.config.link.autoTitle == true) { this.fetchTitle(event, urlMatches[0]); } From 5f0bcd771060fa9241b78ec0b0e47817d51caf0c Mon Sep 17 00:00:00 2001 From: Daniel Dowling Date: Wed, 30 Jan 2013 17:28:34 +0000 Subject: [PATCH 6/7] Update modules/link/link.js Tab fix attempt 2 --- modules/link/link.js | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/modules/link/link.js b/modules/link/link.js index 37d4945..5382f56 100644 --- a/modules/link/link.js +++ b/modules/link/link.js @@ -34,11 +34,10 @@ var link = function(dbot) { }, '~xkcd': function(event) { - var comicId = event.params[1]; - - if(comicId == "*"){ - request("http://xkcd.com/info.0.json", function(error, response, body){ - if (response.statusCode == "200") { + var comicId = event.params[1]; + if(comicId == "*"){ + request("http://xkcd.com/info.0.json", function(error, response, body){ + if (response.statusCode == "200") { data = JSON.parse(body); comicId = data.num; comicId = (Math.floor(Math.random() * comicId) + 1); @@ -47,21 +46,21 @@ var link = function(dbot) { event.params = event.message.split(' '); dbot.instance.emit(event); } - }); - }else { - if(comicId){ - comicId = comicId + "/"; - } else { - comicId = ""; - } - var link = "http://xkcd.com/"+comicId+"info.0.json"; - request(link, function(error, response, body) { - if (response.statusCode == "200") { - data = JSON.parse(body); - event.reply(dbot.t("xkcd",data)); - } else { - event.reply(dbot.t("no-hits")); - } + }); + }else { + if(comicId){ + comicId = comicId + "/"; + } else { + comicId = ""; + } + var link = "http://xkcd.com/"+comicId+"info.0.json"; + request(link, function(error, response, body) { + if (response.statusCode == "200") { + data = JSON.parse(body); + event.reply(dbot.t("xkcd",data)); + } else { + event.reply(dbot.t("no-hits")); + } }); } }, From c3e569be41207c816576e27be7a2777c12d11997 Mon Sep 17 00:00:00 2001 From: Daniel Dowling Date: Wed, 30 Jan 2013 17:31:06 +0000 Subject: [PATCH 7/7] Update modules/link/link.js Tab fix three: Revenge of the tabs --- modules/link/link.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/link/link.js b/modules/link/link.js index 5382f56..cf26bc6 100644 --- a/modules/link/link.js +++ b/modules/link/link.js @@ -61,21 +61,21 @@ var link = function(dbot) { } else { event.reply(dbot.t("no-hits")); } - }); - } - }, + }); + } + }, '~ud': function(event) { - var query = event.input[1]; + var query = event.input[1]; var reqUrl = 'http://api.urbandictionary.com/v0/define?term=' + encodeURI(query); request(reqUrl, function(error, response, body) { try { - var result = JSON.parse(body); - if(_.has(result, 'result_type') && result.result_type != 'no_results') { - event.reply(query + ': ' + result.list[0].definition.split('\n')[0]); - } else { - event.reply(event.user + ': No definition found.'); - } + var result = JSON.parse(body); + if(_.has(result, 'result_type') && result.result_type != 'no_results') { + event.reply(query + ': ' + result.list[0].definition.split('\n')[0]); + } else { + event.reply(event.user + ': No definition found.'); + } } catch(err) { } }); }