mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-02-25 18:55:32 -06:00
Add infohash cache
This commit is contained in:
@@ -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 { MStreamingPlaylistVideo, MVideo } from '@server/typings/models'
|
||||
import * as memoizee from 'memoizee'
|
||||
|
||||
@Table({
|
||||
tableName: 'videoFile',
|
||||
@@ -138,6 +139,12 @@ export class VideoFileModel extends Model<VideoFileModel> {
|
||||
})
|
||||
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 = {
|
||||
|
||||
@@ -5,7 +5,14 @@ import { VideoModel } from './video'
|
||||
import { VideoRedundancyModel } from '../redundancy/video-redundancy'
|
||||
import { VideoStreamingPlaylistType } from '../../../shared/models/videos/video-streaming-playlist.type'
|
||||
import { isActivityPubUrlValid } from '../../helpers/custom-validators/activitypub/misc'
|
||||
import { CONSTRAINTS_FIELDS, P2P_MEDIA_LOADER_PEER_VERSION, STATIC_DOWNLOAD_PATHS, STATIC_PATHS } from '../../initializers/constants'
|
||||
import {
|
||||
CONSTRAINTS_FIELDS,
|
||||
MEMOIZE_LENGTH,
|
||||
MEMOIZE_TTL,
|
||||
P2P_MEDIA_LOADER_PEER_VERSION,
|
||||
STATIC_DOWNLOAD_PATHS,
|
||||
STATIC_PATHS
|
||||
} from '../../initializers/constants'
|
||||
import { join } from 'path'
|
||||
import { sha1 } from '../../helpers/core-utils'
|
||||
import { isArrayOf } from '../../helpers/custom-validators/misc'
|
||||
@@ -13,6 +20,7 @@ import { Op, QueryTypes } from 'sequelize'
|
||||
import { MStreamingPlaylist, MVideoFile } from '@server/typings/models'
|
||||
import { VideoFileModel } from '@server/models/video/video-file'
|
||||
import { getTorrentFileName, getVideoFilename } from '@server/lib/video-paths'
|
||||
import * as memoizee from 'memoizee'
|
||||
|
||||
@Table({
|
||||
tableName: 'videoStreamingPlaylist',
|
||||
@@ -89,6 +97,12 @@ export class VideoStreamingPlaylistModel extends Model<VideoStreamingPlaylistMod
|
||||
})
|
||||
RedundancyVideos: VideoRedundancyModel[]
|
||||
|
||||
static doesInfohashExistCached = memoizee(VideoStreamingPlaylistModel.doesInfohashExist, {
|
||||
promise: true,
|
||||
max: MEMOIZE_LENGTH.INFO_HASH_EXISTS,
|
||||
maxAge: MEMOIZE_TTL.INFO_HASH_EXISTS
|
||||
})
|
||||
|
||||
static doesInfohashExist (infoHash: string) {
|
||||
const query = 'SELECT 1 FROM "videoStreamingPlaylist" WHERE $infoHash = ANY("p2pMediaLoaderInfohashes") LIMIT 1'
|
||||
const options = {
|
||||
|
||||
Reference in New Issue
Block a user