From 07c3270e126423c92f1e593863a8a65bdc530894 Mon Sep 17 00:00:00 2001 From: Lars Behrends Date: Fri, 10 Apr 2026 14:32:54 +0200 Subject: [PATCH] backend env url --- .env.example | 3 +++ src/api.ts | 2 +- src/components/ImporterView.tsx | 4 +++- src/lib/playniteImporter.ts | 8 +++++--- src/lib/stashappImporter.ts | 18 ++++++++++-------- src/lib/xbvrImporter.ts | 10 ++++++---- 6 files changed, 28 insertions(+), 17 deletions(-) diff --git a/.env.example b/.env.example index 531854e..809b409 100644 --- a/.env.example +++ b/.env.example @@ -3,6 +3,9 @@ # Used for self-referential links, OAuth callbacks, and API endpoints. APP_URL="MY_APP_URL" +# Backend API URL +VITE_API_URL="http://192.168.1.102:6400" + # Importer Configurations # XBVR Importer VITE_XBVR_URL="" diff --git a/src/api.ts b/src/api.ts index 6574171..8039ead 100644 --- a/src/api.ts +++ b/src/api.ts @@ -1,6 +1,6 @@ import { Media, Staff, UserSettings, MediaCategory } from './types'; -const BASE_URL = 'http://192.168.1.102:6400'; +const BASE_URL = import.meta.env.VITE_API_URL; function normalizeUrl(url: string | null): string { if (!url) return ''; diff --git a/src/components/ImporterView.tsx b/src/components/ImporterView.tsx index 520db06..c753163 100644 --- a/src/components/ImporterView.tsx +++ b/src/components/ImporterView.tsx @@ -7,9 +7,11 @@ import { importFromXBVR, XBVRConfig, ImportProgress } from '@/lib/xbvrImporter'; import { importFromStashAPP, StashAPPConfig, updateActorsFromStashAPP } from '@/lib/stashappImporter'; import { importFromPlaynite, PlayniteConfig } from '@/lib/playniteImporter'; +const BASE_URL = import.meta.env.VITE_BASE_URL || 'http://localhost:3000'; + export default function ImporterView() { const navigate = useNavigate(); - const [xbvrConfig, setXbvrConfig] = useState({ url: import.meta.env.VITE_XBVR_URL || '' }); + const [xbvrConfig, setXbvrConfig] = useState({ url: import.meta.env.VITE_XBVR_URL || BASE_URL }); const [stashappConfig, setStashappConfig] = useState({ url: import.meta.env.VITE_STASHAPP_URL || '', apiKey: import.meta.env.VITE_STASHAPP_API_KEY || '' diff --git a/src/lib/playniteImporter.ts b/src/lib/playniteImporter.ts index eb873f6..d0a5ef0 100644 --- a/src/lib/playniteImporter.ts +++ b/src/lib/playniteImporter.ts @@ -1,3 +1,5 @@ +const BASE_URL = import.meta.env.VITE_API_URL; + export interface PlayniteConfig { ip: string; apiToken: string; @@ -108,7 +110,7 @@ export async function importFromPlaynite( // Step 0: Fetch existing media to check for duplicates and enable updates logCallback('Fetching existing media from Kyoo API...'); - const existingMediaResponse = await fetch('http://192.168.1.102:6400/api/media?limit=1000'); + const existingMediaResponse = await fetch(`${BASE_URL}/api/media?limit=1000`); const existingMediaData = await existingMediaResponse.json(); const existingMedia = new Map( (existingMediaData.data?.items || []).map((m: any) => [m.title, m]) @@ -279,13 +281,13 @@ export async function importFromPlaynite( let response; if (isUpdate) { - response = await fetch(`http://192.168.1.102:6400/api/media/${(existingGame as any).id}`, { + response = await fetch(`${BASE_URL}/api/media/${(existingGame as any).id}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(mediaData) }); } else { - response = await fetch('http://192.168.1.102:6400/api/media', { + response = await fetch(`${BASE_URL}/api/media`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(mediaData) diff --git a/src/lib/stashappImporter.ts b/src/lib/stashappImporter.ts index 5fdf349..da40158 100644 --- a/src/lib/stashappImporter.ts +++ b/src/lib/stashappImporter.ts @@ -1,3 +1,5 @@ +const BASE_URL = import.meta.env.VITE_API_URL; + export interface StashAPPConfig { url: string; apiKey?: string; @@ -155,7 +157,7 @@ export async function updateActorsFromStashAPP( // Fetch existing cast from Kyoo API logCallback('Fetching existing cast from Kyoo API...'); - const existingCastResponse = await fetch('http://192.168.1.102:6400/api/cast'); + const existingCastResponse = await fetch(`${BASE_URL}/api/cast`); const existingCastData = await existingCastResponse.json(); const existingActors = new Map( (existingCastData.data?.items || []).map((c: any) => [c.name, c]) @@ -274,7 +276,7 @@ export async function updateActorsFromStashAPP( updateData.birthPlace = performer.country; } - const response = await fetch(`http://192.168.1.102:6400/api/cast/${existingActor.id}`, { + const response = await fetch(`${BASE_URL}/api/cast/${existingActor.id}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(updateData) @@ -290,7 +292,7 @@ export async function updateActorsFromStashAPP( } } else { // Create new actor - const response = await fetch('http://192.168.1.102:6400/api/cast/adult', { + const response = await fetch(`${BASE_URL}/api/cast/adult`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ @@ -377,7 +379,7 @@ export async function importFromStashAPP( // Step 0: Fetch existing media and cast to check for duplicates logCallback('Fetching existing media from Kyoo API...'); - const existingMediaResponse = await fetch('http://192.168.1.102:6400/api/media'); + const existingMediaResponse = await fetch(`${BASE_URL}/api/media`); const existingMediaData = await existingMediaResponse.json(); const existingTitles = new Set( existingMediaData.data?.items?.map((m: any) => m.title) || [] @@ -385,7 +387,7 @@ export async function importFromStashAPP( logCallback(`Found ${existingTitles.size} existing videos in database`); logCallback('Fetching existing cast from Kyoo API...'); - const existingCastResponse = await fetch('http://192.168.1.102:6400/api/cast'); + const existingCastResponse = await fetch(`${BASE_URL}/api/cast`, {}); const existingCastData = await existingCastResponse.json(); const existingActors = new Map( (existingCastData.data?.items || []).map((c: any) => [c.name, c]) @@ -550,7 +552,7 @@ export async function importFromStashAPP( updateData.birthPlace = performer.country; } - const response = await fetch(`http://192.168.1.102:6400/api/cast/${existingActor.id}`, { + const response = await fetch(`${BASE_URL}/api/cast/${existingActor.id}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(updateData) @@ -566,7 +568,7 @@ export async function importFromStashAPP( } } else { // Create new actor - const response = await fetch('http://192.168.1.102:6400/api/cast/adult', { + const response = await fetch(`${BASE_URL}/api/cast/adult`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ @@ -706,7 +708,7 @@ export async function importFromStashAPP( staff: staff }; - const response = await fetch('http://192.168.1.102:6400/api/media', { + const response = await fetch(`${BASE_URL}/api/media`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(mediaData) diff --git a/src/lib/xbvrImporter.ts b/src/lib/xbvrImporter.ts index e955a3b..023aa0d 100644 --- a/src/lib/xbvrImporter.ts +++ b/src/lib/xbvrImporter.ts @@ -1,3 +1,5 @@ +const BASE_URL = import.meta.env.VITE_API_URL; + export interface XBVRConfig { url: string; apiKey?: string; @@ -74,7 +76,7 @@ export async function importFromXBVR( // Step 0: Fetch existing media and cast to check for duplicates logCallback('Fetching existing media from Kyoo API...'); - const existingMediaResponse = await fetch('http://192.168.1.102:6400/api/media?limit=1000'); + const existingMediaResponse = await fetch(`${BASE_URL}/api/media?limit=1000`); const existingMediaData = await existingMediaResponse.json(); const existingTitles = new Set( existingMediaData.data?.items?.map((m: any) => m.title) || [] @@ -82,7 +84,7 @@ export async function importFromXBVR( logCallback(`Found ${existingTitles.size} existing videos in database`); logCallback('Fetching existing cast from Kyoo API...'); - const existingCastResponse = await fetch('http://192.168.1.102:6400/api/cast?limit=1000'); + const existingCastResponse = await fetch(`${BASE_URL}/api/cast?limit=1000`); const existingCastData = await existingCastResponse.json(); const existingActors = new Map( (existingCastData.data?.items || []).map((c: any) => [c.name, c]) @@ -194,7 +196,7 @@ export async function importFromXBVR( logCallback(`⊘ Actor already exists: ${actor.name}`); } else { // Create new actor - const response = await fetch('http://192.168.1.102:6400/api/cast', { + const response = await fetch(`${BASE_URL}/api/cast`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ @@ -312,7 +314,7 @@ export async function importFromXBVR( staff: staff }; - const response = await fetch('http://192.168.1.102:6400/api/media', { + const response = await fetch(`${BASE_URL}/api/media`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(mediaData)