Chandima Prabhath
Track bun.lockb with Git LFS
cc2caf9
raw
history blame
4.1 kB
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 = [];
// Process movies and format them as slide objects
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), // returns an array of genre names
image,
description,
year,
});
});
}
// Process series and format them as slide objects with type "tvshow"
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), // returns an array of genre names
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 = [];
// Process movies
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,
});
});
}
// Process TV shows
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();
// Transform the response to return TV show names with episode count
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;
}