f0ckv1/src/trigger/parser.js

59 lines
2.4 KiB
JavaScript
Raw Normal View History

2016-08-23 11:23:25 +00:00
var fs = require('fs-extra');
var uuid = require('uuid');
2016-08-23 15:50:30 +00:00
var path = require('path');
2016-08-23 11:23:25 +00:00
module.exports = (bot, trigger, lib) => {
trigger.add({
name: 'parser',
2016-08-24 20:02:20 +00:00
call: /https?:\/\/[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?/gi,
2016-08-23 11:23:25 +00:00
level: 0,
2016-08-24 07:55:40 +00:00
active: 1,
2016-08-23 11:23:25 +00:00
func: (e) => {
2016-08-23 17:37:28 +00:00
if(e.channel.getName() == '#f0ck') {
2016-08-23 17:36:16 +00:00
if(!e.message.match(/\!ignore$/)) {
var tmp = e.message.match(/https?:\/\/[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?/gi); // get links
tmp.forEach((entry,i,a) => {
var tmpdest = uuid.v1().split('-')[0];
lib.dl(entry, "./b/"+tmpdest, (cb) => { // download item
if(cb.status === true) {
lib.getUser(e, (cbgu) => {
lib.getCheckSum("./b/"+tmpdest+"."+cb.infos.ext, (cbcs) => {
lib.checkRepostCheckSum(cbcs, (cbcrcs) => {
if(cbcrcs) {
lib.sql.query("insert into `f0ck`.`items` (`src`,`dest`,`mime`,`size`,`checksum`,`username`,`userchannel`,`usernetwork`,`stamp`,`active`) values (?,?,?,?,?,?,?,?,?,?)", [
entry,
"./b/"+tmpdest+"."+cb.infos.ext,
cb.infos.mime,
cb.infos.size,
cbcs,
cbgu['nick'],
e.channel.getName(),
e.network,
Math.floor(new Date() / 1000),
0
]).on('result', (result) => {
lib.generateThumbs();
e.reply("https://f0ck.me/"+result.insertId+" - "+path.parse(entry).base+" ("+cb.infos.mime+", ~"+lib.formatSize(cb.infos.size)+") from "+cbgu['nick']+" ("+cbgu['username']+"@"+cbgu['hostname']+")");
}).on('error', (msg) => {
e.reply(msg);
});
}
else {
fs.unlink("./b/"+tmpdest+"."+cb.infos.ext); // delete repost
e.reply("repost motherf0cker");
}
});
2016-08-23 11:23:25 +00:00
});
});
2016-08-23 17:36:16 +00:00
}
else
if(cb.type == 1)
e.reply(cb.msg);
});
2016-08-23 11:23:25 +00:00
});
2016-08-23 17:36:16 +00:00
}
2016-08-23 11:23:25 +00:00
}
},
desc: 'muh'
});
};