diff --git a/app/api/addStream/route.ts b/app/api/addStream/route.ts index 750962e..20961df 100644 --- a/app/api/addStream/route.ts +++ b/app/api/addStream/route.ts @@ -63,8 +63,13 @@ async function fetchTeamInfo(teamId: number) { import { validateStreamInput } from '../../../lib/security'; +// Generate OBS source name from stream name +function generateOBSSourceName(streamName: string): string { + return streamName.toLowerCase().replace(/\s+/g, '_') + '_twitch'; +} + export async function POST(request: NextRequest) { - let name: string, obs_source_name: string, url: string, team_id: number; + let name: string, url: string, team_id: number, obs_source_name: string; // Parse and validate request body try { @@ -78,7 +83,10 @@ export async function POST(request: NextRequest) { }, { status: 400 }); } - ({ name, obs_source_name, url, team_id } = validation.data!); + ({ name, url, team_id } = validation.data!); + + // Auto-generate OBS source name from stream name + obs_source_name = generateOBSSourceName(name); } catch { return NextResponse.json({ error: 'Invalid JSON in request body' }, { status: 400 }); diff --git a/app/streams/page.tsx b/app/streams/page.tsx index 75aa281..d24851b 100644 --- a/app/streams/page.tsx +++ b/app/streams/page.tsx @@ -17,7 +17,6 @@ interface Stream { export default function AddStream() { const [formData, setFormData] = useState({ name: '', - obs_source_name: '', twitch_username: '', team_id: null, }); @@ -125,9 +124,6 @@ export default function AddStream() { errors.name = 'Stream name must be at least 2 characters'; } - if (!formData.obs_source_name.trim()) { - errors.obs_source_name = 'OBS source name is required'; - } if (!formData.twitch_username.trim()) { errors.twitch_username = 'Twitch username is required'; @@ -162,7 +158,7 @@ export default function AddStream() { const data = await response.json(); if (response.ok) { showSuccess('Stream Added', `"${formData.name}" has been added successfully`); - setFormData({ name: '', obs_source_name: '', twitch_username: '', team_id: null }); + setFormData({ name: '', twitch_username: '', team_id: null }); setValidationErrors({}); fetchData(); } else { @@ -214,28 +210,6 @@ export default function AddStream() { )} - {/* OBS Source Name */} -