+
+ {/* 转发按钮 */}
+
+
+
+ {/* 下载按钮 */}
);
}
diff --git a/lib/env.ts b/lib/env.ts
index 280a755..a57b7ab 100644
--- a/lib/env.ts
+++ b/lib/env.ts
@@ -17,6 +17,7 @@ export interface EnvConfig {
javaUrl: string;
cutUrl: string;
cutUrlTo: string;
+ shareApiUrl: string;
// Google OAuth 配置
googleClientId: string;
@@ -52,6 +53,7 @@ export const getEnvConfig = (): EnvConfig => {
javaUrl: process.env.NEXT_PUBLIC_JAVA_URL || 'https://77.app.java.auth.qikongjian.com',
cutUrl: process.env.NEXT_PUBLIC_CUT_URL || 'https://smartcut.api.movieflow.ai',
cutUrlTo: process.env.NEXT_PUBLIC_CUT_URL_TO || 'https://smartcut.api.movieflow.ai',
+ shareApiUrl: process.env.NEXT_PUBLIC_SHARE_API_URL || 'http://39.97.48.225:8000',
// Google OAuth 配置
googleClientId: process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID || '847079918888-o1nne8d3ij80dn20qurivo987pv07225.apps.googleusercontent.com',
@@ -90,6 +92,7 @@ export const {
javaUrl,
cutUrl,
cutUrlTo,
+ shareApiUrl,
// Google OAuth 配置
googleClientId,
@@ -155,6 +158,10 @@ export const validateEnvConfig = (): { isValid: boolean; errors: string[] } => {
errors.push('NEXT_PUBLIC_JAVA_URL is required');
}
+ if (!shareApiUrl) {
+ errors.push('NEXT_PUBLIC_SHARE_API_URL is required');
+ }
+
if (!googleClientId) {
errors.push('NEXT_PUBLIC_GOOGLE_CLIENT_ID is required');
}
@@ -172,6 +179,12 @@ export const validateEnvConfig = (): { isValid: boolean; errors: string[] } => {
errors.push('NEXT_PUBLIC_JAVA_URL must be a valid URL');
}
+ try {
+ new URL(shareApiUrl);
+ } catch {
+ errors.push('NEXT_PUBLIC_SHARE_API_URL must be a valid URL');
+ }
+
return {
isValid: errors.length === 0,
errors,
@@ -189,6 +202,7 @@ export const logEnvConfig = (): void => {
javaUrl,
cutUrl,
cutUrlTo,
+ shareApiUrl,
googleClientId,
googleRedirectUri: getGoogleRedirectUri(),
gaEnabled,