mirror of
https://github.com/xuthus83/pigallery2.git
synced 2025-01-14 14:43:17 +08:00
parent
c06620a795
commit
849ebbec9e
@ -16,8 +16,8 @@ import { PersonWithSampleRegion } from '../../../common/entities/PersonDTO';
|
||||
import {ServerTime} from '../ServerTimingMWs';
|
||||
|
||||
export class ThumbnailGeneratorMWs {
|
||||
private static ThumbnailMap: { [key: number]: number } =
|
||||
Config.Client.Media.Thumbnail.generateThumbnailMap();
|
||||
private static ThumbnailMapEntries =
|
||||
Config.Client.Media.Thumbnail.generateThumbnailMapEntries();
|
||||
|
||||
@ServerTime('2.th', 'Thumbnail decoration')
|
||||
public static async addThumbnailInformation(
|
||||
@ -34,6 +34,10 @@ export class ThumbnailGeneratorMWs {
|
||||
if (cw.notModified === true) {
|
||||
return next();
|
||||
}
|
||||
|
||||
// regenerate in case the list change since startup
|
||||
ThumbnailGeneratorMWs.ThumbnailMapEntries =
|
||||
Config.Client.Media.Thumbnail.generateThumbnailMapEntries();
|
||||
if (cw.directory) {
|
||||
ThumbnailGeneratorMWs.addThInfoTODir(cw.directory);
|
||||
}
|
||||
@ -209,8 +213,6 @@ export class ThumbnailGeneratorMWs {
|
||||
private static addThInfoTODir(
|
||||
directory: ParentDirectoryDTO | SubDirectoryDTO
|
||||
): void {
|
||||
ThumbnailGeneratorMWs.ThumbnailMap =
|
||||
Config.Client.Media.Thumbnail.generateThumbnailMap();
|
||||
if (typeof directory.media !== 'undefined') {
|
||||
ThumbnailGeneratorMWs.addThInfoToPhotos(directory.media);
|
||||
}
|
||||
@ -220,8 +222,8 @@ export class ThumbnailGeneratorMWs {
|
||||
}
|
||||
|
||||
private static addThInfoToPhotos(photos: MediaDTO[]): void {
|
||||
for (const item of photos) {
|
||||
this.addThInfoToAPhoto(item);
|
||||
for (let i = 0; i < photos.length; ++i) {
|
||||
this.addThInfoToAPhoto(photos[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -232,19 +234,18 @@ export class ThumbnailGeneratorMWs {
|
||||
photo.directory.name,
|
||||
photo.name
|
||||
);
|
||||
for (const _s of Object.keys(ThumbnailGeneratorMWs.ThumbnailMap)) {
|
||||
const size = parseInt(_s)
|
||||
for (let i = 0; i < ThumbnailGeneratorMWs.ThumbnailMapEntries.length; ++i) {
|
||||
const entry = ThumbnailGeneratorMWs.ThumbnailMapEntries[i];
|
||||
const thPath = PhotoProcessing.generateConvertedPath(
|
||||
fullMediaPath,
|
||||
size
|
||||
entry.size
|
||||
);
|
||||
if (fs.existsSync(thPath) !== true) {
|
||||
if (typeof photo.missingThumbnails === 'undefined') {
|
||||
photo.missingThumbnails = 0;
|
||||
}
|
||||
// this is a bitwise operation
|
||||
photo.missingThumbnails +=
|
||||
ThumbnailGeneratorMWs.ThumbnailMap[size];
|
||||
photo.missingThumbnails += entry.bit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -121,6 +121,13 @@ export class ClientThumbnailConfig {
|
||||
});
|
||||
return m;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a map for bitwise operation from icon and normal thumbnails
|
||||
*/
|
||||
generateThumbnailMapEntries(): { size: number, bit: number }[] {
|
||||
return Object.entries(this.generateThumbnailMap()).map(v => ({size: parseInt(v[0]), bit: v[1]}));
|
||||
}
|
||||
}
|
||||
|
||||
@SubConfigClass()
|
||||
|
@ -164,6 +164,10 @@ export class ContentWrapper {
|
||||
}
|
||||
}
|
||||
|
||||
if (m.missingThumbnails === 0) {
|
||||
delete m.missingThumbnails;
|
||||
}
|
||||
|
||||
if (MediaDTOUtils.isPhoto(m)) {
|
||||
delete (m as VideoDTO).metadata.bitRate;
|
||||
delete (m as VideoDTO).metadata.duration;
|
||||
|
@ -34,6 +34,9 @@ describe('ContentWrapper', () => {
|
||||
delete (m as PhotoDTO).metadata.faces;
|
||||
delete (m as PhotoDTO).metadata.positionData;
|
||||
}
|
||||
if (m.missingThumbnails === 0) {
|
||||
delete m.missingThumbnails;
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < content.metaFile.length; ++i) {
|
||||
delete content.metaFile[i].id;
|
||||
|
Loading…
x
Reference in New Issue
Block a user