|
|
|
@ -1,7 +1,83 @@ |
|
|
|
import { NextRequest, NextResponse } from "next/server"; |
|
|
|
import { requireLogin } from "@/app/api/_auth"; |
|
|
|
const UPSTREAM_CONFIG_PATH = "/api_client/param/config"; |
|
|
|
type ContentConfig = { |
|
|
|
indexMainSlogan: string; |
|
|
|
indexSubSlogan: string; |
|
|
|
indexBannerImage: string; |
|
|
|
exploreHeaderImage: string; |
|
|
|
exploreHeaderTitle: string; |
|
|
|
subscribeHeaderImage: string; |
|
|
|
subscribeHeaderTitle: string; |
|
|
|
userHomepageHeaderImage: string; |
|
|
|
}; |
|
|
|
|
|
|
|
type SystemConfig = { |
|
|
|
serviceEmail: string; |
|
|
|
servicePhone: string; |
|
|
|
contactUsPageUrl: string; |
|
|
|
useNoticePageUrl: string; |
|
|
|
paymentTermsPageUrl: string; |
|
|
|
copyRightRulesPageUrl: string; |
|
|
|
customCharacterPageUrl: string; |
|
|
|
usageTutorialPageUrl: string; |
|
|
|
serviceQrCode: string; |
|
|
|
wxFollowReplyMsg: string; |
|
|
|
wxLoginReplyMsg: string; |
|
|
|
wxRegisterReplyMsg: string; |
|
|
|
genImageBatchSize: number; |
|
|
|
genImageTaskRunningSize: number; |
|
|
|
genVideoTaskRunningSize: number; |
|
|
|
genAudioTaskRunningSize: number; |
|
|
|
aiExpandSystemPrompt: string; |
|
|
|
defaultBaseModelType: string; |
|
|
|
characterLoraStrength: number; |
|
|
|
styleLoraStrength: number; |
|
|
|
enableMemberSubscription: boolean; |
|
|
|
nonMemberGenImageLimitPerDay: number; |
|
|
|
nonMemberGenVideoLimitPerDay: number; |
|
|
|
nonMemberGenVoiceLimitPerDay: number; |
|
|
|
nonMemberTaskQueueSize: number; |
|
|
|
basicMemberTaskQueueSize: number; |
|
|
|
standardMemberTaskQueueSize: number; |
|
|
|
seniorMemberTaskQueueSize: number; |
|
|
|
futureCreatorMemberTaskQueueSize: number; |
|
|
|
sdImageGenerationCoinPrice: number; |
|
|
|
hdImageGenerationCoinPrice: number; |
|
|
|
sdImageOptimizeCoinPrice: number; |
|
|
|
hdImageOptimizeCoinPrice: number; |
|
|
|
sdVideoGenerationCoinPrice: number; |
|
|
|
hdVideoGenerationCoinPrice: number; |
|
|
|
audioGenerationCoinPrice: number; |
|
|
|
watermarkText: string; |
|
|
|
waterMarkFontSize: number; |
|
|
|
videoPowerPerSecond: number; |
|
|
|
audioPowerPerSecond: number; |
|
|
|
trainPowerPerAvatar: number; |
|
|
|
trainPowerPerSpeaker: number; |
|
|
|
avatarLimitPerUser: number; |
|
|
|
speakerLimitPerUser: number; |
|
|
|
userJoinActivityNum: number; |
|
|
|
activityGenImageTaskSize: number; |
|
|
|
storyAgentPromptShow: boolean; |
|
|
|
inviteCodeUseNumLimit: number; |
|
|
|
inviteCodeGenerateNumUserPer: number; |
|
|
|
genImageTimeLimit: number; |
|
|
|
genVideoTimeLimit: number; |
|
|
|
genAudioTimeLimit: number; |
|
|
|
popiartStudioWindowsDownloadLink: string; |
|
|
|
popiartStudioMacMDownloadLink: string; |
|
|
|
popiartStudioMacInDownloadLink: string; |
|
|
|
popiartEvidencePreservationAgreement: string; |
|
|
|
aliyunRishDetectionConfidence: number; |
|
|
|
}; |
|
|
|
|
|
|
|
export type ConfigResponse = { |
|
|
|
contentConfig?: ContentConfig; |
|
|
|
systemConfig?: SystemConfig; |
|
|
|
status?: string; |
|
|
|
message?: string; |
|
|
|
}; |
|
|
|
const getUpstreamUrl = (request: NextRequest): string => { |
|
|
|
const baseUrl = |
|
|
|
process.env.POPIART_API_BASE_URL || |
|
|
|
|