diff --git a/src/main.js b/src/main.js index 4214a44..f8b8888 100644 --- a/src/main.js +++ b/src/main.js @@ -1,5 +1,6 @@ var cfg = require('../../cfg.json'); var fs = require('fs'); +var http = require("http"); var https = require("https"); var mysql = require('mysql'); var bot = require('coffea')(); @@ -28,8 +29,8 @@ bot.on('motd', (e) => { bot.on('message', (e) => { var orig = e.message; if(e.channel.getName().toString() == "#f0ck") { // (debug) only in channel #f0ck - if(orig.match(/(https?:\/\/)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?/gi)) { // shitpostcatcher - var tmp = orig.match(/(https?:\/\/)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?/gi); // get links + if(orig.match(/https?:\/\/[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?/gi)) { // shitpostcatcher + var tmp = orig.match(/https?:\/\/[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?/gi); // get links tmp.forEach((entry,i,a) => { dl(entry, "./b/"+path.parse(entry).base, (cb) => { // download item e.reply(cb); @@ -53,16 +54,42 @@ var getUser = (u, n) => { var dl = (url, dest, cb) => { var file = fs.createWriteStream(dest); - var request = https.get(url, (response) => { - response.pipe(file); - file.on('finish', () => { - file.close(); - cb('downloaded '+dest); + if(url.match(/https/)) { + var request = https.get(url, (response) => { + try { + response.pipe(file); + file.on('finish', () => { + file.close(); + cb('(https) downloaded '+dest); + }); + file.on('error', (err) => { + fs.unlink(dest); + file.close(); + cb(err.message); + }); + } + catch(ex) { + e.reply(ex); + } }); - file.on('error', (err) => { - fs.unlink(dest); - file.close(); - cb(err.message); + } + else { + var request = http.get(url, (response) => { + try { + response.pipe(file); + file.on('finish', () => { + file.close(); + cb('(http) downloaded '+dest); + }); + file.on('error', (err) => { + fs.unlink(dest); + file.close(); + cb(err.message); + }); + } + catch(ex) { + e.reply(ex); + } }); - }); + } } \ No newline at end of file