]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/lib/files-cache/actor-follow-score-cache.ts
Merge branch 'release/1.4.0' into develop
[github/Chocobozzz/PeerTube.git] / server / lib / files-cache / actor-follow-score-cache.ts
index d070bde09fbdff1b15e27e1876e4488a759a7074..0866057263553267fb3f13d0c055381ff456cd70 100644 (file)
@@ -1,4 +1,4 @@
-import { ACTOR_FOLLOW_SCORE } from '../../initializers'
+import { ACTOR_FOLLOW_SCORE } from '../../initializers/constants'
 import { logger } from '../../helpers/logger'
 
 // Cache follows scores, instead of writing them too often in database
@@ -7,6 +7,8 @@ class ActorFollowScoreCache {
 
   private static instance: ActorFollowScoreCache
   private pendingFollowsScore: { [ url: string ]: number } = {}
+  private pendingBadServer = new Set<number>()
+  private pendingGoodServer = new Set<number>()
 
   private constructor () {}
 
@@ -32,7 +34,31 @@ class ActorFollowScoreCache {
     }
   }
 
-  getPendingFollowsScoreCopy () {
+  addBadServerId (serverId: number) {
+    this.pendingBadServer.add(serverId)
+  }
+
+  getBadFollowingServerIds () {
+    return Array.from(this.pendingBadServer)
+  }
+
+  clearBadFollowingServerIds () {
+    this.pendingBadServer = new Set<number>()
+  }
+
+  addGoodServerId (serverId: number) {
+    this.pendingGoodServer.add(serverId)
+  }
+
+  getGoodFollowingServerIds () {
+    return Array.from(this.pendingGoodServer)
+  }
+
+  clearGoodFollowingServerIds () {
+    this.pendingGoodServer = new Set<number>()
+  }
+
+  getPendingFollowsScore () {
     return this.pendingFollowsScore
   }