Catching media store fail unlink error to prevent batch failure.
This commit is contained in:
parent
430d7a8cdd
commit
eeb947d311
|
@ -172,6 +172,7 @@ function photos() {
|
||||||
const photosWithClipPosters = (this.release.photos || []).concat(this.release.caps || []).concat(this.release.scenesPhotos || []).concat(uniqueClipPosters);
|
const photosWithClipPosters = (this.release.photos || []).concat(this.release.caps || []).concat(this.release.scenesPhotos || []).concat(uniqueClipPosters);
|
||||||
|
|
||||||
if (this.release.trailer || (this.release.teaser && this.release.teaser.mime !== 'image/gif')) {
|
if (this.release.trailer || (this.release.teaser && this.release.teaser.mime !== 'image/gif')) {
|
||||||
|
// if (this.release.trailer) {
|
||||||
// poster will be on trailer video
|
// poster will be on trailer video
|
||||||
return photosWithClipPosters;
|
return photosWithClipPosters;
|
||||||
}
|
}
|
||||||
|
|
14
src/media.js
14
src/media.js
|
@ -426,11 +426,11 @@ async function writeImage(image, media, info, filepath, isProcessed) {
|
||||||
|
|
||||||
async function writeThumbnail(image, thumbpath) {
|
async function writeThumbnail(image, thumbpath) {
|
||||||
return image
|
return image
|
||||||
|
.jpeg({ quality: config.media.thumbnailQuality })
|
||||||
.resize({
|
.resize({
|
||||||
height: config.media.thumbnailSize,
|
height: config.media.thumbnailSize,
|
||||||
withoutEnlargement: true,
|
withoutEnlargement: true,
|
||||||
})
|
})
|
||||||
.jpeg({ quality: config.media.thumbnailQuality })
|
|
||||||
.rotate()
|
.rotate()
|
||||||
.toFile(path.join(config.media.path, thumbpath));
|
.toFile(path.join(config.media.path, thumbpath));
|
||||||
}
|
}
|
||||||
|
@ -463,7 +463,7 @@ async function storeImageFile(media, hashDir, hashSubDir, filename, filedir, fil
|
||||||
fsPromises.mkdir(path.join(config.media.path, lazydir), { recursive: true }),
|
fsPromises.mkdir(path.join(config.media.path, lazydir), { recursive: true }),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const image = sharp(media.file.path, { pages: -1 });
|
const image = sharp(media.file.path, { pages: ['trailer', 'teaser'].includes(media.role) ? -1 : 1 }); // don't store posters as animation
|
||||||
const isProcessed = media.meta.subtype !== 'jpeg' || media.process;
|
const isProcessed = media.meta.subtype !== 'jpeg' || media.process;
|
||||||
|
|
||||||
const [info, stats] = await Promise.all([
|
const [info, stats] = await Promise.all([
|
||||||
|
@ -490,8 +490,8 @@ async function storeImageFile(media, hashDir, hashSubDir, filename, filedir, fil
|
||||||
await writeImage(image, media, info, filepath, isProcessed);
|
await writeImage(image, media, info, filepath, isProcessed);
|
||||||
|
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
writeThumbnail(image, thumbpath),
|
writeThumbnail(image, thumbpath, info),
|
||||||
writeLazy(image, lazypath),
|
writeLazy(image, lazypath, info),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -603,7 +603,11 @@ async function storeFile(media, options) {
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.warn(`Failed to store ${media.src}: ${error.message}`);
|
logger.warn(`Failed to store ${media.src}: ${error.message}`);
|
||||||
|
|
||||||
await fsPromises.unlink(media.file.path);
|
try {
|
||||||
|
await fsPromises.unlink(media.file.path);
|
||||||
|
} catch (unlinkError) {
|
||||||
|
logger.warn(`Failed to unlink ${media.file.path} from ${media.src}: ${unlinkError.message}`);
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const unprint = require('unprint');
|
const unprint = require('unprint');
|
||||||
|
const mime = require('mime');
|
||||||
|
|
||||||
const http = require('../utils/http');
|
const http = require('../utils/http');
|
||||||
const qu = require('../utils/qu');
|
const qu = require('../utils/qu');
|
||||||
const slugify = require('../utils/slugify');
|
const slugify = require('../utils/slugify');
|
||||||
const { lbsToKg, feetInchesToCm } = require('../utils/convert');
|
const { lbsToKg, feetInchesToCm } = require('../utils/convert');
|
||||||
|
|
||||||
const teaserOrder = ['large', 'small', 'mobile'];
|
const teaserOrder = ['large', 'small', 'mobile', 'mp4', 'jpg'];
|
||||||
|
|
||||||
function scrapeSceneMetadata(data, channel) {
|
function scrapeSceneMetadata(data, channel) {
|
||||||
const release = {};
|
const release = {};
|
||||||
|
@ -71,7 +72,16 @@ function scrapeSceneApi(data, channel, parameters) {
|
||||||
avatar: actor.thumb,
|
avatar: actor.thumb,
|
||||||
})) || data.models;
|
})) || data.models;
|
||||||
|
|
||||||
release.poster = data.trailer_screencap || data.thumb;
|
release.poster = data.trailer_screencap;
|
||||||
|
|
||||||
|
if (mime.getType(data.thumb) !== 'image/gif') {
|
||||||
|
release.teaser = data.thumb;
|
||||||
|
} else {
|
||||||
|
release.poster = [
|
||||||
|
release.poster,
|
||||||
|
data.thumb,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
release.photos = [
|
release.photos = [
|
||||||
...data.previews?.full || [],
|
...data.previews?.full || [],
|
||||||
|
|
Loading…
Reference in New Issue