+
+ private buildCommonVideosParams (options: CommonVideoParams & { params: HttpParams }) {
+ const {
+ params,
+ videoPagination,
+ sort,
+ isLocal,
+ include,
+ categoryOneOf,
+ languageOneOf,
+ skipCount,
+ nsfwPolicy,
+ isLive,
+ nsfw
+ } = options
+
+ const pagination = videoPagination
+ ? this.restService.componentToRestPagination(videoPagination)
+ : undefined
+
+ let newParams = this.restService.addRestGetParams(params, pagination, sort)
+
+ if (skipCount) newParams = newParams.set('skipCount', skipCount + '')
+
+ if (isLocal) newParams = newParams.set('isLocal', isLocal)
+ if (include) newParams = newParams.set('include', include)
+ if (isLive) newParams = newParams.set('isLive', isLive)
+ if (nsfw) newParams = newParams.set('nsfw', nsfw)
+ if (nsfwPolicy) newParams = newParams.set('nsfw', this.nsfwPolicyToParam(nsfwPolicy))
+ if (languageOneOf) newParams = this.restService.addArrayParams(newParams, 'languageOneOf', languageOneOf)
+ if (categoryOneOf) newParams = this.restService.addArrayParams(newParams, 'categoryOneOf', categoryOneOf)
+
+ return newParams
+ }
+
+ buildAdminInputFilter (): AdvancedInputFilter[] {
+ return [
+ {
+ title: $localize`Videos scope`,
+ children: [
+ {
+ queryParams: { search: 'isLocal:false' },
+ label: $localize`Remote videos`
+ },
+ {
+ queryParams: { search: 'isLocal:true' },
+ label: $localize`Local videos`
+ }
+ ]
+ },
+
+ {
+ title: $localize`Include/Exclude`,
+ children: [
+ {
+ queryParams: { search: 'excludeMuted' },
+ label: $localize`Exclude muted accounts`
+ }
+ ]
+ }
+ ]
+ }
+
+ private buildAdminParamsFromSearch (search: string, params: HttpParams) {
+ let include = VideoInclude.BLACKLISTED |
+ VideoInclude.BLOCKED_OWNER |
+ VideoInclude.HIDDEN_PRIVACY |
+ VideoInclude.NOT_PUBLISHED_STATE |
+ VideoInclude.FILES
+
+ if (!search) return this.restService.addObjectParams(params, { include })
+
+ const filters = this.restService.parseQueryStringFilter(search, {
+ isLocal: {
+ prefix: 'isLocal:',
+ isBoolean: true
+ },
+ excludeMuted: {
+ prefix: 'excludeMuted',
+ handler: () => true
+ }
+ })
+
+ if (filters.excludeMuted) {
+ include &= ~VideoInclude.BLOCKED_OWNER
+
+ filters.excludeMuted = undefined
+ }
+
+ return this.restService.addObjectParams(params, { ...filters, include })
+ }