u
This commit is contained in:
@@ -42,38 +42,55 @@ export default function addImage(provider) {
|
||||
|
||||
const sortResult = await runner.query(getSortSql, { categoryId });
|
||||
const sort = sortResult.rows[0].sort;
|
||||
const fullHash = newFullHash();
|
||||
const fullHash = newFullHash(processed.full.buffer);
|
||||
|
||||
if (isSqlite) {
|
||||
if (runner.writePicFull) {
|
||||
await runner.writePicFull(fullHash, processed.full.buffer);
|
||||
await runner.writePicThumb(fullHash, processed.thumb.buffer);
|
||||
} else if (provider?.writePicFull) {
|
||||
await provider.writePicFull(fullHash, processed.full.buffer);
|
||||
await provider.writePicThumb(fullHash, processed.thumb.buffer);
|
||||
let picId;
|
||||
const existingPic = await runner.query(
|
||||
'SELECT id FROM pic WHERE hash = @fullHash',
|
||||
{ fullHash },
|
||||
);
|
||||
|
||||
if (existingPic.rows[0]) {
|
||||
picId = existingPic.rows[0].id;
|
||||
} else {
|
||||
if (isSqlite) {
|
||||
if (runner.writePicFull) {
|
||||
await runner.writePicFull(fullHash, processed.full.buffer);
|
||||
await runner.writePicThumb(fullHash, processed.thumb.buffer);
|
||||
} else if (provider?.writePicFull) {
|
||||
await provider.writePicFull(fullHash, processed.full.buffer);
|
||||
await provider.writePicThumb(fullHash, processed.thumb.buffer);
|
||||
}
|
||||
}
|
||||
|
||||
const picResult = await runner.query(createPicSql, {
|
||||
w: processed.full.w,
|
||||
h: processed.full.h,
|
||||
size: processed.full.size,
|
||||
hash: fullHash,
|
||||
thumbw: processed.thumb.w,
|
||||
thumbh: processed.thumb.h,
|
||||
thumbhash: processed.thumb.hash,
|
||||
source: '',
|
||||
fullbinary: processed.full.buffer,
|
||||
thumbbinary: processed.thumb.buffer,
|
||||
});
|
||||
|
||||
picId = picResult.rows[0]?.id ?? picResult.insertId;
|
||||
}
|
||||
|
||||
const picResult = await runner.query(createPicSql, {
|
||||
w: processed.full.w,
|
||||
h: processed.full.h,
|
||||
size: processed.full.size,
|
||||
hash: fullHash,
|
||||
thumbw: processed.thumb.w,
|
||||
thumbh: processed.thumb.h,
|
||||
thumbhash: processed.thumb.hash,
|
||||
source: '',
|
||||
fullbinary: processed.full.buffer,
|
||||
thumbbinary: processed.thumb.buffer,
|
||||
});
|
||||
const existingCategoryPic = await runner.query(
|
||||
'SELECT id, sort FROM categorypic WHERE category_id = @categoryId AND pic_id = @picId',
|
||||
{ categoryId, picId },
|
||||
);
|
||||
|
||||
const picId = picResult.rows[0]?.id ?? picResult.insertId;
|
||||
|
||||
await runner.query(addCategoryPicSql, {
|
||||
categoryId,
|
||||
picId,
|
||||
sort,
|
||||
});
|
||||
if (!existingCategoryPic.rows[0]) {
|
||||
await runner.query(addCategoryPicSql, {
|
||||
categoryId,
|
||||
picId,
|
||||
sort,
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
id: categoryId,
|
||||
|
||||
Reference in New Issue
Block a user