backend env url
This commit is contained in:
@@ -3,6 +3,9 @@
|
|||||||
# Used for self-referential links, OAuth callbacks, and API endpoints.
|
# Used for self-referential links, OAuth callbacks, and API endpoints.
|
||||||
APP_URL="MY_APP_URL"
|
APP_URL="MY_APP_URL"
|
||||||
|
|
||||||
|
# Backend API URL
|
||||||
|
VITE_API_URL="http://192.168.1.102:6400"
|
||||||
|
|
||||||
# Importer Configurations
|
# Importer Configurations
|
||||||
# XBVR Importer
|
# XBVR Importer
|
||||||
VITE_XBVR_URL=""
|
VITE_XBVR_URL=""
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Media, Staff, UserSettings, MediaCategory } from './types';
|
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 {
|
function normalizeUrl(url: string | null): string {
|
||||||
if (!url) return '';
|
if (!url) return '';
|
||||||
|
|||||||
@@ -7,9 +7,11 @@ import { importFromXBVR, XBVRConfig, ImportProgress } from '@/lib/xbvrImporter';
|
|||||||
import { importFromStashAPP, StashAPPConfig, updateActorsFromStashAPP } from '@/lib/stashappImporter';
|
import { importFromStashAPP, StashAPPConfig, updateActorsFromStashAPP } from '@/lib/stashappImporter';
|
||||||
import { importFromPlaynite, PlayniteConfig } from '@/lib/playniteImporter';
|
import { importFromPlaynite, PlayniteConfig } from '@/lib/playniteImporter';
|
||||||
|
|
||||||
|
const BASE_URL = import.meta.env.VITE_BASE_URL || 'http://localhost:3000';
|
||||||
|
|
||||||
export default function ImporterView() {
|
export default function ImporterView() {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const [xbvrConfig, setXbvrConfig] = useState<XBVRConfig>({ url: import.meta.env.VITE_XBVR_URL || '' });
|
const [xbvrConfig, setXbvrConfig] = useState<XBVRConfig>({ url: import.meta.env.VITE_XBVR_URL || BASE_URL });
|
||||||
const [stashappConfig, setStashappConfig] = useState<StashAPPConfig>({
|
const [stashappConfig, setStashappConfig] = useState<StashAPPConfig>({
|
||||||
url: import.meta.env.VITE_STASHAPP_URL || '',
|
url: import.meta.env.VITE_STASHAPP_URL || '',
|
||||||
apiKey: import.meta.env.VITE_STASHAPP_API_KEY || ''
|
apiKey: import.meta.env.VITE_STASHAPP_API_KEY || ''
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
const BASE_URL = import.meta.env.VITE_API_URL;
|
||||||
|
|
||||||
export interface PlayniteConfig {
|
export interface PlayniteConfig {
|
||||||
ip: string;
|
ip: string;
|
||||||
apiToken: string;
|
apiToken: string;
|
||||||
@@ -108,7 +110,7 @@ export async function importFromPlaynite(
|
|||||||
|
|
||||||
// Step 0: Fetch existing media to check for duplicates and enable updates
|
// Step 0: Fetch existing media to check for duplicates and enable updates
|
||||||
logCallback('Fetching existing media from Kyoo API...');
|
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 existingMediaData = await existingMediaResponse.json();
|
||||||
const existingMedia = new Map(
|
const existingMedia = new Map(
|
||||||
(existingMediaData.data?.items || []).map((m: any) => [m.title, m])
|
(existingMediaData.data?.items || []).map((m: any) => [m.title, m])
|
||||||
@@ -279,13 +281,13 @@ export async function importFromPlaynite(
|
|||||||
|
|
||||||
let response;
|
let response;
|
||||||
if (isUpdate) {
|
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',
|
method: 'PUT',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify(mediaData)
|
body: JSON.stringify(mediaData)
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
response = await fetch('http://192.168.1.102:6400/api/media', {
|
response = await fetch(`${BASE_URL}/api/media`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify(mediaData)
|
body: JSON.stringify(mediaData)
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
const BASE_URL = import.meta.env.VITE_API_URL;
|
||||||
|
|
||||||
export interface StashAPPConfig {
|
export interface StashAPPConfig {
|
||||||
url: string;
|
url: string;
|
||||||
apiKey?: string;
|
apiKey?: string;
|
||||||
@@ -155,7 +157,7 @@ export async function updateActorsFromStashAPP(
|
|||||||
|
|
||||||
// Fetch existing cast from Kyoo API
|
// Fetch existing cast from Kyoo API
|
||||||
logCallback('Fetching 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 existingCastData = await existingCastResponse.json();
|
||||||
const existingActors = new Map(
|
const existingActors = new Map(
|
||||||
(existingCastData.data?.items || []).map((c: any) => [c.name, c])
|
(existingCastData.data?.items || []).map((c: any) => [c.name, c])
|
||||||
@@ -274,7 +276,7 @@ export async function updateActorsFromStashAPP(
|
|||||||
updateData.birthPlace = performer.country;
|
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',
|
method: 'PUT',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify(updateData)
|
body: JSON.stringify(updateData)
|
||||||
@@ -290,7 +292,7 @@ export async function updateActorsFromStashAPP(
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Create new actor
|
// 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',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
@@ -377,7 +379,7 @@ export async function importFromStashAPP(
|
|||||||
|
|
||||||
// Step 0: Fetch existing media and cast to check for duplicates
|
// Step 0: Fetch existing media and cast to check for duplicates
|
||||||
logCallback('Fetching existing media from Kyoo API...');
|
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 existingMediaData = await existingMediaResponse.json();
|
||||||
const existingTitles = new Set(
|
const existingTitles = new Set(
|
||||||
existingMediaData.data?.items?.map((m: any) => m.title) || []
|
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(`Found ${existingTitles.size} existing videos in database`);
|
||||||
|
|
||||||
logCallback('Fetching 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 existingCastData = await existingCastResponse.json();
|
||||||
const existingActors = new Map(
|
const existingActors = new Map(
|
||||||
(existingCastData.data?.items || []).map((c: any) => [c.name, c])
|
(existingCastData.data?.items || []).map((c: any) => [c.name, c])
|
||||||
@@ -550,7 +552,7 @@ export async function importFromStashAPP(
|
|||||||
updateData.birthPlace = performer.country;
|
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',
|
method: 'PUT',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify(updateData)
|
body: JSON.stringify(updateData)
|
||||||
@@ -566,7 +568,7 @@ export async function importFromStashAPP(
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Create new actor
|
// 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',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
@@ -706,7 +708,7 @@ export async function importFromStashAPP(
|
|||||||
staff: staff
|
staff: staff
|
||||||
};
|
};
|
||||||
|
|
||||||
const response = await fetch('http://192.168.1.102:6400/api/media', {
|
const response = await fetch(`${BASE_URL}/api/media`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify(mediaData)
|
body: JSON.stringify(mediaData)
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
const BASE_URL = import.meta.env.VITE_API_URL;
|
||||||
|
|
||||||
export interface XBVRConfig {
|
export interface XBVRConfig {
|
||||||
url: string;
|
url: string;
|
||||||
apiKey?: string;
|
apiKey?: string;
|
||||||
@@ -74,7 +76,7 @@ export async function importFromXBVR(
|
|||||||
|
|
||||||
// Step 0: Fetch existing media and cast to check for duplicates
|
// Step 0: Fetch existing media and cast to check for duplicates
|
||||||
logCallback('Fetching existing media from Kyoo API...');
|
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 existingMediaData = await existingMediaResponse.json();
|
||||||
const existingTitles = new Set(
|
const existingTitles = new Set(
|
||||||
existingMediaData.data?.items?.map((m: any) => m.title) || []
|
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(`Found ${existingTitles.size} existing videos in database`);
|
||||||
|
|
||||||
logCallback('Fetching existing cast from Kyoo API...');
|
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 existingCastData = await existingCastResponse.json();
|
||||||
const existingActors = new Map(
|
const existingActors = new Map(
|
||||||
(existingCastData.data?.items || []).map((c: any) => [c.name, c])
|
(existingCastData.data?.items || []).map((c: any) => [c.name, c])
|
||||||
@@ -194,7 +196,7 @@ export async function importFromXBVR(
|
|||||||
logCallback(`⊘ Actor already exists: ${actor.name}`);
|
logCallback(`⊘ Actor already exists: ${actor.name}`);
|
||||||
} else {
|
} else {
|
||||||
// Create new actor
|
// 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',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
@@ -312,7 +314,7 @@ export async function importFromXBVR(
|
|||||||
staff: staff
|
staff: staff
|
||||||
};
|
};
|
||||||
|
|
||||||
const response = await fetch('http://192.168.1.102:6400/api/media', {
|
const response = await fetch(`${BASE_URL}/api/media`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify(mediaData)
|
body: JSON.stringify(mediaData)
|
||||||
|
|||||||
Reference in New Issue
Block a user