X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fshared%2Fvideo%2Fvideo.service.ts;h=d66a1f809990ac78b9029551e833428d23b3fd6d;hb=5c20a45518c3afc40c9494cad4a78def92e5e288;hp=3aaf1499000a8dcbb10efd725861a1f24c8fc069;hpb=8319d6ae72d4da6de51bd3d4b5c68040fc8dc3b4;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/shared/video/video.service.ts b/client/src/app/shared/video/video.service.ts index 3aaf14990..d66a1f809 100644 --- a/client/src/app/shared/video/video.service.ts +++ b/client/src/app/shared/video/video.service.ts @@ -39,8 +39,9 @@ export interface VideosProvider { videoPagination: ComponentPaginationLight, sort: VideoSortField, filter?: VideoFilter, - categoryOneOf?: number, + categoryOneOf?: number[], languageOneOf?: string[] + nsfwPolicy: NSFWPolicyType }): Observable> } @@ -161,13 +162,18 @@ export class VideoService implements VideosProvider { getVideoChannelVideos ( videoChannel: VideoChannel, videoPagination: ComponentPaginationLight, - sort: VideoSortField + sort: VideoSortField, + nsfwPolicy?: NSFWPolicyType ): Observable> { const pagination = this.restService.componentPaginationToRestPagination(videoPagination) let params = new HttpParams() params = this.restService.addRestGetParams(params, pagination, sort) + if (nsfwPolicy) { + params = params.set('nsfw', this.nsfwPolicyToParam(nsfwPolicy)) + } + return this.authHttp .get>(VideoChannelService.BASE_VIDEO_CHANNEL_URL + videoChannel.nameWithHost + '/videos', { params }) .pipe( @@ -201,12 +207,12 @@ export class VideoService implements VideosProvider { videoPagination: ComponentPaginationLight, sort: VideoSortField, filter?: VideoFilter, - categoryOneOf?: number, + categoryOneOf?: number[], languageOneOf?: string[], skipCount?: boolean, - nsfw?: boolean + nsfwPolicy?: NSFWPolicyType }): Observable> { - const { videoPagination, sort, filter, categoryOneOf, languageOneOf, skipCount, nsfw } = parameters + const { videoPagination, sort, filter, categoryOneOf, languageOneOf, skipCount, nsfwPolicy } = parameters const pagination = this.restService.componentPaginationToRestPagination(videoPagination) @@ -214,16 +220,10 @@ export class VideoService implements VideosProvider { params = this.restService.addRestGetParams(params, pagination, sort) if (filter) params = params.set('filter', filter) - if (categoryOneOf) params = params.set('categoryOneOf', categoryOneOf + '') if (skipCount) params = params.set('skipCount', skipCount + '') - if (nsfw) { - params = params.set('nsfw', nsfw + '') - } else { - const nsfwPolicy = this.authService.isLoggedIn() - ? this.authService.getUser().nsfwPolicy - : this.userService.getAnonymousUser().nsfwPolicy - if (this.nsfwPolicyToFilter(nsfwPolicy)) params.set('nsfw', 'false') + if (nsfwPolicy) { + params = params.set('nsfw', this.nsfwPolicyToParam(nsfwPolicy)) } if (languageOneOf) { @@ -232,6 +232,12 @@ export class VideoService implements VideosProvider { } } + if (categoryOneOf) { + for (const c of categoryOneOf) { + params = params.append('categoryOneOf[]', c + '') + } + } + return this.authHttp .get>(VideoService.BASE_VIDEO_URL, { params }) .pipe( @@ -268,12 +274,16 @@ export class VideoService implements VideosProvider { return feeds } - getVideoFeedUrls (sort: VideoSortField, filter?: VideoFilter, categoryOneOf?: number) { + getVideoFeedUrls (sort: VideoSortField, filter?: VideoFilter, categoryOneOf?: number[]) { let params = this.restService.addRestGetParams(new HttpParams(), undefined, sort) if (filter) params = params.set('filter', filter) - if (categoryOneOf) params = params.set('categoryOneOf', categoryOneOf + '') + if (categoryOneOf) { + for (const c of categoryOneOf) { + params = params.append('categoryOneOf[]', c + '') + } + } return this.buildBaseFeedUrls(params) } @@ -377,6 +387,12 @@ export class VideoService implements VideosProvider { return base.filter(o => !!privacies.find(p => p.id === o.id)) } + nsfwPolicyToParam (nsfwPolicy: NSFWPolicyType) { + return nsfwPolicy === 'do_not_list' + ? 'false' + : 'both' + } + private setVideoRate (id: number, rateType: UserVideoRateType) { const url = VideoService.BASE_VIDEO_URL + id + '/rate' const body: UserVideoRateUpdate = { @@ -390,8 +406,4 @@ export class VideoService implements VideosProvider { catchError(err => this.restExtractor.handleError(err)) ) } - - private nsfwPolicyToFilter (policy: NSFWPolicyType) { - return policy === 'do_not_list' - } }