-import { createClient, RedisClientOptions, RedisModules, RedisScripts } from 'redis'
+import { createClient, RedisClientOptions, RedisModules } from 'redis'
import { exists } from '@server/helpers/custom-validators/misc'
import { sha256 } from '@shared/extra-utils'
import { logger } from '../helpers/logger'
WEBSERVER
} from '../initializers/constants'
-// Only used for typings
-// TODO: remove when https://github.com/microsoft/TypeScript/issues/37181 is fixed
-const redisClientWrapperForType = () => createClient<{}, RedisScripts>()
-
class Redis {
private static instance: Redis
private initialized = false
private connected = false
- private client: ReturnType<typeof redisClientWrapperForType>
+ private client: ReturnType<typeof createClient>
private prefix: string
private constructor () {
return this.setValue(this.generateIPViewKey(ip, videoUUID), '1', VIEW_LIFETIME.VIEW)
}
- setIPVideoViewer (ip: string, videoUUID: string) {
- return this.setValue(this.generateIPViewerKey(ip, videoUUID), '1', VIEW_LIFETIME.VIEWER)
- }
-
async doesVideoIPViewExist (ip: string, videoUUID: string) {
return this.exists(this.generateIPViewKey(ip, videoUUID))
}
- async doesVideoIPViewerExist (ip: string, videoUUID: string) {
- return this.exists(this.generateIPViewerKey(ip, videoUUID))
- }
-
/* ************ Tracker IP block ************ */
setTrackerBlockIP (ip: string) {
return this.deleteKey('resumable-upload-' + uploadId)
}
- /* ************ AP ressource unavailability ************ */
+ /* ************ AP resource unavailability ************ */
async addAPUnavailability (url: string) {
const key = this.generateAPUnavailabilityKey(url)
return `views-${videoUUID}-${ip}`
}
- private generateIPViewerKey (ip: string, videoUUID: string) {
- return `viewer-${videoUUID}-${ip}`
- }
-
private generateTrackerBlockIPKey (ip: string) {
return `tracker-block-ip-${ip}`
}