+ return Promise.all([
+ VideoShareModel.count(query),
+ VideoShareModel.findAll(query)
+ ]).then(([ total, data ]) => ({ total, data }))
+ }
+
+ static listRemoteShareUrlsOfLocalVideos () {
+ const query = `SELECT "videoShare".url FROM "videoShare" ` +
+ `INNER JOIN actor ON actor.id = "videoShare"."actorId" AND actor."serverId" IS NOT NULL ` +
+ `INNER JOIN video ON video.id = "videoShare"."videoId" AND video.remote IS FALSE`
+
+ return VideoShareModel.sequelize.query<{ url: string }>(query, {
+ type: QueryTypes.SELECT,
+ raw: true
+ }).then(rows => rows.map(r => r.url))