├── .env.example ├── .gitignore ├── .node-version ├── .npmrc ├── .prettierignore ├── .prettierrc.yaml ├── LICENSE ├── README.md ├── app ├── app.vue ├── components │ ├── DetailImage.vue │ ├── FabButton.vue │ ├── PopupMenuItem.vue │ ├── SearchDialog.vue │ ├── TagChip.vue │ ├── WaterfallCard.vue │ └── WaterfallContent.vue ├── composables │ ├── useSmallWindow.ts │ ├── useWaterfall.ts │ ├── useWaterfallContainer.ts │ └── useWaterfallGap.ts ├── error.vue ├── layouts │ └── default.vue ├── pages │ ├── about.vue │ ├── artist │ │ └── [id].vue │ ├── artwork │ │ └── [id].vue │ ├── index.vue │ ├── link.vue │ ├── random.vue │ ├── search │ │ ├── index.vue │ │ └── result.vue │ └── tag │ │ └── [name].vue ├── plugins │ ├── varlet.ts │ └── waterfall.ts ├── stores │ └── store.ts ├── types │ ├── artwork.ts │ └── auth.ts └── utils │ ├── bson.ts │ ├── router-back.ts │ ├── theme.ts │ └── validator.ts ├── backup ├── deprecated │ ├── components │ │ ├── AcgFooter.vue │ │ └── LoginDialog.vue │ └── pages │ │ ├── profile.vue │ │ └── register.vue └── readme.md ├── nuxt.config.ts ├── package.json ├── pnpm-lock.yaml ├── public ├── apple-touch-icon.png ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon.ico ├── logo.webp ├── og-image │ └── nsfw.webp ├── pwa-192x192.png ├── pwa-512x512.png ├── pwa-maskable-192x192.png └── pwa-maskable-512x512.png ├── server └── tsconfig.json ├── tsconfig.json └── vercel.json /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/.env.example -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/.gitignore -------------------------------------------------------------------------------- /.node-version: -------------------------------------------------------------------------------- 1 | 22 -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/.prettierrc.yaml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/README.md -------------------------------------------------------------------------------- /app/app.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/app.vue -------------------------------------------------------------------------------- /app/components/DetailImage.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/components/DetailImage.vue -------------------------------------------------------------------------------- /app/components/FabButton.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/components/FabButton.vue -------------------------------------------------------------------------------- /app/components/PopupMenuItem.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/components/PopupMenuItem.vue -------------------------------------------------------------------------------- /app/components/SearchDialog.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/components/SearchDialog.vue -------------------------------------------------------------------------------- /app/components/TagChip.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/components/TagChip.vue -------------------------------------------------------------------------------- /app/components/WaterfallCard.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/components/WaterfallCard.vue -------------------------------------------------------------------------------- /app/components/WaterfallContent.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/components/WaterfallContent.vue -------------------------------------------------------------------------------- /app/composables/useSmallWindow.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/composables/useSmallWindow.ts -------------------------------------------------------------------------------- /app/composables/useWaterfall.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/composables/useWaterfall.ts -------------------------------------------------------------------------------- /app/composables/useWaterfallContainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/composables/useWaterfallContainer.ts -------------------------------------------------------------------------------- /app/composables/useWaterfallGap.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/composables/useWaterfallGap.ts -------------------------------------------------------------------------------- /app/error.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/error.vue -------------------------------------------------------------------------------- /app/layouts/default.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/layouts/default.vue -------------------------------------------------------------------------------- /app/pages/about.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/pages/about.vue -------------------------------------------------------------------------------- /app/pages/artist/[id].vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/pages/artist/[id].vue -------------------------------------------------------------------------------- /app/pages/artwork/[id].vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/pages/artwork/[id].vue -------------------------------------------------------------------------------- /app/pages/index.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/pages/index.vue -------------------------------------------------------------------------------- /app/pages/link.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/pages/link.vue -------------------------------------------------------------------------------- /app/pages/random.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/pages/random.vue -------------------------------------------------------------------------------- /app/pages/search/index.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/pages/search/index.vue -------------------------------------------------------------------------------- /app/pages/search/result.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/pages/search/result.vue -------------------------------------------------------------------------------- /app/pages/tag/[name].vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/pages/tag/[name].vue -------------------------------------------------------------------------------- /app/plugins/varlet.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/plugins/varlet.ts -------------------------------------------------------------------------------- /app/plugins/waterfall.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/plugins/waterfall.ts -------------------------------------------------------------------------------- /app/stores/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/stores/store.ts -------------------------------------------------------------------------------- /app/types/artwork.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/types/artwork.ts -------------------------------------------------------------------------------- /app/types/auth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/types/auth.ts -------------------------------------------------------------------------------- /app/utils/bson.ts: -------------------------------------------------------------------------------- 1 | export const IsObjectIDValid = (id: string): boolean => { 2 | return /^[a-f\d]{24}$/i.test(id) 3 | } 4 | -------------------------------------------------------------------------------- /app/utils/router-back.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/utils/router-back.ts -------------------------------------------------------------------------------- /app/utils/theme.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/utils/theme.ts -------------------------------------------------------------------------------- /app/utils/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/app/utils/validator.ts -------------------------------------------------------------------------------- /backup/deprecated/components/AcgFooter.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/backup/deprecated/components/AcgFooter.vue -------------------------------------------------------------------------------- /backup/deprecated/components/LoginDialog.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/backup/deprecated/components/LoginDialog.vue -------------------------------------------------------------------------------- /backup/deprecated/pages/profile.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/backup/deprecated/pages/profile.vue -------------------------------------------------------------------------------- /backup/deprecated/pages/register.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/backup/deprecated/pages/register.vue -------------------------------------------------------------------------------- /backup/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/backup/readme.md -------------------------------------------------------------------------------- /nuxt.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/nuxt.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/package.json -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/public/apple-touch-icon.png -------------------------------------------------------------------------------- /public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/public/favicon-16x16.png -------------------------------------------------------------------------------- /public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/public/favicon-32x32.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/public/logo.webp -------------------------------------------------------------------------------- /public/og-image/nsfw.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/public/og-image/nsfw.webp -------------------------------------------------------------------------------- /public/pwa-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/public/pwa-192x192.png -------------------------------------------------------------------------------- /public/pwa-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/public/pwa-512x512.png -------------------------------------------------------------------------------- /public/pwa-maskable-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/public/pwa-maskable-192x192.png -------------------------------------------------------------------------------- /public/pwa-maskable-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/public/pwa-maskable-512x512.png -------------------------------------------------------------------------------- /server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../.nuxt/tsconfig.server.json" 3 | } 4 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/tsconfig.json -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManyACG/web/HEAD/vercel.json --------------------------------------------------------------------------------