+ /* ************ Views per IP ************ */
+
+ setIPVideoView (ip: string, videoUUID: string, isLive: boolean) {
+ const lifetime = isLive
+ ? VIEW_LIFETIME.LIVE
+ : VIEW_LIFETIME.VIDEO
+
+ return this.setValue(this.generateViewKey(ip, videoUUID), '1', lifetime)
+ }
+
+ async doesVideoIPViewExist (ip: string, videoUUID: string) {
+ return this.exists(this.generateViewKey(ip, videoUUID))
+ }
+
+ /* ************ Tracker IP block ************ */
+
+ setTrackerBlockIP (ip: string) {
+ return this.setValue(this.generateTrackerBlockIPKey(ip), '1', TRACKER_RATE_LIMITS.BLOCK_IP_LIFETIME)
+ }
+
+ async doesTrackerBlockIPExist (ip: string) {
+ return this.exists(this.generateTrackerBlockIPKey(ip))
+ }
+
+ /* ************ API cache ************ */
+