mirror of
https://github.com/aleksilassila/reiverr.git
synced 2026-04-27 11:05:13 +02:00
69 lines
1.7 KiB
Svelte
69 lines
1.7 KiB
Svelte
<script lang="ts">
|
|
import Modal from '../Modal/Modal.svelte';
|
|
import ModalContent from '../Modal/ModalContent.svelte';
|
|
import { getReleases, queueRelease } from '$lib/radarr/radarr';
|
|
import { formatSize } from '$lib/utils';
|
|
import IconButton from '../IconButton.svelte';
|
|
import { Download } from 'radix-icons-svelte';
|
|
import { createEventDispatcher } from 'svelte';
|
|
|
|
const dispatch = createEventDispatcher();
|
|
|
|
export let visible = false;
|
|
function close() {
|
|
visible = false;
|
|
}
|
|
|
|
export let radarrId;
|
|
|
|
const { data: releases, load: loadReleases, didLoad: didLoadReleases } = getReleases();
|
|
const { data, load: downloadRelease } = queueRelease();
|
|
|
|
$: if (visible) loadReleases(radarrId);
|
|
|
|
let releasesFiltered = [];
|
|
let releasesSkipped = 0;
|
|
releases.subscribe((releases: any[]) => {
|
|
if (!releases) return;
|
|
releasesFiltered = releases
|
|
.filter((release) => {
|
|
if (release.seeders < 5) return false;
|
|
else return true;
|
|
})
|
|
.sort((a, b) => b.size - a.size)
|
|
.slice(0, 5);
|
|
releasesSkipped = releases.length - releasesFiltered.length;
|
|
});
|
|
|
|
function handleDownload(guid) {
|
|
downloadRelease(guid).then(() => {
|
|
dispatch('download');
|
|
});
|
|
}
|
|
</script>
|
|
|
|
<Modal {visible} {close}>
|
|
<ModalContent>
|
|
{#if releasesFiltered?.length}
|
|
Releases:
|
|
<div class="flex flex-col">
|
|
{#each releasesFiltered as release}
|
|
<div class="flex items-center justify-between">
|
|
<div>{formatSize(release.size)}</div>
|
|
<IconButton on:click={() => handleDownload(release.guid)}>
|
|
<Download size="20" />
|
|
</IconButton>
|
|
</div>
|
|
{/each}
|
|
</div>
|
|
{#if releasesSkipped > 0}
|
|
<div>{releasesSkipped} releases hidden</div>
|
|
{/if}
|
|
{:else if !$didLoadReleases}
|
|
Loading...
|
|
{:else}
|
|
No releases found
|
|
{/if}
|
|
</ModalContent>
|
|
</Modal>
|