]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Improve recommended videos without video tags
authorChocobozzz <me@florianbigard.com>
Wed, 19 Jul 2023 11:24:31 +0000 (13:24 +0200)
committerChocobozzz <me@florianbigard.com>
Wed, 19 Jul 2023 11:24:31 +0000 (13:24 +0200)
client/src/app/+videos/+video-watch/shared/recommendations/recent-videos-recommendation.service.ts

index b0ae910ac1a77a75760086cad9928e57092581f6..8f4594b255119faee22ca91fb00d6766bdb6d7bd 100644 (file)
@@ -39,22 +39,21 @@ export class RecentVideosRecommendationService implements RecommendationService
 
   private fetchPage (page: number, recommendation: RecommendationInfo): Observable<Video[]> {
     const pagination = { currentPage: page, itemsPerPage: this.pageSize + 1 }
-    const defaultSubscription = this.videos.getVideos({ videoPagination: pagination, sort: '-createdAt' })
-                                    .pipe(map(v => v.data))
-
-    const tags = recommendation.tags
-    const searchIndexConfig = this.config.search.searchIndex
-    if (
-      !tags || tags.length === 0 ||
-      (searchIndexConfig.enabled === true && searchIndexConfig.disableLocalSearch === true)
-    ) {
-      return defaultSubscription
-    }
 
     return this.userService.getAnonymousOrLoggedUser()
       .pipe(
-        map(user => {
-          return {
+        switchMap(user => {
+          const defaultSubscription = this.videos.getVideos({
+            videoPagination: pagination,
+            sort: '-publishedAt'
+          }).pipe(map(v => v.data))
+
+          const searchIndexConfig = this.config.search.searchIndex
+          if (searchIndexConfig.enabled === true && searchIndexConfig.disableLocalSearch === true) {
+            return defaultSubscription
+          }
+
+          return this.searchService.searchVideos({
             search: '',
             componentPagination: pagination,
             advancedSearch: new AdvancedSearch({
@@ -68,14 +67,15 @@ export class RecentVideosRecommendationService implements RecommendationService
                 ? true
                 : undefined
             })
-          }
-        }),
-        switchMap(params => this.searchService.searchVideos(params)),
-        map(v => v.data),
-        switchMap(videos => {
-          if (videos.length <= 1) return defaultSubscription
+          })
+          .pipe(
+            map(v => v.data),
+            switchMap(videos => {
+              if (videos.length <= 1) return defaultSubscription
 
-          return of(videos)
+              return of(videos)
+            })
+          )
         })
       )
   }