diff --git a/src/pages/search.astro b/src/pages/search.astro index aa92426..88b6416 100644 --- a/src/pages/search.astro +++ b/src/pages/search.astro @@ -1,38 +1,144 @@ --- -import { t, changeLanguage } from "i18next" +// Layout import Base from "@layouts/Default.astro" +// i18n +import { t, changeLanguage } from "i18next" + // Configuration -import { DEFAULT_MEDIA_DATA_PROXY, DEFAULT_IMAGE_PROXY } from '@utils/GetConfig' - -changeLanguage("en") +import { DEFAULT_MEDIA_DATA_PROXY, DEFAULT_IMAGE_PROXY, DEFAULT_STREAM_DATA_PROXY } from '@utils/GetConfig' +// Components import Video from '@components/VideoItem.astro' +import DiscoverChannel from "@components/DiscoverChannel.astro" +import Stream from "@components/search/Stream.astro" +import { Group, Movie, Play, PlaylistPlay, ReportColumns, VideoCamera } from "@iconoir/vue" // Fetch -const SBO = Astro.url.href.split("search?query=").pop() -const response = await fetch(DEFAULT_MEDIA_DATA_PROXY + "/api/v1/search?q=" + SBO) -.catch((error) => { - console.log(error) -}) +const SearchQueryWithParameters = Astro.url.href.split("&?").shift() +const SearchQuery = SearchQueryWithParameters.split("search?query=").pop() -const data = await response.json() +console.log(SearchQuery) + +// Check Filters +if (Astro.url.href.includes('?type=channel')) { + var ShowChannels = true +} +else if (Astro.url.href.includes('?type=playlist')) { + var ShowPlaylists = true +} +else if (Astro.url.href.includes('?type=stream')) { + var ShowStreams = true +} +else if (Astro.url.href.includes('?type=all')) { + var ShowAll = true +} +else { + var ShowVideos = true +} + +/// Videos (YouTube) +const VideoSearchResults = await fetch(DEFAULT_MEDIA_DATA_PROXY + "/api/v1/search?q=" + SearchQuery + '&page=1&date=none&type=video&duration=none&sort=relevance') +const VideoSearch = await VideoSearchResults.json() + +/// Playlists (YouTube) +const PlaylistsSearchResults = await fetch(DEFAULT_MEDIA_DATA_PROXY + "/api/v1/search?q=" + SearchQuery + '&page=1&date=none&type=playlist&duration=none&sort=relevance') +const PlaylistsSearch = await PlaylistsSearchResults.json() + +// Streams (Twitch) +const StreamSearchResults = await fetch(DEFAULT_STREAM_DATA_PROXY + "/api/search/?query=" + SearchQuery) +const StreamSearch = await StreamSearchResults.json() + +/// Channels (YouTube) +const ChannelSearchResults = await fetch(DEFAULT_MEDIA_DATA_PROXY + "/api/v1/search?q=" + SearchQuery + '&page=1&date=none&type=channel&duration=none&sort=relevance') +const ChannelSearch = await ChannelSearchResults.json() --- -
-

Search

+
+
+ + Videos + Playlists + Streams + Creators +
+
+ {ShowVideos ? - {data.map((data) => - {playlist.title} + ) + : + null + } + {ShowChannels ? + ChannelSearch.map((channel) => + + ) + : + null + } + {ShowStreams ? + StreamSearch.data.relatedChannels.map((channel) => + + ) + : + null + }
- \ No newline at end of file + + + \ No newline at end of file