blob: 293f7edad5506655b7de9f7d720366a5b52e27a5 (
plain) (
tree)
|
|
import { forkJoin } from 'rxjs'
import { Component, OnInit } from '@angular/core'
import { ActivatedRoute, Router } from '@angular/router'
import { Video, VideoChannel } from '@app/shared/shared-main'
import { SearchService } from '@app/shared/shared-search'
@Component({
selector: 'my-remote-interaction',
templateUrl: './remote-interaction.component.html',
styleUrls: ['./remote-interaction.component.scss']
})
export class RemoteInteractionComponent implements OnInit {
error = ''
constructor (
private route: ActivatedRoute,
private router: Router,
private search: SearchService
) { }
ngOnInit () {
const uri = this.route.snapshot.queryParams['uri']
if (!uri) {
this.error = $localize`URL parameter is missing in URL parameters`
return
}
this.loadUrl(uri)
}
private loadUrl (uri: string) {
forkJoin([
this.search.searchVideos({ search: uri }),
this.search.searchVideoChannels({ search: uri })
]).subscribe(([ videoResult, channelResult ]) => {
let redirectUrl: string
if (videoResult.data.length !== 0) {
const video = videoResult.data[0]
redirectUrl = Video.buildWatchUrl(video)
} else if (channelResult.data.length !== 0) {
const channel = new VideoChannel(channelResult.data[0])
redirectUrl = '/c/' + channel.nameWithHost
} else {
this.error = $localize`Cannot access to the remote resource`
return
}
this.router.navigateByUrl(redirectUrl)
})
}
}
|