Update database migration
This commit is contained in:
parent
898a2dde78
commit
8e3c3841a4
|
@ -5,6 +5,9 @@ const { path } = require('fs-jetpack');
|
|||
const sharp = require('sharp');
|
||||
const ffmpeg = require('fluent-ffmpeg');
|
||||
|
||||
const imageExtensions = ['.jpg', '.jpeg', '.bmp', '.gif', '.png', '.webp'];
|
||||
const videoExtensions = ['.webm', '.mp4', '.wmv', '.avi', '.mov'];
|
||||
|
||||
const oldDb = require('knex')({
|
||||
client: 'sqlite3',
|
||||
connection: {
|
||||
|
@ -121,7 +124,13 @@ const start = async () => {
|
|||
albumId: file.albumid,
|
||||
fileId: file.id
|
||||
});
|
||||
generateThumbnails(file.name);
|
||||
|
||||
const filename = file.name;
|
||||
if (!jetpack.exists(nodePath.join(__dirname, '..', '..', 'uploads', filename))) continue;
|
||||
const ext = nodePath.extname(filename).toLowerCase();
|
||||
const output = `${filename.slice(0, -ext.length)}.webp`;
|
||||
if (imageExtensions.includes(ext)) await generateThumbnailForImage(filename, output);
|
||||
if (videoExtensions.includes(ext)) generateThumbnailForVideo(filename);
|
||||
}
|
||||
await newDb.batchInsert('files', filesToInsert, 20);
|
||||
await newDb.batchInsert('albumsFiles', albumsFilesToInsert, 20);
|
||||
|
@ -131,47 +140,45 @@ const start = async () => {
|
|||
process.exit(0);
|
||||
};
|
||||
|
||||
const imageExtensions = ['.jpg', '.jpeg', '.bmp', '.gif', '.png', '.webp'];
|
||||
const videoExtensions = ['.webm', '.mp4', '.wmv', '.avi', '.mov'];
|
||||
|
||||
const generateThumbnails = filename => {
|
||||
if (!jetpack.exists(nodePath.join(__dirname, '..', '..', 'uploads', filename))) return;
|
||||
|
||||
const ext = nodePath.extname(filename).toLowerCase();
|
||||
const output = `${filename.slice(0, -ext.length)}.webp`;
|
||||
if (imageExtensions.includes(ext)) return generateThumbnailForImage(filename, output);
|
||||
if (videoExtensions.includes(ext)) return generateThumbnailForVideo(filename);
|
||||
};
|
||||
|
||||
const generateThumbnailForImage = async (filename, output) => {
|
||||
const file = await jetpack.readAsync(nodePath.join(__dirname, '..', '..', 'uploads', filename), 'buffer');
|
||||
await sharp(file)
|
||||
.resize(64, 64)
|
||||
.toFormat('webp')
|
||||
.toFile(nodePath.join(__dirname, '..', '..', 'uploads', 'thumbs', 'square', output));
|
||||
await sharp(file)
|
||||
.resize(225, null)
|
||||
.toFormat('webp')
|
||||
.toFile(nodePath.join(__dirname, '..', '..', 'uploads', 'thumbs', output));
|
||||
try {
|
||||
const file = await jetpack.readAsync(nodePath.join(__dirname, '..', '..', 'uploads', filename), 'buffer');
|
||||
await sharp(file)
|
||||
.resize(64, 64)
|
||||
.toFormat('webp')
|
||||
.toFile(nodePath.join(__dirname, '..', '..', 'uploads', 'thumbs', 'square', output));
|
||||
await sharp(file)
|
||||
.resize(225, null)
|
||||
.toFormat('webp')
|
||||
.toFile(nodePath.join(__dirname, '..', '..', 'uploads', 'thumbs', output));
|
||||
console.log('finished', filename);
|
||||
} catch (error) {
|
||||
console.log('error', filename);
|
||||
}
|
||||
};
|
||||
|
||||
const generateThumbnailForVideo = filename => {
|
||||
ffmpeg(nodePath.join(__dirname, '..', '..', 'uploads', filename))
|
||||
.thumbnail({
|
||||
timestamps: [0],
|
||||
filename: '%b.png',
|
||||
folder: nodePath.join(__dirname, '..', '..', 'uploads', 'thumbs', 'square'),
|
||||
size: '64x64'
|
||||
})
|
||||
.on('error', error => console.error(error.message));
|
||||
ffmpeg(nodePath.join(__dirname, '..', '..', 'uploads', filename))
|
||||
.thumbnail({
|
||||
timestamps: [0],
|
||||
filename: '%b.png',
|
||||
folder: nodePath.join(__dirname, '..', '..', 'uploads', 'thumbs'),
|
||||
size: '150x?'
|
||||
})
|
||||
.on('error', error => console.error(error.message));
|
||||
try {
|
||||
ffmpeg(nodePath.join(__dirname, '..', '..', 'uploads', filename))
|
||||
.thumbnail({
|
||||
timestamps: [0],
|
||||
filename: '%b.png',
|
||||
folder: nodePath.join(__dirname, '..', '..', 'uploads', 'thumbs', 'square'),
|
||||
size: '64x64'
|
||||
})
|
||||
.on('error', error => console.error(error.message));
|
||||
ffmpeg(nodePath.join(__dirname, '..', '..', 'uploads', filename))
|
||||
.thumbnail({
|
||||
timestamps: [0],
|
||||
filename: '%b.png',
|
||||
folder: nodePath.join(__dirname, '..', '..', 'uploads', 'thumbs'),
|
||||
size: '150x?'
|
||||
})
|
||||
.on('error', error => console.error(error.message));
|
||||
console.log('finished', filename);
|
||||
} catch (error) {
|
||||
console.log('error', filename);
|
||||
}
|
||||
};
|
||||
|
||||
start();
|
||||
|
|
Loading…
Reference in New Issue