X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Fvideo%2Fvideo-file.ts;h=e08999385b5bb7ee9367ba99f343b3d11c2f03bf;hb=0374b6b5cd685316f924874b2a3068bb345eb0dd;hp=cacef0106e71e144a536d80bb79208972491afd5;hpb=d7a25329f9e607894d29ab342b9cb66638b56dc0;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/video/video-file.ts b/server/models/video/video-file.ts index cacef0106..e08999385 100644 --- a/server/models/video/video-file.ts +++ b/server/models/video/video-file.ts @@ -24,9 +24,10 @@ import { VideoModel } from './video' import { VideoRedundancyModel } from '../redundancy/video-redundancy' import { VideoStreamingPlaylistModel } from './video-streaming-playlist' import { FindOptions, Op, QueryTypes, Transaction } from 'sequelize' -import { MIMETYPES } from '../../initializers/constants' +import { MIMETYPES, MEMOIZE_LENGTH, MEMOIZE_TTL } from '../../initializers/constants' import { MVideoFile, MVideoFileStreamingPlaylistVideo, MVideoFileVideo } from '../../typings/models/video/video-file' -import { MStreamingPlaylist, MStreamingPlaylistVideo, MVideo } from '@server/typings/models' +import { MStreamingPlaylistVideo, MVideo } from '@server/typings/models' +import * as memoizee from 'memoizee' @Table({ tableName: 'videoFile', @@ -138,6 +139,12 @@ export class VideoFileModel extends Model { }) RedundancyVideos: VideoRedundancyModel[] + static doesInfohashExistCached = memoizee(VideoFileModel.doesInfohashExist, { + promise: true, + max: MEMOIZE_LENGTH.INFO_HASH_EXISTS, + maxAge: MEMOIZE_TTL.INFO_HASH_EXISTS + }) + static doesInfohashExist (infoHash: string) { const query = 'SELECT 1 FROM "videoFile" WHERE "infoHash" = $infoHash LIMIT 1' const options = {