├── .gitattributes ├── .github └── workflows │ └── main.yml ├── Dockerfile ├── LICENSE ├── README.md ├── commitlint.config.js ├── config.json ├── jest.config.js ├── jest.setup.js ├── next.config.js ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── proxy.worker.js ├── public ├── assets │ └── img │ │ ├── ploading.gif │ │ ├── poster.png │ │ └── state.svg ├── favicon.ico ├── icons │ ├── icon-192x192.png │ ├── icon-256x256.png │ ├── icon-384x384.png │ └── icon-512x512.png ├── loginimg.jpg ├── robots.txt └── userhead.jpg ├── scripts ├── convert-config.js └── generate-manifest.js ├── src ├── app │ ├── admin │ │ ├── page.tsx │ │ ├── site │ │ │ └── page.tsx │ │ ├── source │ │ │ └── page.tsx │ │ └── user │ │ │ └── page.tsx │ ├── api │ │ ├── admin │ │ │ ├── config │ │ │ │ └── route.ts │ │ │ ├── reset │ │ │ │ └── route.ts │ │ │ ├── site │ │ │ │ └── route.ts │ │ │ ├── source │ │ │ │ └── route.ts │ │ │ ├── test-proxy │ │ │ │ └── route.ts │ │ │ └── user │ │ │ │ └── route.ts │ │ ├── change-password │ │ │ └── route.ts │ │ ├── cron │ │ │ └── route.ts │ │ ├── detail │ │ │ └── route.ts │ │ ├── douban │ │ │ ├── categories │ │ │ │ └── route.ts │ │ │ ├── movie │ │ │ │ └── [id] │ │ │ │ │ └── route.ts │ │ │ ├── recommends │ │ │ │ └── route.ts │ │ │ └── route.ts │ │ ├── favorites │ │ │ └── route.ts │ │ ├── image-proxy │ │ │ └── route.ts │ │ ├── login │ │ │ └── route.ts │ │ ├── logout │ │ │ └── route.ts │ │ ├── playrecords │ │ │ └── route.ts │ │ ├── recommendations │ │ │ └── route.ts │ │ ├── search │ │ │ ├── one │ │ │ │ └── route.ts │ │ │ ├── resources │ │ │ │ └── route.ts │ │ │ ├── route.ts │ │ │ ├── stream │ │ │ │ └── route.ts │ │ │ └── suggestions │ │ │ │ └── route.ts │ │ ├── searchhistory │ │ │ └── route.ts │ │ ├── searchstream │ │ │ └── route.ts │ │ ├── server-config │ │ │ └── route.ts │ │ ├── skipconfigs │ │ │ └── route.ts │ │ └── wmdb │ │ │ └── route.ts │ ├── detail │ │ └── page.tsx │ ├── douban │ │ └── page.tsx │ ├── globals.css │ ├── layout.tsx │ ├── login │ │ ├── layout.tsx │ │ └── page.tsx │ ├── page.tsx │ ├── play │ │ └── page.tsx │ ├── search │ │ └── page.tsx │ └── warning │ │ └── page.tsx ├── components │ ├── BackButton.tsx │ ├── BackToTopButton.tsx │ ├── CapsuleSwitch.tsx │ ├── CelebritiesSection.tsx │ ├── CelebritiesSectionSkeleton.tsx │ ├── ConfirmationDialog.tsx │ ├── ContinueWatching.tsx │ ├── CustomSelect.tsx │ ├── DoubanCardSkeleton.tsx │ ├── DoubanCustomSelector.tsx │ ├── DoubanSelector.tsx │ ├── EpisodeSelector.tsx │ ├── FloatingHeader.tsx │ ├── GlobalErrorIndicator.tsx │ ├── HomeVideoCardsSkeletonSection.tsx │ ├── ImagePlaceholder.tsx │ ├── MobileBottomNav.tsx │ ├── MobileHeader.tsx │ ├── MultiLevelSelector.tsx │ ├── PageLayout.tsx │ ├── RecommendationSection.tsx │ ├── RecommendationSectionSkeleton.tsx │ ├── ScrollableRow.tsx │ ├── SearchSuggestions.tsx │ ├── Sidebar.tsx │ ├── SiteProvider.tsx │ ├── TabletHeaderActions.tsx │ ├── TabletSidebar.tsx │ ├── ThemeProvider.tsx │ ├── ThemeStatusBar.tsx │ ├── UserMenu.tsx │ ├── VideoCard.tsx │ ├── VideoCardSkeleton.tsx │ └── WeekdaySelector.tsx ├── lib │ ├── admin.types.ts │ ├── auth.ts │ ├── bangumi.client.ts │ ├── config.ts │ ├── db.client.ts │ ├── db.ts │ ├── douban.client.ts │ ├── douban.ts │ ├── downstream-stream.ts │ ├── downstream.ts │ ├── fetchVideoDetail.ts │ ├── redis.db.ts │ ├── scrollCache.ts │ ├── types.ts │ ├── upstash.db.ts │ ├── useFloatingHeaderVisibility.ts │ ├── useHomepageScrollRestoration.ts │ ├── useIsTablet.ts │ ├── useScrollRestoration.ts │ └── utils.ts ├── middleware.ts └── styles │ ├── colors.css │ ├── globals.css │ └── loading-animation.css ├── start.js ├── tailwind.config.ts ├── tsconfig.json └── vercel.json /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/.gitattributes -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/README.md -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/commitlint.config.js -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/config.json -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/jest.config.js -------------------------------------------------------------------------------- /jest.setup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/jest.setup.js -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/next.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/package.json -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/postcss.config.js -------------------------------------------------------------------------------- /proxy.worker.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/proxy.worker.js -------------------------------------------------------------------------------- /public/assets/img/ploading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/public/assets/img/ploading.gif -------------------------------------------------------------------------------- /public/assets/img/poster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/public/assets/img/poster.png -------------------------------------------------------------------------------- /public/assets/img/state.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/public/assets/img/state.svg -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/public/icons/icon-192x192.png -------------------------------------------------------------------------------- /public/icons/icon-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/public/icons/icon-256x256.png -------------------------------------------------------------------------------- /public/icons/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/public/icons/icon-384x384.png -------------------------------------------------------------------------------- /public/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/public/icons/icon-512x512.png -------------------------------------------------------------------------------- /public/loginimg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/public/loginimg.jpg -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # 禁止所有搜索引擎爬取 2 | User-agent: * 3 | Disallow: / 4 | -------------------------------------------------------------------------------- /public/userhead.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/public/userhead.jpg -------------------------------------------------------------------------------- /scripts/convert-config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/scripts/convert-config.js -------------------------------------------------------------------------------- /scripts/generate-manifest.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/scripts/generate-manifest.js -------------------------------------------------------------------------------- /src/app/admin/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/admin/page.tsx -------------------------------------------------------------------------------- /src/app/admin/site/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/admin/site/page.tsx -------------------------------------------------------------------------------- /src/app/admin/source/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/admin/source/page.tsx -------------------------------------------------------------------------------- /src/app/admin/user/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/admin/user/page.tsx -------------------------------------------------------------------------------- /src/app/api/admin/config/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/admin/config/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/reset/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/admin/reset/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/site/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/admin/site/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/source/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/admin/source/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/test-proxy/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/admin/test-proxy/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/user/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/admin/user/route.ts -------------------------------------------------------------------------------- /src/app/api/change-password/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/change-password/route.ts -------------------------------------------------------------------------------- /src/app/api/cron/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/cron/route.ts -------------------------------------------------------------------------------- /src/app/api/detail/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/detail/route.ts -------------------------------------------------------------------------------- /src/app/api/douban/categories/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/douban/categories/route.ts -------------------------------------------------------------------------------- /src/app/api/douban/movie/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/douban/movie/[id]/route.ts -------------------------------------------------------------------------------- /src/app/api/douban/recommends/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/douban/recommends/route.ts -------------------------------------------------------------------------------- /src/app/api/douban/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/douban/route.ts -------------------------------------------------------------------------------- /src/app/api/favorites/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/favorites/route.ts -------------------------------------------------------------------------------- /src/app/api/image-proxy/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/image-proxy/route.ts -------------------------------------------------------------------------------- /src/app/api/login/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/login/route.ts -------------------------------------------------------------------------------- /src/app/api/logout/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/logout/route.ts -------------------------------------------------------------------------------- /src/app/api/playrecords/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/playrecords/route.ts -------------------------------------------------------------------------------- /src/app/api/recommendations/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/recommendations/route.ts -------------------------------------------------------------------------------- /src/app/api/search/one/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/search/one/route.ts -------------------------------------------------------------------------------- /src/app/api/search/resources/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/search/resources/route.ts -------------------------------------------------------------------------------- /src/app/api/search/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/search/route.ts -------------------------------------------------------------------------------- /src/app/api/search/stream/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/search/stream/route.ts -------------------------------------------------------------------------------- /src/app/api/search/suggestions/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/search/suggestions/route.ts -------------------------------------------------------------------------------- /src/app/api/searchhistory/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/searchhistory/route.ts -------------------------------------------------------------------------------- /src/app/api/searchstream/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/searchstream/route.ts -------------------------------------------------------------------------------- /src/app/api/server-config/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/server-config/route.ts -------------------------------------------------------------------------------- /src/app/api/skipconfigs/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/skipconfigs/route.ts -------------------------------------------------------------------------------- /src/app/api/wmdb/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/api/wmdb/route.ts -------------------------------------------------------------------------------- /src/app/detail/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/detail/page.tsx -------------------------------------------------------------------------------- /src/app/douban/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/douban/page.tsx -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/globals.css -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/layout.tsx -------------------------------------------------------------------------------- /src/app/login/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/login/layout.tsx -------------------------------------------------------------------------------- /src/app/login/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/login/page.tsx -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/page.tsx -------------------------------------------------------------------------------- /src/app/play/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/play/page.tsx -------------------------------------------------------------------------------- /src/app/search/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/search/page.tsx -------------------------------------------------------------------------------- /src/app/warning/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/app/warning/page.tsx -------------------------------------------------------------------------------- /src/components/BackButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/BackButton.tsx -------------------------------------------------------------------------------- /src/components/BackToTopButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/BackToTopButton.tsx -------------------------------------------------------------------------------- /src/components/CapsuleSwitch.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/CapsuleSwitch.tsx -------------------------------------------------------------------------------- /src/components/CelebritiesSection.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/CelebritiesSection.tsx -------------------------------------------------------------------------------- /src/components/CelebritiesSectionSkeleton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/CelebritiesSectionSkeleton.tsx -------------------------------------------------------------------------------- /src/components/ConfirmationDialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/ConfirmationDialog.tsx -------------------------------------------------------------------------------- /src/components/ContinueWatching.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/ContinueWatching.tsx -------------------------------------------------------------------------------- /src/components/CustomSelect.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/CustomSelect.tsx -------------------------------------------------------------------------------- /src/components/DoubanCardSkeleton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/DoubanCardSkeleton.tsx -------------------------------------------------------------------------------- /src/components/DoubanCustomSelector.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/DoubanCustomSelector.tsx -------------------------------------------------------------------------------- /src/components/DoubanSelector.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/DoubanSelector.tsx -------------------------------------------------------------------------------- /src/components/EpisodeSelector.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/EpisodeSelector.tsx -------------------------------------------------------------------------------- /src/components/FloatingHeader.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/FloatingHeader.tsx -------------------------------------------------------------------------------- /src/components/GlobalErrorIndicator.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/GlobalErrorIndicator.tsx -------------------------------------------------------------------------------- /src/components/HomeVideoCardsSkeletonSection.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/HomeVideoCardsSkeletonSection.tsx -------------------------------------------------------------------------------- /src/components/ImagePlaceholder.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/ImagePlaceholder.tsx -------------------------------------------------------------------------------- /src/components/MobileBottomNav.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/MobileBottomNav.tsx -------------------------------------------------------------------------------- /src/components/MobileHeader.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/MobileHeader.tsx -------------------------------------------------------------------------------- /src/components/MultiLevelSelector.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/MultiLevelSelector.tsx -------------------------------------------------------------------------------- /src/components/PageLayout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/PageLayout.tsx -------------------------------------------------------------------------------- /src/components/RecommendationSection.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/RecommendationSection.tsx -------------------------------------------------------------------------------- /src/components/RecommendationSectionSkeleton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/RecommendationSectionSkeleton.tsx -------------------------------------------------------------------------------- /src/components/ScrollableRow.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/ScrollableRow.tsx -------------------------------------------------------------------------------- /src/components/SearchSuggestions.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/SearchSuggestions.tsx -------------------------------------------------------------------------------- /src/components/Sidebar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/Sidebar.tsx -------------------------------------------------------------------------------- /src/components/SiteProvider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/SiteProvider.tsx -------------------------------------------------------------------------------- /src/components/TabletHeaderActions.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/TabletHeaderActions.tsx -------------------------------------------------------------------------------- /src/components/TabletSidebar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/TabletSidebar.tsx -------------------------------------------------------------------------------- /src/components/ThemeProvider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/ThemeProvider.tsx -------------------------------------------------------------------------------- /src/components/ThemeStatusBar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/ThemeStatusBar.tsx -------------------------------------------------------------------------------- /src/components/UserMenu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/UserMenu.tsx -------------------------------------------------------------------------------- /src/components/VideoCard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/VideoCard.tsx -------------------------------------------------------------------------------- /src/components/VideoCardSkeleton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/VideoCardSkeleton.tsx -------------------------------------------------------------------------------- /src/components/WeekdaySelector.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/components/WeekdaySelector.tsx -------------------------------------------------------------------------------- /src/lib/admin.types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/admin.types.ts -------------------------------------------------------------------------------- /src/lib/auth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/auth.ts -------------------------------------------------------------------------------- /src/lib/bangumi.client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/bangumi.client.ts -------------------------------------------------------------------------------- /src/lib/config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/config.ts -------------------------------------------------------------------------------- /src/lib/db.client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/db.client.ts -------------------------------------------------------------------------------- /src/lib/db.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/db.ts -------------------------------------------------------------------------------- /src/lib/douban.client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/douban.client.ts -------------------------------------------------------------------------------- /src/lib/douban.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/douban.ts -------------------------------------------------------------------------------- /src/lib/downstream-stream.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/downstream-stream.ts -------------------------------------------------------------------------------- /src/lib/downstream.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/downstream.ts -------------------------------------------------------------------------------- /src/lib/fetchVideoDetail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/fetchVideoDetail.ts -------------------------------------------------------------------------------- /src/lib/redis.db.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/redis.db.ts -------------------------------------------------------------------------------- /src/lib/scrollCache.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/scrollCache.ts -------------------------------------------------------------------------------- /src/lib/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/types.ts -------------------------------------------------------------------------------- /src/lib/upstash.db.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/upstash.db.ts -------------------------------------------------------------------------------- /src/lib/useFloatingHeaderVisibility.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/useFloatingHeaderVisibility.ts -------------------------------------------------------------------------------- /src/lib/useHomepageScrollRestoration.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/useHomepageScrollRestoration.ts -------------------------------------------------------------------------------- /src/lib/useIsTablet.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/useIsTablet.ts -------------------------------------------------------------------------------- /src/lib/useScrollRestoration.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/useScrollRestoration.ts -------------------------------------------------------------------------------- /src/lib/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/lib/utils.ts -------------------------------------------------------------------------------- /src/middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/middleware.ts -------------------------------------------------------------------------------- /src/styles/colors.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/styles/colors.css -------------------------------------------------------------------------------- /src/styles/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/styles/globals.css -------------------------------------------------------------------------------- /src/styles/loading-animation.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/src/styles/loading-animation.css -------------------------------------------------------------------------------- /start.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/start.js -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/tailwind.config.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/tsconfig.json -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffernn/joyflix/HEAD/vercel.json --------------------------------------------------------------------------------