├── src ├── styles │ └── global.css ├── utils │ ├── episode.js │ └── api.js ├── components │ ├── Footer.astro │ ├── ui │ │ ├── Table.astro │ │ ├── Carousel.astro │ │ └── Card.astro │ └── Header.astro ├── layouts │ └── Layout.astro ├── assets │ ├── background.svg │ └── astro.svg ├── pages │ ├── watch │ │ └── [id] │ │ │ └── [slug].astro │ ├── completed.astro │ └── index.astro └── scripts │ ├── infinite-scroll.js │ └── watch.js ├── .vscode ├── extensions.json └── launch.json ├── tsconfig.json ├── .prettierrc.mjs ├── .gitignore ├── astro.config.mjs ├── package.json ├── public └── favicon.svg └── README.md /src/styles/global.css: -------------------------------------------------------------------------------- 1 | @import "tailwindcss"; 2 | @plugin "daisyui"; 3 | 4 | @variant hover (&:hover); 5 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["astro-build.astro-vscode"], 3 | "unwantedRecommendations": [] 4 | } 5 | -------------------------------------------------------------------------------- /src/utils/episode.js: -------------------------------------------------------------------------------- 1 | export function getEpisodeToPlay(episodes, isFinished, episodeParam) { 2 | const totalEp = episodes?.at(-1) ?? 1; 3 | return episodeParam ?? (isFinished ? episodes[0] : totalEp); 4 | } 5 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/strict", 3 | "include": [".astro/types.d.ts", "**/*"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "baseUrl": ".", 7 | "paths": { 8 | "~/*": ["./src/*"] 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "command": "./node_modules/.bin/astro dev", 6 | "name": "Development server", 7 | "request": "launch", 8 | "type": "node-terminal" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/components/Footer.astro: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /.prettierrc.mjs: -------------------------------------------------------------------------------- 1 | // .prettierrc.mjs 2 | /** @type {import("prettier").Config} */ 3 | export default { 4 | plugins: ['prettier-plugin-astro'], 5 | overrides: [ 6 | { 7 | files: '*.astro', 8 | options: { 9 | parser: 'astro', 10 | }, 11 | }, 12 | ], 13 | }; 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | 4 | # generated types 5 | .astro/ 6 | 7 | # dependencies 8 | node_modules/ 9 | 10 | # logs 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # environment variables 17 | .env 18 | .env.production 19 | 20 | # macOS-specific files 21 | .DS_Store 22 | 23 | # jetbrains setting folder 24 | .idea/ 25 | .vercel 26 | -------------------------------------------------------------------------------- /src/components/ui/Table.astro: -------------------------------------------------------------------------------- 1 | --- 2 | const { data } = Astro.props; 3 | --- 4 | 5 |
| {i.type} | 12 |{i.data} | 13 |
|---|