gitextract_6m2hxgck/ ├── .dockerignore ├── .eslintrc.js ├── .github/ │ └── workflows/ │ └── docker-image.yml ├── .gitignore ├── .husky/ │ ├── commit-msg │ ├── post-merge │ └── pre-commit ├── .npmrc ├── .nvmrc ├── .prettierignore ├── .prettierrc.js ├── .vscode/ │ ├── css.code-snippets │ ├── extensions.json │ ├── settings.json │ └── typescriptreact.code-snippets ├── CHANGELOG ├── Dockerfile ├── LICENSE ├── README.md ├── VERSION.txt ├── commitlint.config.js ├── docker-compose.dev.yml ├── jest.config.js ├── jest.setup.js ├── next.config.js ├── package.json ├── postcss.config.js ├── proxy.worker.js ├── public/ │ └── robots.txt ├── scripts/ │ ├── convert-changelog.js │ ├── dev-docker.sh │ └── generate-manifest.js ├── src/ │ ├── app/ │ │ ├── admin/ │ │ │ └── page.tsx │ │ ├── api/ │ │ │ ├── admin/ │ │ │ │ ├── category/ │ │ │ │ │ └── route.ts │ │ │ │ ├── config/ │ │ │ │ │ └── route.ts │ │ │ │ ├── config_file/ │ │ │ │ │ └── route.ts │ │ │ │ ├── config_subscription/ │ │ │ │ │ └── fetch/ │ │ │ │ │ └── route.ts │ │ │ │ ├── data_migration/ │ │ │ │ │ ├── export/ │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── import/ │ │ │ │ │ └── route.ts │ │ │ │ ├── live/ │ │ │ │ │ ├── refresh/ │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ ├── reset/ │ │ │ │ │ └── route.ts │ │ │ │ ├── site/ │ │ │ │ │ └── route.ts │ │ │ │ ├── source/ │ │ │ │ │ ├── route.ts │ │ │ │ │ └── validate/ │ │ │ │ │ └── route.ts │ │ │ │ └── user/ │ │ │ │ └── route.ts │ │ │ ├── change-password/ │ │ │ │ └── route.ts │ │ │ ├── cron/ │ │ │ │ └── route.ts │ │ │ ├── detail/ │ │ │ │ └── route.ts │ │ │ ├── douban/ │ │ │ │ ├── categories/ │ │ │ │ │ └── route.ts │ │ │ │ ├── recommends/ │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ ├── favorites/ │ │ │ │ └── route.ts │ │ │ ├── image-proxy/ │ │ │ │ └── route.ts │ │ │ ├── live/ │ │ │ │ ├── channels/ │ │ │ │ │ └── route.ts │ │ │ │ ├── epg/ │ │ │ │ │ └── route.ts │ │ │ │ ├── precheck/ │ │ │ │ │ └── route.ts │ │ │ │ └── sources/ │ │ │ │ └── route.ts │ │ │ ├── login/ │ │ │ │ └── route.ts │ │ │ ├── logout/ │ │ │ │ └── route.ts │ │ │ ├── playrecords/ │ │ │ │ └── route.ts │ │ │ ├── proxy/ │ │ │ │ ├── key/ │ │ │ │ │ └── route.ts │ │ │ │ ├── logo/ │ │ │ │ │ └── route.ts │ │ │ │ ├── m3u8/ │ │ │ │ │ └── route.ts │ │ │ │ └── segment/ │ │ │ │ └── route.ts │ │ │ ├── search/ │ │ │ │ ├── one/ │ │ │ │ │ └── route.ts │ │ │ │ ├── resources/ │ │ │ │ │ └── route.ts │ │ │ │ ├── route.ts │ │ │ │ ├── suggestions/ │ │ │ │ │ └── route.ts │ │ │ │ └── ws/ │ │ │ │ └── route.ts │ │ │ ├── searchhistory/ │ │ │ │ └── route.ts │ │ │ ├── server-config/ │ │ │ │ └── route.ts │ │ │ └── skipconfigs/ │ │ │ └── route.ts │ │ ├── douban/ │ │ │ └── page.tsx │ │ ├── globals.css │ │ ├── layout.tsx │ │ ├── live/ │ │ │ └── page.tsx │ │ ├── login/ │ │ │ └── page.tsx │ │ ├── page.tsx │ │ ├── play/ │ │ │ └── page.tsx │ │ ├── search/ │ │ │ └── page.tsx │ │ └── warning/ │ │ └── page.tsx │ ├── components/ │ │ ├── BackButton.tsx │ │ ├── CapsuleSwitch.tsx │ │ ├── ContinueWatching.tsx │ │ ├── DataMigration.tsx │ │ ├── DoubanCardSkeleton.tsx │ │ ├── DoubanCustomSelector.tsx │ │ ├── DoubanSelector.tsx │ │ ├── EpgScrollableRow.tsx │ │ ├── EpisodeSelector.tsx │ │ ├── GlobalErrorIndicator.tsx │ │ ├── ImagePlaceholder.tsx │ │ ├── MobileActionSheet.tsx │ │ ├── MobileBottomNav.tsx │ │ ├── MobileHeader.tsx │ │ ├── MultiLevelSelector.tsx │ │ ├── PageLayout.tsx │ │ ├── ScrollableRow.tsx │ │ ├── SearchResultFilter.tsx │ │ ├── SearchSuggestions.tsx │ │ ├── Sidebar.tsx │ │ ├── SiteProvider.tsx │ │ ├── ThemeProvider.tsx │ │ ├── ThemeToggle.tsx │ │ ├── UserMenu.tsx │ │ ├── VersionPanel.tsx │ │ ├── VideoCard.tsx │ │ ├── VirtualGrid.tsx │ │ └── WeekdaySelector.tsx │ ├── hooks/ │ │ └── useLongPress.ts │ ├── lib/ │ │ ├── admin.types.ts │ │ ├── auth.ts │ │ ├── bangumi.client.ts │ │ ├── changelog.ts │ │ ├── config.ts │ │ ├── crypto.ts │ │ ├── db.client.ts │ │ ├── db.ts │ │ ├── douban.client.ts │ │ ├── douban.ts │ │ ├── downstream.ts │ │ ├── fetchVideoDetail.ts │ │ ├── kvrocks.db.ts │ │ ├── live.ts │ │ ├── password.ts │ │ ├── redis-base.db.ts │ │ ├── redis.db.ts │ │ ├── search-cache.ts │ │ ├── time.ts │ │ ├── types.ts │ │ ├── upstash.db.ts │ │ ├── utils.ts │ │ ├── version.ts │ │ ├── version_check.ts │ │ └── yellow.ts │ ├── middleware.ts │ └── styles/ │ ├── colors.css │ └── globals.css ├── start.js ├── tailwind.config.ts ├── tsconfig.json └── vercel.json