1
0
mirror of https://github.com/xuthus83/pigallery2.git synced 2024-11-03 21:04:03 +08:00
pigallery2/backend/model/memory/GalleryManager.ts

27 lines
1.2 KiB
TypeScript
Raw Normal View History

import {DirectoryDTO} from "../../../common/entities/DirectoryDTO";
2016-12-27 23:09:47 +08:00
import {IGalleryManager} from "../interfaces/IGalleryManager";
2017-07-20 02:47:09 +08:00
import * as path from "path";
import * as fs from "fs";
2016-04-22 19:23:44 +08:00
import {DiskManager} from "../DiskManger";
2017-07-20 02:47:09 +08:00
import {ProjectPath} from "../../ProjectPath";
import {Config} from "../../../common/config/private/Config";
2017-07-28 05:10:16 +08:00
import {ReIndexingSensitivity} from "../../../common/config/private/IPrivateConfig";
2016-04-22 19:23:44 +08:00
2016-05-09 23:04:56 +08:00
export class GalleryManager implements IGalleryManager {
2016-04-22 19:23:44 +08:00
public listDirectory(relativeDirectoryName: string, knownLastModified?: number, knownLastScanned?: number): Promise<DirectoryDTO> {
2017-07-20 02:47:09 +08:00
//If it seems that the content did not changed, do not work on it
if (knownLastModified && knownLastScanned) {
const stat = fs.statSync(path.join(ProjectPath.ImageFolder, relativeDirectoryName));
const lastModified = Math.max(stat.ctime.getTime(), stat.mtime.getTime());
2017-07-28 05:10:16 +08:00
if (Date.now() - knownLastScanned <= Config.Server.indexing.cachedFolderTimeout &&
lastModified == knownLastModified &&
Config.Server.indexing.reIndexingSensitivity < ReIndexingSensitivity.high) {
return Promise.resolve(null);
2017-07-20 02:47:09 +08:00
}
}
2017-07-04 01:17:49 +08:00
return DiskManager.scanDirectory(relativeDirectoryName);
}
2016-04-22 19:23:44 +08:00
2017-07-04 01:17:49 +08:00
}