]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+videos/video-list/video-user-subscriptions.component.ts
Fix rss feed with HLS videos
[github/Chocobozzz/PeerTube.git] / client / src / app / +videos / video-list / video-user-subscriptions.component.ts
index 03881c295745d9aab8675656e300c18aa672dc21..62d862ec92c45ebc95d4c54e1cf1954122bda437 100644 (file)
@@ -1,3 +1,5 @@
+
+import { switchMap } from 'rxjs/operators'
 import { Component, OnDestroy, OnInit } from '@angular/core'
 import { ActivatedRoute, Router } from '@angular/router'
 import { AuthService, LocalStorageService, Notifier, ScopedTokensService, ScreenService, ServerService, UserService } from '@app/core'
@@ -6,10 +8,9 @@ import { immutableAssign } from '@app/helpers'
 import { VideoService } from '@app/shared/shared-main'
 import { UserSubscriptionService } from '@app/shared/shared-user-subscription'
 import { AbstractVideoList, OwnerDisplayType } from '@app/shared/shared-video-miniature'
-import { VideoSortField, FeedFormat } from '@shared/models'
-import { copyToClipboard } from '../../../root-helpers/utils'
+import { FeedFormat, VideoSortField } from '@shared/models'
 import { environment } from '../../../environments/environment'
-import { forkJoin } from 'rxjs'
+import { copyToClipboard } from '../../../root-helpers/utils'
 
 @Component({
   selector: 'my-videos-user-subscriptions',
@@ -53,26 +54,30 @@ export class VideoUserSubscriptionsComponent extends AbstractVideoList implement
     const user = this.authService.getUser()
     let feedUrl = environment.originServerUrl
 
-    this.scopedTokensService.getScopedTokens().subscribe(
-      tokens => {
-        const feeds = this.videoService.getVideoSubscriptionFeedUrls(user.account.id, tokens.feedToken)
-        feedUrl = feedUrl + feeds.find((f: any) => f.format === FeedFormat.RSS).url
-      },
+    this.authService.userInformationLoaded
+      .pipe(switchMap(() => this.scopedTokensService.getScopedTokens()))
+      .subscribe(
+        tokens => {
+          const feeds = this.videoService.getVideoSubscriptionFeedUrls(user.account.id, tokens.feedToken)
+          feedUrl = feedUrl + feeds.find(f => f.format === FeedFormat.RSS).url
 
-      err => {
-        this.notifier.error(err.message)
-      }
-    )
+          this.actions.unshift({
+            label: $localize`Copy feed URL`,
+            iconName: 'syndication',
+            justIcon: true,
+            href: feedUrl,
+            click: e => {
+              e.preventDefault()
+              copyToClipboard(feedUrl)
+              this.activateCopiedMessage()
+            }
+          })
+        },
 
-    this.actions.unshift({
-      label: $localize`Feed`,
-      iconName: 'syndication',
-      justIcon: true,
-      click: () => {
-        copyToClipboard(feedUrl)
-        this.activateCopiedMessage()
-      }
-    })
+        err => {
+          this.notifier.error(err.message)
+        }
+      )
   }
 
   ngOnDestroy () {