Support accountHandle and channelHandle

This commit is contained in:
Chocobozzz 2021-07-01 17:41:03 +02:00
parent 8b61dcaf23
commit 674d903b0e
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
4 changed files with 27 additions and 10 deletions

View File

@ -188,6 +188,9 @@ export class CustomMarkupService {
categoryOneOf: this.buildArrayNumber(data.categoryOneOf) ?? [],
languageOneOf: this.buildArrayString(data.languageOneOf) ?? [],
accountHandle: data.accountHandle || undefined,
channelHandle: data.channelHandle || undefined,
filter: this.buildBoolean(data.onlyLocal) ? 'local' as VideoFilter : undefined
}

View File

@ -23,6 +23,8 @@ export class VideosListMarkupComponent implements CustomMarkupComponent, OnInit
@Input() onlyDisplayTitle: boolean
@Input() filter: VideoFilter
@Input() maxRows: number
@Input() channelHandle: string
@Input() accountHandle: string
@Output() loaded = new EventEmitter<boolean>()
@ -66,6 +68,16 @@ export class VideosListMarkupComponent implements CustomMarkupComponent, OnInit
}
}
return this.getVideosObservable()
.pipe(finalize(() => this.loaded.emit(true)))
.subscribe(
({ data }) => this.videos = data,
err => this.notifier.error('Error in videos list component: ' + err.message)
)
}
getVideosObservable () {
const options = {
videoPagination: {
currentPage: 1,
@ -74,15 +86,14 @@ export class VideosListMarkupComponent implements CustomMarkupComponent, OnInit
categoryOneOf: this.categoryOneOf,
languageOneOf: this.languageOneOf,
filter: this.filter,
sort: this.sort as VideoSortField
sort: this.sort as VideoSortField,
account: { nameWithHost: this.accountHandle },
videoChannel: { nameWithHost: this.channelHandle }
}
this.videoService.getVideos(options)
.pipe(finalize(() => this.loaded.emit(true)))
.subscribe(
({ data }) => this.videos = data,
if (this.channelHandle) return this.videoService.getVideoChannelVideos(options)
if (this.accountHandle) return this.videoService.getAccountVideos(options)
err => this.notifier.error('Error in videos list component: ' + err.message)
)
return this.videoService.getVideos(options)
}
}

View File

@ -145,7 +145,7 @@ export class VideoService implements VideosProvider {
}
getAccountVideos (parameters: {
account: Account,
account: Pick<Account, 'nameWithHost'>,
videoPagination: ComponentPaginationLight,
sort: VideoSortField
nsfwPolicy?: NSFWPolicyType
@ -180,7 +180,7 @@ export class VideoService implements VideosProvider {
}
getVideoChannelVideos (parameters: {
videoChannel: VideoChannel,
videoChannel: Pick<VideoChannel, 'nameWithHost'>,
videoPagination: ComponentPaginationLight,
sort: VideoSortField,
nsfwPolicy?: NSFWPolicyType

View File

@ -30,9 +30,12 @@ export type VideosListMarkupData = {
sort?: string
count?: string // number
categoryOneOf?: string // coma separated values
categoryOneOf?: string // coma separated values, number[]
languageOneOf?: string // coma separated values
channelHandle?: string
accountHandle?: string
onlyLocal?: string // boolean
}