mirror of
https://github.com/aleksilassila/reiverr.git
synced 2026-04-22 00:35:12 +02:00
Added docker production setup, updated README
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import createClient from 'openapi-fetch';
|
||||
import type { components, paths } from '$lib/apis/jellyfin/jellyfin.generated';
|
||||
import { PUBLIC_JELLYFIN_API_KEY, PUBLIC_JELLYFIN_URL } from '$env/static/public';
|
||||
import { env } from '$env/dynamic/public';
|
||||
import { request } from '$lib/utils';
|
||||
import type { DeviceProfile } from '$lib/apis/jellyfin/playback-profiles';
|
||||
import { settings } from '$lib/stores/settings.store';
|
||||
@@ -11,9 +11,9 @@ export type JellyfinItem = components['schemas']['BaseItemDto'];
|
||||
export const JELLYFIN_DEVICE_ID = 'Reiverr Client';
|
||||
|
||||
export const JellyfinApi = createClient<paths>({
|
||||
baseUrl: PUBLIC_JELLYFIN_URL,
|
||||
baseUrl: env.PUBLIC_JELLYFIN_URL,
|
||||
headers: {
|
||||
Authorization: `MediaBrowser DeviceId="${JELLYFIN_DEVICE_ID}", Token="${PUBLIC_JELLYFIN_API_KEY}"`
|
||||
Authorization: `MediaBrowser DeviceId="${JELLYFIN_DEVICE_ID}", Token="${env.PUBLIC_JELLYFIN_API_KEY}"`
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import { log, request } from '$lib/utils';
|
||||
import type { paths } from '$lib/apis/radarr/radarr.generated';
|
||||
import type { components } from '$lib/apis/radarr/radarr.generated';
|
||||
import { getTmdbMovie } from '$lib/apis/tmdb/tmdbApi';
|
||||
import { PUBLIC_RADARR_API_KEY, PUBLIC_RADARR_BASE_URL } from '$env/static/public';
|
||||
import { env } from '$env/dynamic/public';
|
||||
import { settings } from '$lib/stores/settings.store';
|
||||
import { get } from 'svelte/store';
|
||||
|
||||
@@ -27,9 +27,9 @@ export interface RadarrMovieOptions {
|
||||
}
|
||||
|
||||
export const RadarrApi = createClient<paths>({
|
||||
baseUrl: PUBLIC_RADARR_BASE_URL,
|
||||
baseUrl: env.PUBLIC_RADARR_BASE_URL,
|
||||
headers: {
|
||||
'X-Api-Key': PUBLIC_RADARR_API_KEY
|
||||
'X-Api-Key': env.PUBLIC_RADARR_API_KEY
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { PUBLIC_SONARR_API_KEY, PUBLIC_SONARR_BASE_URL } from '$env/static/public';
|
||||
import { env } from '$env/dynamic/public';
|
||||
import type { components, paths } from '$lib/apis/sonarr/sonarr.generated';
|
||||
import { log } from '$lib/utils';
|
||||
import createClient from 'openapi-fetch';
|
||||
@@ -40,9 +40,9 @@ export interface SonarrSeriesOptions {
|
||||
}
|
||||
|
||||
export const SonarrApi = createClient<paths>({
|
||||
baseUrl: PUBLIC_SONARR_BASE_URL,
|
||||
baseUrl: env.PUBLIC_SONARR_BASE_URL,
|
||||
headers: {
|
||||
'X-Api-Key': PUBLIC_SONARR_API_KEY
|
||||
'X-Api-Key': env.PUBLIC_SONARR_API_KEY
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { PUBLIC_RADARR_BASE_URL } from '$env/static/public';
|
||||
import { env } from '$env/dynamic/public';
|
||||
import { getDiskSpace } from '$lib/apis/radarr/radarrApi';
|
||||
import { library } from '$lib/stores/library.store';
|
||||
import { formatSize } from '$lib/utils.js';
|
||||
@@ -44,7 +44,7 @@
|
||||
{large}
|
||||
title="Radarr"
|
||||
subtitle="Movies Provider"
|
||||
href={PUBLIC_RADARR_BASE_URL}
|
||||
href={env.PUBLIC_RADARR_BASE_URL}
|
||||
stats={[
|
||||
{ title: 'Movies', value: String(moviesCount) },
|
||||
{ title: 'Space Taken', value: formatSize(spaceOccupied) },
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
import StatsPlaceholder from './StatsPlaceholder.svelte';
|
||||
import StatsContainer from './StatsContainer.svelte';
|
||||
import SonarrIcon from '../svgs/SonarrIcon.svelte';
|
||||
import { PUBLIC_SONARR_BASE_URL } from '$env/static/public';
|
||||
import { env } from '$env/dynamic/public';
|
||||
import { getDiskSpace } from '$lib/apis/sonarr/sonarrApi';
|
||||
import { library } from '$lib/stores/library.store';
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
{large}
|
||||
title="Sonarr"
|
||||
subtitle="Shows Provider"
|
||||
href={PUBLIC_SONARR_BASE_URL}
|
||||
href={env.PUBLIC_SONARR_BASE_URL}
|
||||
stats={[
|
||||
{ title: 'Episodes', value: String(episodesCount) },
|
||||
{ title: 'Space Taken', value: formatSize(spaceOccupied) },
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
import { onMount } from 'svelte';
|
||||
import { fade, fly } from 'svelte/transition';
|
||||
import type { TitleType } from '$lib/types';
|
||||
import { openTitleModal } from '../Modal/Modal';
|
||||
|
||||
const TRAILER_TIMEOUT = 3000;
|
||||
const TRAILER_LOAD_TIME = 1000;
|
||||
@@ -110,25 +111,6 @@
|
||||
</span>
|
||||
{/each}
|
||||
</div>
|
||||
<!-- <div
|
||||
class="flex gap-4"
|
||||
in:fly|global={{ y: -5, delay: ANIMATION_DURATION, duration: ANIMATION_DURATION }}
|
||||
out:fly|global={{ y: 5, duration: ANIMATION_DURATION }}
|
||||
>
|
||||
<Button type="primary" href={`/${type}/${tmdbId}`}>
|
||||
<span>Details</span><ChevronRight size={20} />
|
||||
</Button>
|
||||
{#if trailerId}
|
||||
<Button
|
||||
type="secondary"
|
||||
href={youtubeUrl}
|
||||
on:mouseover={() => (focusTrailer = true)}
|
||||
on:mouseleave={() => (focusTrailer = false)}
|
||||
>
|
||||
<span>Watch Trailer</span><ChevronRight size={20} />
|
||||
</Button>
|
||||
{/if}
|
||||
</div> -->
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
@@ -138,7 +120,7 @@
|
||||
out:fade|global={{ duration: ANIMATION_DURATION }}
|
||||
>
|
||||
<div class="flex gap-4 items-center">
|
||||
<Button size="lg" type="primary" href={`/${type}/${tmdbId}`}>
|
||||
<Button size="lg" type="primary" on:click={() => openTitleModal(tmdbId, type)}>
|
||||
<span>Details</span><ChevronRight size={20} />
|
||||
</Button>
|
||||
{#if trailerId}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { PUBLIC_JELLYFIN_URL } from '$env/static/public';
|
||||
import { env } from '$env/dynamic/public';
|
||||
import {
|
||||
getJellyfinItem,
|
||||
getJellyfinPlaybackInfo,
|
||||
@@ -48,10 +48,10 @@
|
||||
|
||||
const hls = new Hls();
|
||||
|
||||
hls.loadSource(PUBLIC_JELLYFIN_URL + playbackUri);
|
||||
hls.loadSource(env.PUBLIC_JELLYFIN_URL + playbackUri);
|
||||
hls.attachMedia(video);
|
||||
} else {
|
||||
video.src = PUBLIC_JELLYFIN_URL + playbackUri;
|
||||
video.src = env.PUBLIC_JELLYFIN_URL + playbackUri;
|
||||
}
|
||||
|
||||
if (item?.UserData?.PlaybackPositionTicks) {
|
||||
|
||||
Reference in New Issue
Block a user