diff --git a/frontend/src/api/admin/accounts.ts b/frontend/src/api/admin/accounts.ts index fd93fe7e..8e40e18b 100644 --- a/frontend/src/api/admin/accounts.ts +++ b/frontend/src/api/admin/accounts.ts @@ -568,28 +568,6 @@ export async function refreshOpenAIToken( return data } -/** - * Validate Sora session token and exchange to access token - * @param sessionToken - Sora session token - * @param proxyId - Optional proxy ID - * @param endpoint - API endpoint path - * @returns Token information including access_token - */ -export async function validateSoraSessionToken( - sessionToken: string, - proxyId?: number | null, - endpoint: string = '/admin/sora/st2at' -): Promise> { - const payload: { session_token: string; proxy_id?: number } = { - session_token: sessionToken - } - if (proxyId) { - payload.proxy_id = proxyId - } - const { data } = await apiClient.post>(endpoint, payload) - return data -} - /** * Batch operation result type */ @@ -663,7 +641,6 @@ export const accountsAPI = { generateAuthUrl, exchangeCode, refreshOpenAIToken, - validateSoraSessionToken, batchCreate, batchUpdateCredentials, bulkUpdate, diff --git a/frontend/src/components/layout/AppSidebar.vue b/frontend/src/components/layout/AppSidebar.vue index 80a3eed8..09b83f6f 100644 --- a/frontend/src/components/layout/AppSidebar.vue +++ b/frontend/src/components/layout/AppSidebar.vue @@ -467,21 +467,6 @@ const ChevronDoubleLeftIcon = { ) } -const SoraIcon = { - render: () => - h( - 'svg', - { fill: 'none', viewBox: '0 0 24 24', stroke: 'currentColor', 'stroke-width': '1.5' }, - [ - h('path', { - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - d: 'M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09z' - }) - ] - ) -} - const ChevronDoubleRightIcon = { render: () => h( @@ -504,9 +489,6 @@ const userNavItems = computed((): NavItem[] => { { path: '/keys', label: t('nav.apiKeys'), icon: KeyIcon }, { path: '/usage', label: t('nav.usage'), icon: ChartIcon, hideInSimpleMode: true }, { path: '/subscriptions', label: t('nav.mySubscriptions'), icon: CreditCardIcon, hideInSimpleMode: true }, - ...(appStore.cachedPublicSettings?.sora_client_enabled - ? [{ path: '/sora', label: t('nav.sora'), icon: SoraIcon }] - : []), ...(appStore.cachedPublicSettings?.purchase_subscription_enabled ? [ { @@ -535,9 +517,6 @@ const personalNavItems = computed((): NavItem[] => { { path: '/keys', label: t('nav.apiKeys'), icon: KeyIcon }, { path: '/usage', label: t('nav.usage'), icon: ChartIcon, hideInSimpleMode: true }, { path: '/subscriptions', label: t('nav.mySubscriptions'), icon: CreditCardIcon, hideInSimpleMode: true }, - ...(appStore.cachedPublicSettings?.sora_client_enabled - ? [{ path: '/sora', label: t('nav.sora'), icon: SoraIcon }] - : []), ...(appStore.cachedPublicSettings?.purchase_subscription_enabled ? [ { diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 4c0f0a48..6faf6f59 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -201,18 +201,6 @@ const routes: RouteRecordRaw[] = [ descriptionKey: 'purchase.description' } }, - { - path: '/sora', - name: 'Sora', - component: () => import('@/views/user/SoraView.vue'), - meta: { - requiresAuth: true, - requiresAdmin: false, - title: 'Sora', - titleKey: 'sora.title', - descriptionKey: 'sora.description' - } - }, { path: '/custom/:id', name: 'CustomPage', diff --git a/frontend/src/stores/app.ts b/frontend/src/stores/app.ts index c080c2af..24057136 100644 --- a/frontend/src/stores/app.ts +++ b/frontend/src/stores/app.ts @@ -332,7 +332,6 @@ export const useAppStore = defineStore('app', () => { custom_menu_items: [], custom_endpoints: [], linuxdo_oauth_enabled: false, - sora_client_enabled: false, backend_mode_enabled: false, version: siteVersion.value } diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts index c3d35698..580126c8 100644 --- a/frontend/src/types/index.ts +++ b/frontend/src/types/index.ts @@ -45,9 +45,6 @@ export interface AdminUser extends User { group_rates?: Record // 当前并发数(仅管理员列表接口返回) current_concurrency?: number - // Sora 存储配额(字节) - sora_storage_quota_bytes: number - sora_storage_used_bytes: number } export interface LoginRequest { @@ -112,7 +109,6 @@ export interface PublicSettings { custom_menu_items: CustomMenuItem[] custom_endpoints: CustomEndpoint[] linuxdo_oauth_enabled: boolean - sora_client_enabled: boolean backend_mode_enabled: boolean version: string } @@ -366,7 +362,7 @@ export interface PaginationConfig { // ==================== API Key & Group Types ==================== -export type GroupPlatform = 'anthropic' | 'openai' | 'gemini' | 'antigravity' | 'sora' +export type GroupPlatform = 'anthropic' | 'openai' | 'gemini' | 'antigravity' export type SubscriptionType = 'standard' | 'subscription' @@ -386,13 +382,6 @@ export interface Group { image_price_1k: number | null image_price_2k: number | null image_price_4k: number | null - // Sora 按次计费配置 - sora_image_price_360: number | null - sora_image_price_540: number | null - sora_video_price_per_request: number | null - sora_video_price_per_request_hd: number | null - // Sora 存储配额(字节) - sora_storage_quota_bytes: number // Claude Code 客户端限制 claude_code_only: boolean fallback_group_id: number | null @@ -501,11 +490,6 @@ export interface CreateGroupRequest { image_price_1k?: number | null image_price_2k?: number | null image_price_4k?: number | null - sora_image_price_360?: number | null - sora_image_price_540?: number | null - sora_video_price_per_request?: number | null - sora_video_price_per_request_hd?: number | null - sora_storage_quota_bytes?: number claude_code_only?: boolean fallback_group_id?: number | null fallback_group_id_on_invalid_request?: number | null @@ -532,11 +516,6 @@ export interface UpdateGroupRequest { image_price_1k?: number | null image_price_2k?: number | null image_price_4k?: number | null - sora_image_price_360?: number | null - sora_image_price_540?: number | null - sora_video_price_per_request?: number | null - sora_video_price_per_request_hd?: number | null - sora_storage_quota_bytes?: number claude_code_only?: boolean fallback_group_id?: number | null fallback_group_id_on_invalid_request?: number | null @@ -550,7 +529,7 @@ export interface UpdateGroupRequest { // ==================== Account & Proxy Types ==================== -export type AccountPlatform = 'anthropic' | 'openai' | 'gemini' | 'antigravity' | 'sora' +export type AccountPlatform = 'anthropic' | 'openai' | 'gemini' | 'antigravity' export type AccountType = 'oauth' | 'setup-token' | 'apikey' | 'upstream' | 'bedrock' export type OAuthAddMethod = 'oauth' | 'setup-token' export type ProxyProtocol = 'http' | 'https' | 'socks5' | 'socks5h' diff --git a/frontend/src/views/admin/SettingsView.vue b/frontend/src/views/admin/SettingsView.vue index b5c22be5..1839d03c 100644 --- a/frontend/src/views/admin/SettingsView.vue +++ b/frontend/src/views/admin/SettingsView.vue @@ -1577,31 +1577,6 @@ - -
-
-

- {{ t('admin.settings.soraClient.title') }} -

-

- {{ t('admin.settings.soraClient.description') }} -

-
-
-
-
- -

- {{ t('admin.settings.soraClient.enabledHint') }} -

-
- -
-
-
-
@@ -2125,7 +2100,6 @@ const form = reactive({ hide_ccs_import_button: false, purchase_subscription_enabled: false, purchase_subscription_url: '', - sora_client_enabled: false, custom_menu_items: [] as Array<{id: string; label: string; icon_svg: string; url: string; visibility: 'user' | 'admin'; sort_order: number}>, custom_endpoints: [] as Array<{name: string; endpoint: string; description: string}>, frontend_url: '', @@ -2449,7 +2423,6 @@ async function saveSettings() { hide_ccs_import_button: form.hide_ccs_import_button, purchase_subscription_enabled: form.purchase_subscription_enabled, purchase_subscription_url: form.purchase_subscription_url, - sora_client_enabled: form.sora_client_enabled, custom_menu_items: form.custom_menu_items, custom_endpoints: form.custom_endpoints, frontend_url: form.frontend_url,