Merge pull request #1254 from thelounge/xpaw/thumb-is-img

Make sure thumbnail is a valid image
This commit is contained in:
Jérémie Astori 2017-06-26 01:46:20 -04:00 committed by GitHub
commit 147a36adde

View File

@ -62,6 +62,25 @@ function parse(msg, url, res, client) {
$("meta[property=\"og:image\"]").attr("content") $("meta[property=\"og:image\"]").attr("content")
|| $("meta[name=\"twitter:image:src\"]").attr("content") || $("meta[name=\"twitter:image:src\"]").attr("content")
|| ""; || "";
// Make sure thumbnail is a valid url
if (!/^https?:\/\//.test(toggle.thumb)) {
toggle.thumb = "";
}
// Verify that thumbnail pic exists and is under allowed size
if (toggle.thumb.length) {
fetch(escapeHeader(toggle.thumb), (resThumb) => {
if (!(/^image\/.+/.test(resThumb.type)) || resThumb.size > (Helper.config.prefetchMaxImageSize * 1024)) {
toggle.thumb = "";
}
client.emit("toggle", toggle);
});
return;
}
break; break;
case "image/png": case "image/png":
@ -100,7 +119,7 @@ function fetch(url, cb) {
var limit = Helper.config.prefetchMaxImageSize * 1024; var limit = Helper.config.prefetchMaxImageSize * 1024;
req req
.on("response", function(res) { .on("response", function(res) {
if (!(/(image\/.+)/.test(res.headers["content-type"]))) { if (!(/^image\/.+/.test(res.headers["content-type"]))) {
// if not image, limit download to 10kb, since we need only meta tags // if not image, limit download to 10kb, since we need only meta tags
limit = 1024 * 10; limit = 1024 * 10;
} }