feat: Upgrade Next.js and React, configure standalone output, adjust API route runtimes, and add application icon.

This commit is contained in:
kuekhaoyang
2025-12-06 12:47:05 +08:00
parent 30300e745a
commit f575e45a10
10 changed files with 748 additions and 5436 deletions
-1
View File
@@ -1,7 +1,6 @@
import { NextResponse } from 'next/server';
import { ADULT_SOURCES } from '@/lib/api/adult-sources';
export const runtime = 'edge';
export async function GET(request: Request) {
const { searchParams } = new URL(request.url);
const categoryParam = searchParams.get('category') || ''; // Format: "sourceId:typeId" or just "typeId" or empty
-2
View File
@@ -7,8 +7,6 @@ import { NextRequest, NextResponse } from 'next/server';
import { getVideoDetail } from '@/lib/api/client';
import { getSourceById } from '@/lib/api/video-sources';
export const runtime = 'edge';
/**
* Shared handler for fetching video details
*/
+1 -3
View File
@@ -1,7 +1,5 @@
import { NextResponse } from 'next/server';
export const runtime = 'edge';
export async function GET(request: Request) {
const { searchParams } = new URL(request.url);
const tag = searchParams.get('tag') || '热门';
@@ -11,7 +9,7 @@ export async function GET(request: Request) {
try {
const url = `https://movie.douban.com/j/search_subjects?type=${type}&tag=${encodeURIComponent(tag)}&sort=recommend&page_limit=${pageLimit}&page_start=${pageStart}`;
const response = await fetch(url, {
headers: {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36',
+3 -2
View File
@@ -2,9 +2,10 @@ import { NextRequest, NextResponse } from 'next/server';
import { processM3u8Content } from '@/lib/utils/proxy-utils';
import { fetchWithRetry } from '@/lib/utils/fetch-with-retry';
export const runtime = 'edge';
export const runtime = 'nodejs';
// NOTE: process.env.NODE_TLS_REJECT_UNAUTHORIZED is not supported in Edge Runtime
// Disable SSL verification for video sources with invalid certificates
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
export async function GET(request: NextRequest) {
const url = request.nextUrl.searchParams.get('url');
-2
View File
@@ -9,8 +9,6 @@ import { searchVideos } from '@/lib/api/client';
import { getSourceById } from '@/lib/api/video-sources';
import { getSourceName } from '@/lib/utils/source-names';
export const runtime = 'edge';
export async function POST(request: NextRequest) {
const encoder = new TextEncoder();
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 598 KiB

+1 -1
View File
@@ -10,7 +10,7 @@ const nextConfig: NextConfig = {
removeConsole: process.env.NODE_ENV === 'production',
},
output: 'standalone',
images: {
remotePatterns: [
+735 -5408
View File
File diff suppressed because it is too large Load Diff
+4 -5
View File
@@ -14,19 +14,18 @@
"@dnd-kit/utilities": "^3.2.2",
"@vercel/analytics": "^1.5.0",
"hls.js": "^1.6.15",
"next": "15.1.0",
"react": "19.0.0",
"react-dom": "19.0.0",
"next": "16.0.5",
"react": "19.2.0",
"react-dom": "19.2.0",
"zustand": "^5.0.8"
},
"devDependencies": {
"@cloudflare/next-on-pages": "^1.13.16",
"@tailwindcss/postcss": "^4",
"@types/node": "^24",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "15.1.0",
"eslint-config-next": "16.0.5",
"postcss": "^8.5.6",
"tailwindcss": "^4",
"typescript": "^5"
+4 -12
View File
@@ -1,11 +1,7 @@
{
"compilerOptions": {
"target": "ES2017",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
@@ -15,7 +11,7 @@
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"jsx": "react-jsx",
"incremental": true,
"plugins": [
{
@@ -23,9 +19,7 @@
}
],
"paths": {
"@/*": [
"./*"
]
"@/*": ["./*"]
}
},
"include": [
@@ -36,7 +30,5 @@
".next/dev/types/**/*.ts",
"**/*.mts"
],
"exclude": [
"node_modules"
]
"exclude": ["node_modules"]
}