diff --git a/modules/link/README.md b/modules/link/README.md index 24c52d0..21de8ef 100644 --- a/modules/link/README.md +++ b/modules/link/README.md @@ -21,3 +21,5 @@ page. If called without a link, the bot will attempt the same on the last link 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. diff --git a/modules/link/link.js b/modules/link/link.js index dfe5f70..201d364 100644 --- a/modules/link/link.js +++ b/modules/link/link.js @@ -32,6 +32,24 @@ var link = function(dbot) { } this.fetchTitle(event, link); }, + + '~xkcd': function(event) { + var comicId = event.params[1]; + 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) { var query = event.input[1]; diff --git a/modules/link/strings.json b/modules/link/strings.json index 2709f1d..935e635 100644 --- a/modules/link/strings.json +++ b/modules/link/strings.json @@ -2,5 +2,11 @@ "title_not_found": { "english": "No page title found.", "na'vi": "Oel ke tsun run 'upxare atxin." + }, + "xkcd": { + "english": "xkcd {num}: {title} https://xkcd.com/{num}" + }, + "no-hits": { + "english": "No hits." } }