Added dark and SFW modes.
This commit is contained in:
48
src/media.js
48
src/media.js
@@ -22,11 +22,32 @@ function getHash(buffer) {
|
||||
return hash.digest('hex');
|
||||
}
|
||||
|
||||
async function createThumbnail(buffer) {
|
||||
async function getMeta(buffer, withHash = false) {
|
||||
try {
|
||||
const { entropy } = await sharp(buffer).stats();
|
||||
const { width, height, size } = await sharp(buffer).metadata();
|
||||
|
||||
const hash = withHash && getHash(buffer);
|
||||
|
||||
return {
|
||||
width,
|
||||
height,
|
||||
size,
|
||||
entropy,
|
||||
hash,
|
||||
};
|
||||
} catch (error) {
|
||||
logger.warn(`Failed to retrieve image entropy, using 7.5: ${error.message}`);
|
||||
|
||||
return 7.5;
|
||||
}
|
||||
}
|
||||
|
||||
async function createThumbnail(buffer, height = config.media.thumbnailSize) {
|
||||
try {
|
||||
const thumbnail = sharp(buffer)
|
||||
.resize({
|
||||
height: config.media.thumbnailSize,
|
||||
height,
|
||||
withoutEnlargement: true,
|
||||
})
|
||||
.jpeg({
|
||||
@@ -101,24 +122,6 @@ function pickQuality(items) {
|
||||
return item || items[0];
|
||||
}
|
||||
|
||||
async function getMeta(buffer) {
|
||||
try {
|
||||
const { entropy } = await sharp(buffer).stats();
|
||||
const { width, height, size } = await sharp(buffer).metadata();
|
||||
|
||||
return {
|
||||
width,
|
||||
height,
|
||||
size,
|
||||
entropy,
|
||||
};
|
||||
} catch (error) {
|
||||
logger.warn(`Failed to retrieve image entropy, using 7.5: ${error.message}`);
|
||||
|
||||
return 7.5;
|
||||
}
|
||||
}
|
||||
|
||||
async function extractItem(source) {
|
||||
// const res = await bhttp.get(source.src);
|
||||
const res = await get(source.src);
|
||||
@@ -434,7 +437,10 @@ async function associateMedia(sourcesByTargetId, mediaBySource, domain, role, pr
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
associateMedia,
|
||||
createThumbnail,
|
||||
getHash,
|
||||
getMeta,
|
||||
pluckItems,
|
||||
storeMedia,
|
||||
associateMedia,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user