]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Fix live files include
authorChocobozzz <me@florianbigard.com>
Fri, 11 Jun 2021 14:02:26 +0000 (16:02 +0200)
committerChocobozzz <me@florianbigard.com>
Fri, 11 Jun 2021 14:02:26 +0000 (16:02 +0200)
server/models/video/sql/shared/abstract-videos-model-query-builder.ts
server/models/video/sql/shared/video-file-query-builder.ts
server/models/video/sql/shared/video-model-builder.ts
server/models/video/sql/videos-model-list-query-builder.ts
server/tests/api/live/live-permanent.ts

index d959cb5d074d29088de0aad6ebee62b3349bf0e4..0d7e645744c397a7d9d270f4b867b3c115a2cce3 100644 (file)
@@ -102,9 +102,8 @@ export class AbstractVideosModelQueryBuilder extends AbstractVideosQueryBuilder
     }
   }
 
-  protected includeWebtorrentFiles (required: boolean) {
-    const joinType = required ? 'INNER' : 'LEFT'
-    this.addJoin(joinType + ' JOIN "videoFile" AS "VideoFiles" ON "VideoFiles"."videoId" = "video"."id"')
+  protected includeWebtorrentFiles () {
+    this.addJoin('LEFT JOIN "videoFile" AS "VideoFiles" ON "VideoFiles"."videoId" = "video"."id"')
 
     this.attributes = {
       ...this.attributes,
@@ -113,15 +112,13 @@ export class AbstractVideosModelQueryBuilder extends AbstractVideosQueryBuilder
     }
   }
 
-  protected includeStreamingPlaylistFiles (required: boolean) {
-    const joinType = required ? 'INNER' : 'LEFT'
-
+  protected includeStreamingPlaylistFiles () {
     this.addJoin(
-      joinType + ' JOIN "videoStreamingPlaylist" AS "VideoStreamingPlaylists" ON "VideoStreamingPlaylists"."videoId" = "video"."id"'
+      'LEFT JOIN "videoStreamingPlaylist" AS "VideoStreamingPlaylists" ON "VideoStreamingPlaylists"."videoId" = "video"."id"'
     )
 
     this.addJoin(
-      joinType + ' JOIN "videoFile" AS "VideoStreamingPlaylists->VideoFiles" ' +
+      'LEFT JOIN "videoFile" AS "VideoStreamingPlaylists->VideoFiles" ' +
         'ON "VideoStreamingPlaylists->VideoFiles"."videoStreamingPlaylistId" = "VideoStreamingPlaylists"."id"'
     )
 
index a62fa64f842c63733d61c520c31c26802ad38dce..6b15c3b6979a8de22ae5ff457f24f2c9122d5152 100644 (file)
@@ -32,7 +32,7 @@ export class VideoFileQueryBuilder extends AbstractVideosModelQueryBuilder {
       '"video"."id"': ''
     }
 
-    this.includeWebtorrentFiles(true)
+    this.includeWebtorrentFiles()
 
     if (this.shouldIncludeRedundancies(options)) {
       this.includeWebTorrentRedundancies()
@@ -48,7 +48,7 @@ export class VideoFileQueryBuilder extends AbstractVideosModelQueryBuilder {
       '"video"."id"': ''
     }
 
-    this.includeStreamingPlaylistFiles(true)
+    this.includeStreamingPlaylistFiles()
 
     if (this.shouldIncludeRedundancies(options)) {
       this.includeStreamingPlaylistRedundancies()
index 467a9378a14dd21a3bdb18569b899e0dfe2c95d8..cc71192c0ddf7d7ecd1d1e4967e524327bd63e28 100644 (file)
@@ -108,9 +108,12 @@ export class VideoModelBuilder {
     if (!rowsWebTorrentFiles) return
 
     for (const row of rowsWebTorrentFiles) {
+      const id = row['VideoFiles.id']
+      if (!id) continue
+
       const videoModel = this.videosMemo[row.id]
       this.addWebTorrentFile(row, videoModel)
-      this.addRedundancy(row, 'VideoFiles.RedundancyVideos', this.videoFileMemo[row['VideoFiles.id']])
+      this.addRedundancy(row, 'VideoFiles.RedundancyVideos', this.videoFileMemo[id])
     }
   }
 
@@ -118,6 +121,9 @@ export class VideoModelBuilder {
     if (!rowsStreamingPlaylist) return
 
     for (const row of rowsStreamingPlaylist || []) {
+      const id = row['VideoStreamingPlaylists.id']
+      if (!id) continue
+
       const videoModel = this.videosMemo[row.id]
 
       this.addStreamingPlaylist(row, videoModel)
@@ -125,7 +131,7 @@ export class VideoModelBuilder {
       this.addRedundancy(
         row,
         'VideoStreamingPlaylists.RedundancyVideos',
-        this.videoStreamingPlaylistMemo[row['VideoStreamingPlaylists.id']]
+        this.videoStreamingPlaylistMemo[id]
       )
     }
   }
index 43040fc5e6da1be861c5acad4a7dd275f3575983..e61c51de8f7d8285ee5f2ef1350d79d193a6f0f6 100644 (file)
@@ -52,8 +52,8 @@ export class VideosModelListQueryBuilder extends AbstractVideosModelQueryBuilder
     this.includeThumbnails()
 
     if (options.withFiles) {
-      this.includeWebtorrentFiles(false)
-      this.includeStreamingPlaylistFiles(false)
+      this.includeWebtorrentFiles()
+      this.includeStreamingPlaylistFiles()
     }
 
     if (options.user) {
index 2b440dbd075f88e33e4f6cd54ea166b9dcb20df2..71b7d28a885c23232943468e8a017d7ecb2bced1 100644 (file)
@@ -27,7 +27,7 @@ import {
 
 const expect = chai.expect
 
-describe('Permenant live', function () {
+describe('Permanent live', function () {
   let servers: ServerInfo[] = []
   let videoUUID: string