2023-07-31 08:34:36 -04:00
|
|
|
import { pick } from '@peertube/peertube-core-utils'
|
2021-07-29 05:54:38 -04:00
|
|
|
import {
|
|
|
|
VideoChannelsSearchQueryAfterSanitize,
|
|
|
|
VideoPlaylistsSearchQueryAfterSanitize,
|
|
|
|
VideosCommonQueryAfterSanitize,
|
|
|
|
VideosSearchQueryAfterSanitize
|
2023-07-31 08:34:36 -04:00
|
|
|
} from '@peertube/peertube-models'
|
2021-07-29 05:54:38 -04:00
|
|
|
|
|
|
|
function pickCommonVideoQuery (query: VideosCommonQueryAfterSanitize) {
|
|
|
|
return pick(query, [
|
|
|
|
'start',
|
|
|
|
'count',
|
|
|
|
'sort',
|
|
|
|
'nsfw',
|
|
|
|
'isLive',
|
|
|
|
'categoryOneOf',
|
|
|
|
'licenceOneOf',
|
|
|
|
'languageOneOf',
|
2021-11-12 08:19:56 -05:00
|
|
|
'privacyOneOf',
|
2021-07-29 05:54:38 -04:00
|
|
|
'tagsOneOf',
|
|
|
|
'tagsAllOf',
|
2021-10-27 08:37:04 -04:00
|
|
|
'isLocal',
|
|
|
|
'include',
|
|
|
|
'skipCount',
|
2021-11-03 06:32:41 -04:00
|
|
|
'hasHLSFiles',
|
2023-07-11 03:21:13 -04:00
|
|
|
'hasWebtorrentFiles', // TODO: Remove in v7
|
|
|
|
'hasWebVideoFiles',
|
2023-04-12 03:32:20 -04:00
|
|
|
'search',
|
2024-03-29 09:25:03 -04:00
|
|
|
'excludeAlreadyWatched',
|
|
|
|
'autoTagOneOf'
|
2021-07-29 05:54:38 -04:00
|
|
|
])
|
|
|
|
}
|
|
|
|
|
|
|
|
function pickSearchVideoQuery (query: VideosSearchQueryAfterSanitize) {
|
|
|
|
return {
|
|
|
|
...pickCommonVideoQuery(query),
|
|
|
|
|
|
|
|
...pick(query, [
|
|
|
|
'searchTarget',
|
|
|
|
'host',
|
|
|
|
'startDate',
|
|
|
|
'endDate',
|
|
|
|
'originallyPublishedStartDate',
|
|
|
|
'originallyPublishedEndDate',
|
|
|
|
'durationMin',
|
|
|
|
'durationMax',
|
2024-05-28 02:23:53 -04:00
|
|
|
'uuids'
|
2021-07-29 05:54:38 -04:00
|
|
|
])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function pickSearchChannelQuery (query: VideoChannelsSearchQueryAfterSanitize) {
|
|
|
|
return pick(query, [
|
|
|
|
'searchTarget',
|
|
|
|
'search',
|
|
|
|
'start',
|
|
|
|
'count',
|
|
|
|
'sort',
|
|
|
|
'host',
|
|
|
|
'handles'
|
|
|
|
])
|
|
|
|
}
|
|
|
|
|
|
|
|
function pickSearchPlaylistQuery (query: VideoPlaylistsSearchQueryAfterSanitize) {
|
|
|
|
return pick(query, [
|
|
|
|
'searchTarget',
|
|
|
|
'search',
|
|
|
|
'start',
|
|
|
|
'count',
|
|
|
|
'sort',
|
|
|
|
'host',
|
|
|
|
'uuids'
|
|
|
|
])
|
|
|
|
}
|
|
|
|
|
|
|
|
export {
|
|
|
|
pickCommonVideoQuery,
|
|
|
|
pickSearchVideoQuery,
|
|
|
|
pickSearchPlaylistQuery,
|
|
|
|
pickSearchChannelQuery
|
|
|
|
}
|