mirror of
https://github.com/maxdorninger/MediaManager.git
synced 2026-04-17 23:53:27 +02:00
66 lines
1.8 KiB
TypeScript
66 lines
1.8 KiB
TypeScript
import {type ClassValue, clsx} from 'clsx';
|
|
import {twMerge} from 'tailwind-merge';
|
|
import {env} from "$env/dynamic/public";
|
|
import {goto} from '$app/navigation';
|
|
import {base} from '$app/paths';
|
|
import {toast} from 'svelte-sonner';
|
|
|
|
const apiUrl = env.PUBLIC_API_URL;
|
|
|
|
export const qualityMap: { [key: number]: string } = {
|
|
1: 'high',
|
|
2: 'medium',
|
|
3: 'low',
|
|
4: 'very low',
|
|
5: 'unknown'
|
|
};
|
|
export const torrentStatusMap: { [key: number]: string } = {
|
|
1: 'finished',
|
|
2: 'downloading',
|
|
3: 'error',
|
|
4: 'unknown'
|
|
};
|
|
|
|
export function cn(...inputs: ClassValue[]) {
|
|
return twMerge(clsx(inputs));
|
|
}
|
|
|
|
export function getTorrentQualityString(value: number): string {
|
|
return qualityMap[value] || 'unknown';
|
|
}
|
|
|
|
export function getTorrentStatusString(value: number): string {
|
|
return torrentStatusMap[value] || 'unknown';
|
|
}
|
|
export function getFullyQualifiedShowName(show: { name: string; year: number }): string {
|
|
let name = show.name;
|
|
if (show.year != null) {
|
|
name += ' (' + show.year + ')';
|
|
}
|
|
return name;
|
|
}
|
|
|
|
export function convertTorrentSeasonRangeToIntegerRange(torrent: any): string {
|
|
if (torrent.season?.length === 1) return torrent.season[0]?.toString();
|
|
if (torrent.season?.length >= 2) return torrent.season[0]?.toString() + "-" + torrent.season.at(-1).toString();
|
|
else {
|
|
console.log("Error parsing season range: " + torrent.seasons);
|
|
return "Error parsing season range: " + torrent.seasons;
|
|
}
|
|
|
|
}
|
|
|
|
export async function handleLogout() {
|
|
const response = await fetch(apiUrl + '/auth/cookie/logout', {
|
|
method: 'POST',
|
|
credentials: 'include'
|
|
});
|
|
if (response.ok) {
|
|
console.log('Logout successful!');
|
|
toast.success('Logout successful!');
|
|
await goto(base + '/login');
|
|
} else {
|
|
console.error('Logout failed:', response.status);
|
|
toast.error('Logout failed: ' + response.status);
|
|
}
|
|
} |