fixing mysql random error
This commit is contained in:
parent
2110054f43
commit
5625f37d6b
@ -43,7 +43,7 @@ export class AdminMWs {
|
|||||||
Logger.info(LOG_TAG, 'new config:');
|
Logger.info(LOG_TAG, 'new config:');
|
||||||
Logger.info(LOG_TAG, JSON.stringify(Config, null, '\t'));
|
Logger.info(LOG_TAG, JSON.stringify(Config, null, '\t'));
|
||||||
|
|
||||||
ObjectManagerRepository.reset();
|
await ObjectManagerRepository.reset();
|
||||||
if (Config.Server.database.type !== DatabaseType.memory) {
|
if (Config.Server.database.type !== DatabaseType.memory) {
|
||||||
await ObjectManagerRepository.InitSQLManagers();
|
await ObjectManagerRepository.InitSQLManagers();
|
||||||
} else {
|
} else {
|
||||||
@ -80,6 +80,7 @@ export class AdminMWs {
|
|||||||
return next(new ErrorDTO(ErrorCodes.SETTINGS_ERROR, 'Settings error: ' + JSON.stringify(err, null, ' '), err));
|
return next(new ErrorDTO(ErrorCodes.SETTINGS_ERROR, 'Settings error: ' + JSON.stringify(err, null, ' '), err));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async updateVideoSettings(req: Request, res: Response, next: NextFunction) {
|
public static async updateVideoSettings(req: Request, res: Response, next: NextFunction) {
|
||||||
if ((typeof req.body === 'undefined') || (typeof req.body.settings === 'undefined')) {
|
if ((typeof req.body === 'undefined') || (typeof req.body.settings === 'undefined')) {
|
||||||
return next(new ErrorDTO(ErrorCodes.INPUT_ERROR, 'settings is needed'));
|
return next(new ErrorDTO(ErrorCodes.INPUT_ERROR, 'settings is needed'));
|
||||||
|
|||||||
@ -108,6 +108,7 @@ export class GalleryMWs {
|
|||||||
if (Config.Client.RandomPhoto.enabled === false) {
|
if (Config.Client.RandomPhoto.enabled === false) {
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
const query: RandomQuery = {};
|
const query: RandomQuery = {};
|
||||||
if (req.query.directory) {
|
if (req.query.directory) {
|
||||||
query.directory = req.query.directory;
|
query.directory = req.query.directory;
|
||||||
@ -144,7 +145,9 @@ export class GalleryMWs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
req.params.mediaPath = path.join(photo.directory.path, photo.directory.name, photo.name);
|
req.params.mediaPath = path.join(photo.directory.path, photo.directory.name, photo.name);
|
||||||
|
} catch (e) {
|
||||||
|
return next(new ErrorDTO(ErrorCodes.GENERAL_ERROR, 'Can\'t get random photo: ' + e.toString()));
|
||||||
|
}
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -174,7 +174,8 @@ export class ThumbnailGeneratorMWs {
|
|||||||
await this.taskQue.execute(input);
|
await this.taskQue.execute(input);
|
||||||
return next();
|
return next();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return next(new ErrorDTO(ErrorCodes.THUMBNAIL_GENERATION_ERROR, 'Error during generating thumbnail: ' + input.mediaPath, error.toString()));
|
return next(new ErrorDTO(ErrorCodes.THUMBNAIL_GENERATION_ERROR,
|
||||||
|
'Error during generating thumbnail: ' + input.mediaPath, error.toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -10,10 +10,10 @@ import {Utils} from '../../../common/Utils';
|
|||||||
import {ProjectPath} from '../../ProjectPath';
|
import {ProjectPath} from '../../ProjectPath';
|
||||||
import {Config} from '../../../common/config/private/Config';
|
import {Config} from '../../../common/config/private/Config';
|
||||||
import {ISQLGalleryManager} from './IGalleryManager';
|
import {ISQLGalleryManager} from './IGalleryManager';
|
||||||
import {ReIndexingSensitivity} from '../../../common/config/private/IPrivateConfig';
|
import {DatabaseType, ReIndexingSensitivity} from '../../../common/config/private/IPrivateConfig';
|
||||||
import {PhotoDTO} from '../../../common/entities/PhotoDTO';
|
import {PhotoDTO} from '../../../common/entities/PhotoDTO';
|
||||||
import {OrientationType} from '../../../common/entities/RandomQueryDTO';
|
import {OrientationType} from '../../../common/entities/RandomQueryDTO';
|
||||||
import {Connection, Brackets} from 'typeorm';
|
import {Brackets, Connection} from 'typeorm';
|
||||||
import {MediaEntity} from './enitites/MediaEntity';
|
import {MediaEntity} from './enitites/MediaEntity';
|
||||||
import {MediaDTO} from '../../../common/entities/MediaDTO';
|
import {MediaDTO} from '../../../common/entities/MediaDTO';
|
||||||
import {VideoEntity} from './enitites/VideoEntity';
|
import {VideoEntity} from './enitites/VideoEntity';
|
||||||
@ -264,34 +264,36 @@ export class GalleryManager implements IGalleryManager, ISQLGalleryManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (queryFilter.fromDate) {
|
if (queryFilter.fromDate) {
|
||||||
query.andWhere('media.metadata.creationDate >= :fromDate', {
|
query.andWhere('photo.metadata.creationDate >= :fromDate', {
|
||||||
fromDate: queryFilter.fromDate.getTime()
|
fromDate: queryFilter.fromDate.getTime()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (queryFilter.toDate) {
|
if (queryFilter.toDate) {
|
||||||
query.andWhere('media.metadata.creationDate <= :toDate', {
|
query.andWhere('photo.metadata.creationDate <= :toDate', {
|
||||||
toDate: queryFilter.toDate.getTime()
|
toDate: queryFilter.toDate.getTime()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (queryFilter.minResolution) {
|
if (queryFilter.minResolution) {
|
||||||
query.andWhere('media.metadata.size.width * media.metadata.size.height >= :minRes', {
|
query.andWhere('photo.metadata.size.width * photo.metadata.size.height >= :minRes', {
|
||||||
minRes: queryFilter.minResolution * 1000 * 1000
|
minRes: queryFilter.minResolution * 1000 * 1000
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (queryFilter.maxResolution) {
|
if (queryFilter.maxResolution) {
|
||||||
query.andWhere('media.metadata.size.width * media.metadata.size.height <= :maxRes', {
|
query.andWhere('photo.metadata.size.width * photo.metadata.size.height <= :maxRes', {
|
||||||
maxRes: queryFilter.maxResolution * 1000 * 1000
|
maxRes: queryFilter.maxResolution * 1000 * 1000
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (queryFilter.orientation === OrientationType.landscape) {
|
if (queryFilter.orientation === OrientationType.landscape) {
|
||||||
query.andWhere('media.metadata.size.width >= media.metadata.size.height');
|
query.andWhere('photo.metadata.size.width >= photo.metadata.size.height');
|
||||||
}
|
}
|
||||||
if (queryFilter.orientation === OrientationType.portrait) {
|
if (queryFilter.orientation === OrientationType.portrait) {
|
||||||
query.andWhere('media.metadata.size.width <= media.metadata.size.height');
|
query.andWhere('photo.metadata.size.width <= photo.metadata.size.height');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Config.Server.database.type === DatabaseType.mysql) {
|
||||||
|
return await query.groupBy('RAND(), photo.id').limit(1).getOne();
|
||||||
|
}
|
||||||
return await query.groupBy('RANDOM()').limit(1).getOne();
|
return await query.groupBy('RANDOM()').limit(1).getOne();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user