coabot/src/url_metadata.js

34 lines
1.1 KiB
JavaScript
Raw Normal View History

2019-09-14 02:03:02 +00:00
const bot = require('bbot');
const request = require('request');
2019-09-14 13:29:56 +00:00
bot.global.text(/(https?:\/\/[^ ,\)"]*)/ig, (b) => {
// console.log(JSON.stringify(b.envelope.payload, null, 2));
2019-09-14 13:29:56 +00:00
for (url of b.match) {
// console.log(JSON.stringify(url, null, 2));
if (!/(coa|pad)\.crapaud-fou\.org/.test(url)) {
request(url, (err, res, body) => {
if (!err) {
2019-09-15 01:21:37 +00:00
// console.log(JSON.stringify(res.request.uri.href, null, 2));
2019-09-14 13:29:56 +00:00
var re = /<title[^>]*>([^<]*)<\/title>/gi;
var match = re.exec(body);
if (match && match[1]) {
var extra = "";
var link = res.request.uri.href;
2019-09-15 09:45:01 +00:00
if (/youtube.com/.test(link)) {
if (t = /[?&]v=([^&]+)/.exec(link)) {
link = "https://www.youtube.com/watch?v=" + t[1];
extra += " - [no-cookie](https://www.youtube-nocookie.com/embed/" + t[1] + ")";
2019-09-15 07:34:08 +00:00
extra += " - [invidious](https://invidio.us/watch?v=" + t[1] + ")";
}
}
2019-09-15 01:21:11 +00:00
b.respond("[:link:](" + link + ") _" + match[1] + "_" + extra);
2019-09-14 13:29:56 +00:00
}
}
2019-09-14 13:29:56 +00:00
});
}
}
2019-09-14 02:03:02 +00:00
}, {
id: 'get-url-metadata'
});