Limit preview for large image files (fix #500)
This commit is contained in:
parent
9572bbd65d
commit
e5858744a2
@ -64,6 +64,17 @@ module.exports = {
|
|||||||
//
|
//
|
||||||
prefetch: false,
|
prefetch: false,
|
||||||
|
|
||||||
|
//
|
||||||
|
// Prefetch URLs Image Preview size limit
|
||||||
|
//
|
||||||
|
// If prefetch is enabled, Shout will only display content under the maximum size.
|
||||||
|
// Default value is 512 (in kB)
|
||||||
|
//
|
||||||
|
// @type int
|
||||||
|
// @default 512
|
||||||
|
//
|
||||||
|
prefetchMaxImageSize: 512,
|
||||||
|
|
||||||
//
|
//
|
||||||
// Display network
|
// Display network
|
||||||
//
|
//
|
||||||
|
@ -52,6 +52,7 @@ module.exports = function(irc, network) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function parse(msg, url, res, client) {
|
function parse(msg, url, res, client) {
|
||||||
|
var config = Helper.getConfig();
|
||||||
var toggle = msg.toggle = {
|
var toggle = msg.toggle = {
|
||||||
id: msg.id,
|
id: msg.id,
|
||||||
type: "",
|
type: "",
|
||||||
@ -61,6 +62,9 @@ function parse(msg, url, res, client) {
|
|||||||
link: url
|
link: url
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (!config.prefetchMaxImageSize) {
|
||||||
|
config.prefetchMaxImageSize = 512;
|
||||||
|
}
|
||||||
switch (res.type) {
|
switch (res.type) {
|
||||||
case "text/html":
|
case "text/html":
|
||||||
var $ = cheerio.load(res.text);
|
var $ = cheerio.load(res.text);
|
||||||
@ -80,7 +84,12 @@ function parse(msg, url, res, client) {
|
|||||||
case "image/gif":
|
case "image/gif":
|
||||||
case "image/jpg":
|
case "image/jpg":
|
||||||
case "image/jpeg":
|
case "image/jpeg":
|
||||||
|
if (res.size < (config.prefetchMaxImageSize * 1024)) {
|
||||||
toggle.type = "image";
|
toggle.type = "image";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -116,6 +125,7 @@ function fetch(url, cb) {
|
|||||||
if (err) return;
|
if (err) return;
|
||||||
var body;
|
var body;
|
||||||
var type;
|
var type;
|
||||||
|
var size = req.response.headers["content-length"];
|
||||||
try {
|
try {
|
||||||
body = JSON.parse(data);
|
body = JSON.parse(data);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -129,7 +139,8 @@ function fetch(url, cb) {
|
|||||||
data = {
|
data = {
|
||||||
text: data,
|
text: data,
|
||||||
body: body,
|
body: body,
|
||||||
type: type
|
type: type,
|
||||||
|
size: size
|
||||||
};
|
};
|
||||||
cb(data);
|
cb(data);
|
||||||
}));
|
}));
|
||||||
|
Loading…
Reference in New Issue
Block a user