diff --git a/packages/backend/middlewares/auth.ts b/packages/backend/middlewares/auth.ts index ff2e332..6be45ad 100644 --- a/packages/backend/middlewares/auth.ts +++ b/packages/backend/middlewares/auth.ts @@ -1,5 +1,5 @@ import { Elysia } from "elysia"; -import { validateSession, User } from "@elysia/lib/auth"; +import { validateSession, User } from "@backend/lib/auth"; export interface AuthenticatedContext { user: User; diff --git a/packages/backend/routes/auth/login.ts b/packages/backend/routes/auth/login.ts index 60d1d3c..a7de193 100644 --- a/packages/backend/routes/auth/login.ts +++ b/packages/backend/routes/auth/login.ts @@ -1,6 +1,6 @@ import { Elysia, t } from "elysia"; import { ip } from "elysia-ip"; -import { verifyUser, createSession, getSessionExpirationDate } from "@elysia/lib/auth"; +import { verifyUser, createSession, getSessionExpirationDate } from "@backend/lib/auth"; export const loginHandler = new Elysia({ prefix: "/auth" }).use(ip()).post( "/session", diff --git a/packages/backend/routes/auth/logout.ts b/packages/backend/routes/auth/logout.ts index 0ff06aa..fa227f9 100644 --- a/packages/backend/routes/auth/logout.ts +++ b/packages/backend/routes/auth/logout.ts @@ -1,5 +1,5 @@ import { Elysia, t } from "elysia"; -import { deactivateSession } from "@elysia/lib/auth"; +import { deactivateSession } from "@backend/lib/auth"; export const logoutHandler = new Elysia({ prefix: "/auth" }) .delete( diff --git a/packages/backend/routes/ping/index.ts b/packages/backend/routes/ping/index.ts index c96911e..0bb9317 100644 --- a/packages/backend/routes/ping/index.ts +++ b/packages/backend/routes/ping/index.ts @@ -1,4 +1,4 @@ -import { VERSION } from "@elysia/src"; +import { VERSION } from "@backend/src"; import { Elysia, t } from "elysia"; export const pingHandler = new Elysia({ prefix: "/ping" }).get( diff --git a/packages/backend/routes/root/index.ts b/packages/backend/routes/root/index.ts index 64965cb..e68c8b5 100644 --- a/packages/backend/routes/root/index.ts +++ b/packages/backend/routes/root/index.ts @@ -1,5 +1,5 @@ -import { getSingerForBirthday, pickSinger, pickSpecialSinger, Singer } from "@elysia/lib/singers"; -import { VERSION } from "@elysia/src"; +import { getSingerForBirthday, pickSinger, pickSpecialSinger, Singer } from "@backend/lib/singers"; +import { VERSION } from "@backend/src"; import { Elysia, t } from "elysia"; const SingerObj = t.Object({ diff --git a/packages/backend/routes/search/index.ts b/packages/backend/routes/search/index.ts index 9ddc817..d703f29 100644 --- a/packages/backend/routes/search/index.ts +++ b/packages/backend/routes/search/index.ts @@ -1,10 +1,10 @@ import { Elysia } from "elysia"; import { db, bilibiliMetadata, latestVideoSnapshot, songs } from "@core/drizzle"; import { eq, like } from "drizzle-orm"; -import { BiliAPIVideoMetadataSchema, BiliVideoSchema, SongSchema } from "@elysia/lib/schema"; +import { BiliAPIVideoMetadataSchema, BiliVideoSchema, SongSchema } from "@backend/lib/schema"; import { z } from "zod"; import { getVideoInfo } from "@core/net/getVideoInfo"; -import { biliIDToAID } from "@elysia/lib/bilibiliID"; +import { biliIDToAID } from "@backend/lib/bilibiliID"; import { retrieveVideoInfoFromCache } from "../video/metadata"; import { redis } from "@core/db/redis"; diff --git a/packages/backend/routes/song/add.ts b/packages/backend/routes/song/add.ts index 0512263..9fcf7b8 100644 --- a/packages/backend/routes/song/add.ts +++ b/packages/backend/routes/song/add.ts @@ -1,7 +1,7 @@ import { Elysia, t } from "elysia"; -import { biliIDToAID } from "@elysia/lib/bilibiliID"; -import { requireAuth } from "@elysia/middlewares/auth"; -import { LatestVideosQueue } from "@elysia/lib/mq"; +import { biliIDToAID } from "@backend/lib/bilibiliID"; +import { requireAuth } from "@backend/middlewares/auth"; +import { LatestVideosQueue } from "@backend/lib/mq"; import { db, songs } from "@core/drizzle"; import { eq, and } from "drizzle-orm"; diff --git a/packages/backend/routes/song/delete.ts b/packages/backend/routes/song/delete.ts index 05cc636..8a1024c 100644 --- a/packages/backend/routes/song/delete.ts +++ b/packages/backend/routes/song/delete.ts @@ -1,5 +1,5 @@ import { Elysia, t } from "elysia"; -import { requireAuth } from "@elysia/middlewares/auth"; +import { requireAuth } from "@backend/middlewares/auth"; import { songs, history, db } from "@core/drizzle"; import { eq } from "drizzle-orm"; diff --git a/packages/backend/routes/song/info.ts b/packages/backend/routes/song/info.ts index bc2231b..8d763a4 100644 --- a/packages/backend/routes/song/info.ts +++ b/packages/backend/routes/song/info.ts @@ -1,8 +1,8 @@ import { Elysia, t } from "elysia"; import { db, history, songs } from "@core/drizzle"; import { eq, and } from "drizzle-orm"; -import { bv2av } from "@elysia/lib/bilibiliID"; -import { requireAuth } from "@elysia/middlewares/auth"; +import { bv2av } from "@backend/lib/bilibiliID"; +import { requireAuth } from "@backend/middlewares/auth"; async function getSongIDFromBiliID(id: string) { let aid: number; diff --git a/packages/backend/routes/song/milestone.ts b/packages/backend/routes/song/milestone.ts index 8d04591..d694457 100644 --- a/packages/backend/routes/song/milestone.ts +++ b/packages/backend/routes/song/milestone.ts @@ -1,9 +1,9 @@ import { Elysia, t } from "elysia"; import { db, bilibiliMetadata, eta } from "@core/drizzle"; import { eq, and, gte, lt } from "drizzle-orm"; -import serverTiming from "@elysia/middlewares/timing"; +import serverTiming from "@backend/middlewares/timing"; import z from "zod"; -import { BiliVideoSchema } from "@elysia/lib/schema"; +import { BiliVideoSchema } from "@backend/lib/schema"; type MileStoneType = "dendou" | "densetsu" | "shinwa"; diff --git a/packages/backend/routes/video/eta.ts b/packages/backend/routes/video/eta.ts index ad0826b..8cd5ce1 100644 --- a/packages/backend/routes/video/eta.ts +++ b/packages/backend/routes/video/eta.ts @@ -1,7 +1,7 @@ import { Elysia, t } from "elysia"; import { db, eta } from "@core/drizzle"; import { eq } from "drizzle-orm"; -import { biliIDToAID } from "@elysia/lib/bilibiliID"; +import { biliIDToAID } from "@backend/lib/bilibiliID"; export const songEtaHandler = new Elysia({ prefix: "/video" }).get( "/:id/eta", diff --git a/packages/backend/routes/video/metadata.ts b/packages/backend/routes/video/metadata.ts index 48968ef..814c16a 100644 --- a/packages/backend/routes/video/metadata.ts +++ b/packages/backend/routes/video/metadata.ts @@ -1,9 +1,9 @@ import { Elysia, t } from "elysia"; import { db, videoSnapshot } from "@core/drizzle"; -import { bv2av } from "@elysia/lib/bilibiliID"; +import { bv2av } from "@backend/lib/bilibiliID"; import { getVideoInfo } from "@core/net/getVideoInfo"; import { redis } from "@core/db/redis"; -import { ErrorResponseSchema } from "@elysia/src/schema"; +import { ErrorResponseSchema } from "@backend/src/schema"; import type { VideoInfoData } from "@core/net/bilibili.d.ts"; export async function retrieveVideoInfoFromCache(aid: number) { diff --git a/packages/backend/routes/video/snapshots.ts b/packages/backend/routes/video/snapshots.ts index 1855489..5cdc957 100644 --- a/packages/backend/routes/video/snapshots.ts +++ b/packages/backend/routes/video/snapshots.ts @@ -1,10 +1,10 @@ import { Elysia } from "elysia"; import { db, videoSnapshot } from "@core/drizzle"; -import { bv2av } from "@elysia/lib/bilibiliID"; -import { ErrorResponseSchema } from "@elysia/src/schema"; +import { bv2av } from "@backend/lib/bilibiliID"; +import { ErrorResponseSchema } from "@backend/src/schema"; import { eq, desc } from "drizzle-orm"; import z from "zod"; -import { SnapshotQueue } from "@elysia/lib/mq"; +import { SnapshotQueue } from "@backend/lib/mq"; export const getVideoSnapshotsHandler = new Elysia({ prefix: "/video" }).get( "/:id/snapshots", diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index 15f6d51..94a5111 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -1,19 +1,19 @@ import { Elysia, file } from "elysia"; import { getBindingInfo, logStartup } from "./startMessage"; -import { pingHandler } from "@elysia/routes/ping"; +import { pingHandler } from "@backend/routes/ping"; import openapi from "@elysiajs/openapi"; import { cors } from "@elysiajs/cors"; -import { songInfoHandler } from "@elysia/routes/song/info"; -import { rootHandler } from "@elysia/routes/root"; -import { getVideoMetadataHandler } from "@elysia/routes/video/metadata"; -import { closeMileStoneHandler } from "@elysia/routes/song/milestone"; -import { authHandler } from "@elysia/routes/auth"; +import { songInfoHandler } from "@backend/routes/song/info"; +import { rootHandler } from "@backend/routes/root"; +import { getVideoMetadataHandler } from "@backend/routes/video/metadata"; +import { closeMileStoneHandler } from "@backend/routes/song/milestone"; +import { authHandler } from "@backend/routes/auth"; import { onAfterHandler } from "./onAfterHandle"; -import { searchHandler } from "@elysia/routes/search"; -import { getVideoSnapshotsHandler } from "@elysia/routes/video/snapshots"; -import { addSongHandler } from "@elysia/routes/song/add"; -import { deleteSongHandler } from "@elysia/routes/song/delete"; -import { songEtaHandler } from "@elysia/routes/video/eta"; +import { searchHandler } from "@backend/routes/search"; +import { getVideoSnapshotsHandler } from "@backend/routes/video/snapshots"; +import { addSongHandler } from "@backend/routes/song/add"; +import { deleteSongHandler } from "@backend/routes/song/delete"; +import { songEtaHandler } from "@backend/routes/video/eta"; import "./mq"; const [host, port] = getBindingInfo(); diff --git a/packages/backend/tsconfig.json b/packages/backend/tsconfig.json index 29cbb69..ebcb3f5 100644 --- a/packages/backend/tsconfig.json +++ b/packages/backend/tsconfig.json @@ -11,7 +11,7 @@ "skipLibCheck": true, "paths": { "@core/*": ["../core/*"], - "@elysia/*": ["./*"], + "@backend/*": ["./*"], "@crawler/*": ["../crawler/*"] } } diff --git a/packages/temp_frontend/app/root.tsx b/packages/temp_frontend/app/root.tsx index a49eb19..f830d85 100644 --- a/packages/temp_frontend/app/root.tsx +++ b/packages/temp_frontend/app/root.tsx @@ -23,6 +23,8 @@ export function Layout({ children }: { children: React.ReactNode }) { + + 中V档案馆 @@ -44,20 +46,20 @@ export default function App() { export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) { let status = 0; let details = "出错了!"; - let stack: string | undefined; if (isRouteErrorResponse(error)) { - status = error.status + status = error.status; details = error.status === 404 ? "找不到页面" : error.statusText || details; } else if (import.meta.env.DEV && error && error instanceof Error) { details = error.message; - stack = error.stack; } return ( - + ); } diff --git a/packages/temp_frontend/app/routes/home.tsx b/packages/temp_frontend/app/routes/home.tsx index 5cc0de1..5b477db 100644 --- a/packages/temp_frontend/app/routes/home.tsx +++ b/packages/temp_frontend/app/routes/home.tsx @@ -4,7 +4,7 @@ import { useEffect, useState } from "react"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; import { treaty } from "@elysiajs/eden"; -import type { App } from "@elysia/src"; +import type { App } from "@backend/src"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Skeleton } from "@/components/ui/skeleton"; import { formatDateTime } from "@/components/SearchResults"; diff --git a/packages/temp_frontend/app/routes/login.tsx b/packages/temp_frontend/app/routes/login.tsx index bf8f4ea..8084be2 100644 --- a/packages/temp_frontend/app/routes/login.tsx +++ b/packages/temp_frontend/app/routes/login.tsx @@ -4,7 +4,7 @@ import { Input } from "@/components/ui/input"; import { useState } from "react"; import { useNavigate } from "react-router"; import { treaty } from "@elysiajs/eden"; -import type { App } from "@elysia/src"; +import type { App } from "@backend/src"; // @ts-expect-error anyway... const app = treaty(import.meta.env.VITE_API_URL!); diff --git a/packages/temp_frontend/app/routes/search/index.tsx b/packages/temp_frontend/app/routes/search/index.tsx index 8f33250..62825e7 100644 --- a/packages/temp_frontend/app/routes/search/index.tsx +++ b/packages/temp_frontend/app/routes/search/index.tsx @@ -1,5 +1,5 @@ import { treaty } from "@elysiajs/eden"; -import type { App } from "@elysia/src"; +import type { App } from "@backend/src"; import { useEffect, useState } from "react"; import { Skeleton } from "@/components/ui/skeleton"; import { Error } from "@/components/Error"; diff --git a/packages/temp_frontend/app/routes/song/[id]/add.tsx b/packages/temp_frontend/app/routes/song/[id]/add.tsx index 4f98ace..999cc51 100644 --- a/packages/temp_frontend/app/routes/song/[id]/add.tsx +++ b/packages/temp_frontend/app/routes/song/[id]/add.tsx @@ -1,6 +1,6 @@ import type { Route } from "./+types/add"; import { treaty } from "@elysiajs/eden"; -import type { App } from "@elysia/src"; +import type { App } from "@backend/src"; import { useEffect, useState } from "react"; import { Skeleton } from "@/components/ui/skeleton"; import { TriangleAlert, CheckCircle, Clock, AlertCircle } from "lucide-react"; diff --git a/packages/temp_frontend/app/routes/song/[id]/info/index.tsx b/packages/temp_frontend/app/routes/song/[id]/info/index.tsx index 21969e7..92c912e 100644 --- a/packages/temp_frontend/app/routes/song/[id]/info/index.tsx +++ b/packages/temp_frontend/app/routes/song/[id]/info/index.tsx @@ -1,6 +1,6 @@ import type { Route } from "./+types/index"; import { treaty } from "@elysiajs/eden"; -import type { App } from "@elysia/src"; +import type { App } from "@backend/src"; import { memo, useEffect, useState, useMemo } from "react"; import { Skeleton } from "@/components/ui/skeleton"; import { TriangleAlert } from "lucide-react"; @@ -29,7 +29,7 @@ import { AlertDialogTitle, AlertDialogTrigger, } from "@/components/ui/alert-dialog"; -import { av2bv } from "@elysia/lib/bilibiliID"; +import { av2bv } from "@backend/lib/bilibiliID"; import { columns, type Snapshot } from "./columns"; import { HOUR } from "@core/lib"; diff --git a/packages/temp_frontend/app/routes/video/[id]/info/index.tsx b/packages/temp_frontend/app/routes/video/[id]/info/index.tsx index 5445c4f..f0dc123 100644 --- a/packages/temp_frontend/app/routes/video/[id]/info/index.tsx +++ b/packages/temp_frontend/app/routes/video/[id]/info/index.tsx @@ -1,6 +1,6 @@ import type { Route } from "./+types/index"; import { treaty } from "@elysiajs/eden"; -import type { App } from "@elysia/src"; +import type { App } from "@backend/src"; import { useEffect, useState } from "react"; import { Skeleton } from "@/components/ui/skeleton"; import { TriangleAlert } from "lucide-react"; @@ -10,7 +10,7 @@ import { Error } from "@/components/Error"; import { Layout } from "@/components/Layout"; import { formatDateTime } from "@/components/SearchResults"; import { Button } from "@/components/ui/button"; -import { av2bv } from "@elysia/lib/bilibiliID"; +import { av2bv } from "@backend/lib/bilibiliID"; // @ts-ignore idk const app = treaty(import.meta.env.VITE_API_URL!); diff --git a/packages/temp_frontend/public/android-chrome-192x192.png b/packages/temp_frontend/public/android-chrome-192x192.png new file mode 100644 index 0000000..3556e4d Binary files /dev/null and b/packages/temp_frontend/public/android-chrome-192x192.png differ diff --git a/packages/temp_frontend/public/android-chrome-512x512.png b/packages/temp_frontend/public/android-chrome-512x512.png new file mode 100644 index 0000000..6a4d58f Binary files /dev/null and b/packages/temp_frontend/public/android-chrome-512x512.png differ diff --git a/packages/temp_frontend/public/apple-touch-icon.png b/packages/temp_frontend/public/apple-touch-icon.png new file mode 100644 index 0000000..ccd107f Binary files /dev/null and b/packages/temp_frontend/public/apple-touch-icon.png differ diff --git a/packages/temp_frontend/public/favicon-16x16.png b/packages/temp_frontend/public/favicon-16x16.png new file mode 100644 index 0000000..32cf91a Binary files /dev/null and b/packages/temp_frontend/public/favicon-16x16.png differ diff --git a/packages/temp_frontend/public/favicon-32x32.png b/packages/temp_frontend/public/favicon-32x32.png new file mode 100644 index 0000000..c8244a0 Binary files /dev/null and b/packages/temp_frontend/public/favicon-32x32.png differ diff --git a/packages/temp_frontend/public/favicon.ico b/packages/temp_frontend/public/favicon.ico new file mode 100644 index 0000000..376686c Binary files /dev/null and b/packages/temp_frontend/public/favicon.ico differ diff --git a/packages/temp_frontend/public/site.webmanifest b/packages/temp_frontend/public/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/packages/temp_frontend/public/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/packages/temp_frontend/tsconfig.json b/packages/temp_frontend/tsconfig.json index 1ee5bb3..ba03c7f 100644 --- a/packages/temp_frontend/tsconfig.json +++ b/packages/temp_frontend/tsconfig.json @@ -11,7 +11,7 @@ "baseUrl": ".", "paths": { "@/*": ["./app/*"], - "@elysia/*": ["../elysia/*"], + "@backend/*": ["../backend/*"], "@core/*": ["../core/*"] }, "esModuleInterop": true,