From 5fb2e2888ce032c638e4b75d07458642f0833e52 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 29 May 2020 16:16:24 +0200 Subject: First implem global search --- shared/extra-utils/server/config.ts | 12 ++++++++++++ shared/models/avatars/avatar.model.ts | 3 +++ shared/models/search/search-target-query.model.ts | 5 +++++ shared/models/search/video-channels-search-query.model.ts | 4 +++- shared/models/search/videos-search-query.model.ts | 5 ++++- shared/models/server/custom-config.model.ts | 14 ++++++++++++++ shared/models/server/server-config.model.ts | 7 +++++++ shared/models/videos/video.model.ts | 10 ++++++++++ 8 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 shared/models/search/search-target-query.model.ts (limited to 'shared') diff --git a/shared/extra-utils/server/config.ts b/shared/extra-utils/server/config.ts index 98cd435f6..eb06a1516 100644 --- a/shared/extra-utils/server/config.ts +++ b/shared/extra-utils/server/config.ts @@ -165,6 +165,18 @@ function updateCustomSubConfig (url: string, token: string, newConfig: DeepParti level: 'warning', message: 'hello', dismissable: true + }, + search: { + remoteUri: { + users: true, + anonymous: true + }, + searchIndex: { + enabled: true, + url: 'https://search.joinpeertube.org', + disableLocalSearch: true, + isDefaultSearch: true + } } } diff --git a/shared/models/avatars/avatar.model.ts b/shared/models/avatars/avatar.model.ts index 301d00929..f7fa16f49 100644 --- a/shared/models/avatars/avatar.model.ts +++ b/shared/models/avatars/avatar.model.ts @@ -1,5 +1,8 @@ export interface Avatar { path: string + + url?: string + createdAt: Date | string updatedAt: Date | string } diff --git a/shared/models/search/search-target-query.model.ts b/shared/models/search/search-target-query.model.ts new file mode 100644 index 000000000..3bb2e0d31 --- /dev/null +++ b/shared/models/search/search-target-query.model.ts @@ -0,0 +1,5 @@ +export type SearchTargetType = 'local' | 'search-index' + +export interface SearchTargetQuery { + searchTarget?: SearchTargetType +} diff --git a/shared/models/search/video-channels-search-query.model.ts b/shared/models/search/video-channels-search-query.model.ts index de2741e14..c96aa8c1d 100644 --- a/shared/models/search/video-channels-search-query.model.ts +++ b/shared/models/search/video-channels-search-query.model.ts @@ -1,4 +1,6 @@ -export interface VideoChannelsSearchQuery { +import { SearchTargetQuery } from "./search-target-query.model" + +export interface VideoChannelsSearchQuery extends SearchTargetQuery { search: string start?: number diff --git a/shared/models/search/videos-search-query.model.ts b/shared/models/search/videos-search-query.model.ts index 838063095..bd6bb5bc1 100644 --- a/shared/models/search/videos-search-query.model.ts +++ b/shared/models/search/videos-search-query.model.ts @@ -1,7 +1,10 @@ import { NSFWQuery } from './nsfw-query.model' import { VideoFilter } from '../videos' +import { SearchTargetQuery } from './search-target-query.model' + +export interface VideosSearchQuery extends SearchTargetQuery { + forceLocalSearch?: boolean -export interface VideosSearchQuery { search?: string start?: number diff --git a/shared/models/server/custom-config.model.ts b/shared/models/server/custom-config.model.ts index 851bf1854..338a59341 100644 --- a/shared/models/server/custom-config.model.ts +++ b/shared/models/server/custom-config.model.ts @@ -139,4 +139,18 @@ export interface CustomConfig { level: BroadcastMessageLevel dismissable: boolean } + + search: { + remoteUri: { + users: boolean + anonymous: boolean + } + + searchIndex: { + enabled: boolean + url: string + disableLocalSearch: boolean + isDefaultSearch: boolean + } + } } diff --git a/shared/models/server/server-config.model.ts b/shared/models/server/server-config.model.ts index 9c903b7ee..a8e5dfbff 100644 --- a/shared/models/server/server-config.model.ts +++ b/shared/models/server/server-config.model.ts @@ -50,6 +50,13 @@ export interface ServerConfig { users: boolean anonymous: boolean } + + searchIndex: { + enabled: boolean + url: string + disableLocalSearch: boolean + isDefaultSearch: boolean + } } plugin: { diff --git a/shared/models/videos/video.model.ts b/shared/models/videos/video.model.ts index a69152759..0f8822125 100644 --- a/shared/models/videos/video.model.ts +++ b/shared/models/videos/video.model.ts @@ -22,9 +22,19 @@ export interface Video { duration: number isLocal: boolean name: string + thumbnailPath: string + thumbnailUrl?: string + previewPath: string + previewUrl?: string + embedPath: string + embedUrl?: string + + // When using the search index + url?: string + views: number likes: number dislikes: number -- cgit v1.2.3