@Input() count: number
@Input() onlyDisplayTitle: boolean
@Input() filter: VideoFilter
+ @Input() isLive: boolean
@Input() maxRows: number
@Input() channelHandle: string
@Input() accountHandle: string
.subscribe(
({ data }) => this.videos = data,
- err => this.notifier.error('Error in videos list component: ' + err.message)
+ err => this.notifier.error($localize`Error in videos list component: ${err.message}`)
)
}
categoryOneOf: this.categoryOneOf,
languageOneOf: this.languageOneOf,
filter: this.filter,
+ isLive: this.isLive,
sort: this.sort as VideoSortField,
account: { nameWithHost: this.accountHandle },
videoChannel: { nameWithHost: this.channelHandle }
}
getVideos (parameters: {
- videoPagination: ComponentPaginationLight,
- sort: VideoSortField,
- filter?: VideoFilter,
- categoryOneOf?: number[],
- languageOneOf?: string[],
- skipCount?: boolean,
+ videoPagination: ComponentPaginationLight
+ sort: VideoSortField
+ filter?: VideoFilter
+ categoryOneOf?: number[]
+ languageOneOf?: string[]
+ isLive?: boolean
+ skipCount?: boolean
nsfwPolicy?: NSFWPolicyType
}): Observable<ResultList<Video>> {
- const { videoPagination, sort, filter, categoryOneOf, languageOneOf, skipCount, nsfwPolicy } = parameters
+ const { videoPagination, sort, filter, categoryOneOf, languageOneOf, skipCount, nsfwPolicy, isLive } = parameters
const pagination = this.restService.componentPaginationToRestPagination(videoPagination)
if (filter) params = params.set('filter', filter)
if (skipCount) params = params.set('skipCount', skipCount + '')
- if (nsfwPolicy) {
- params = params.set('nsfw', this.nsfwPolicyToParam(nsfwPolicy))
- }
-
- if (languageOneOf) {
- for (const l of languageOneOf) {
- params = params.append('languageOneOf[]', l)
- }
- }
-
- if (categoryOneOf) {
- for (const c of categoryOneOf) {
- params = params.append('categoryOneOf[]', c + '')
- }
- }
+ if (isLive) params = params.set('isLive', isLive)
+ if (nsfwPolicy) params = params.set('nsfw', this.nsfwPolicyToParam(nsfwPolicy))
+ if (languageOneOf) this.restService.addArrayParams(params, 'languageOneOf', languageOneOf)
+ if (categoryOneOf) this.restService.addArrayParams(params, 'categoryOneOf', categoryOneOf)
return this.authHttp
.get<ResultList<Video>>(VideoService.BASE_VIDEO_URL, { params })
import * as debug from 'debug'
-import { Observable, Subject } from 'rxjs'
-import { map } from 'rxjs/operators'
+import { Observable, Subject, throwError } from 'rxjs'
+import { first, map } from 'rxjs/operators'
import { Injectable, NgZone } from '@angular/core'
import { buildBulkObservable } from '@app/helpers'
import { ResultList } from '@shared/models/common'
return new Observable<R>(obs => {
observableObject.result
.pipe(
+ first(),
map(({ data }) => data),
map(data => data.find(finder))
)
.subscribe(result => {
- obs.next(result)
- obs.complete()
+ if (!result) {
+ obs.error(new Error($localize`Element ${param} not found`))
+ } else {
+ obs.next(result)
+ obs.complete()
+ }
})
observableObject.notifier.next(param)