|
|
| import { LoadBalancerAPI } from "./LoadBalancerAPI"; |
|
|
| const lb = new LoadBalancerAPI("https://hans-den-load-balancer.hf.space"); |
|
|
| export async function getRecentItems(limit = 5) { |
| const recentData = await lb.getRecent(limit); |
| console.debug("Raw recent data:", recentData); |
| |
| const slides = []; |
|
|
| |
| if (recentData.movies && Array.isArray(recentData.movies)) { |
| recentData.movies.forEach(movie => { |
| const [title, year, description, image, genres] = movie; |
| slides.push({ |
| type: 'movie', |
| title, |
| genre: genres.map(g => g.name), |
| image, |
| description, |
| year, |
| }); |
| }); |
| } |
|
|
| |
| if (recentData.series && Array.isArray(recentData.series)) { |
| recentData.series.forEach(series => { |
| const [title, year, description, image, genres] = series; |
| slides.push({ |
| type: 'tvshow', |
| title, |
| genre: genres.map(g => g.name), |
| image, |
| description, |
| year, |
| }); |
| }); |
| } |
| console.debug(slides); |
| return slides; |
| } |
|
|
| export async function getNewContents(limit = 5) { |
| const recentData = await lb.getRecent(limit); |
| console.debug("Raw recent data:", recentData); |
| |
| const movies = []; |
| const tvshows = []; |
|
|
| |
| if (Array.isArray(recentData.movies)) { |
| recentData.movies.forEach(([title, year, description, image, genres]) => { |
| movies.push({ |
| title, |
| genre: genres.map(g => g.name), |
| image, |
| description, |
| year, |
| }); |
| }); |
| } |
|
|
| |
| if (Array.isArray(recentData.series)) { |
| recentData.series.forEach(([title, year, description, image, genres]) => { |
| tvshows.push({ |
| title, |
| genre: genres.map(g => g.name), |
| image, |
| description, |
| year, |
| }); |
| }); |
| } |
| |
| console.debug({ movies, tvshows }); |
| return { movies, tvshows }; |
| } |
|
|
| export async function getAllMovies(){ |
| const movies = await lb.getAllMovies(); |
| console.debug(movies); |
| |
| const formattedMovies = movies.map(title => ({ |
| title: title.replace('films/', '') |
| })); |
| return formattedMovies; |
| } |
|
|
| export async function getAllTvShows() { |
| const tvshows = await lb.getAllSeriesShows(); |
|
|
| |
| const formattedTvShows = Object.entries(tvshows).map(([title, episodes]) => ({ |
| title, |
| episodeCount: episodes.length |
| })); |
|
|
| return formattedTvShows; |
| } |
|
|
| export async function getMovieLinkByTitle(title){ |
| const response = await lb.getMovieByTitle(title); |
| console.debug(response); |
| return response; |
| } |
|
|
| export async function getEpisodeLinkByTitle(title, season, episode){ |
| const response = await lb.getSeriesEpisode(title, season, episode); |
| console.debug(response); |
| return response; |
| } |
|
|
| export async function getMovieCard(title){ |
| const movie = await lb.getMovieCard(title); |
| console.debug(movie); |
| return movie; |
| } |
|
|
| export async function getTvShowCard(title){ |
| const tvshow = await lb.getSeriesCard(title); |
| console.debug(tvshow); |
| return tvshow; |
| } |
|
|
| export async function getMovieMetadata(title){ |
| const movie = await lb.getMovieMetadataByTitle(title); |
| console.debug(movie); |
| return movie; |
| } |
|
|
| export async function getTvShowMetadata(title){ |
| const tvshow = await lb.getSeriesMetadataByTitle(title); |
| console.debug(tvshow); |
| return tvshow; |
| } |
|
|
| export async function getSeasonMetadata(title, season){ |
| const data = await lb.getSeasonMetadataByTitleAndSeason(title, season); |
| console.debug(data); |
| return data; |
| } |
|
|
| export async function getGenreCategories(mediaType){ |
| const gc = await lb.getGenreCategories(mediaType); |
| console.debug(gc); |
| if (gc.genres) |
| return gc.genres; |
| else |
| return []; |
| } |
|
|
| export async function getGenresItems(genres, mediaType, limit = 10, page = 1){ |
| const genresRes = await lb.getGenreItems(genres, mediaType, limit, page); |
| console.debug(genresRes); |
| return genresRes; |
| } |
|
|