+ static async loadOldestLocalThatAlreadyExpired (strategy: VideoRedundancyStrategy, expiresAfterMs: number) {
+ const expiredDate = new Date()
+ expiredDate.setMilliseconds(expiredDate.getMilliseconds() - expiresAfterMs)
+
+ const actor = await getServerActor()
+
+ const query = {
+ where: {
+ actorId: actor.id,
+ strategy,
+ createdAt: {
+ [ Sequelize.Op.lt ]: expiredDate
+ }
+ }
+ }
+
+ return VideoRedundancyModel.scope([ ScopeNames.WITH_VIDEO ]).findOne(query)
+ }
+