|
|
|
|
|
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; |
|
|
} |
|
|
|