mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-02-08 21:42:21 +00:00
Some checks failed
🤖 Android APK Build (Phone + TV) / 🏗️ Build Android APK (phone) (push) Has been cancelled
🤖 Android APK Build (Phone + TV) / 🏗️ Build Android APK (tv) (push) Has been cancelled
🤖 iOS IPA Build (Phone + TV) / 🏗️ Build iOS IPA (phone) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
🕒 Handle Stale Issues / 🗑️ Cleanup Stale Issues (push) Has been cancelled
Co-authored-by: lostb1t <coding-mosses0z@icloud.com>
60 lines
2.0 KiB
Markdown
60 lines
2.0 KiB
Markdown
# Copilot Instructions for Streamyfin
|
||
|
||
## Project Overview
|
||
|
||
Streamyfin is a cross-platform Jellyfin video streaming client built with Expo (React Native).
|
||
It supports mobile (iOS/Android) and TV platforms, and integrates with Jellyfin and Jellyseerr APIs.
|
||
|
||
## Main Technologies
|
||
|
||
- React Native (Expo)
|
||
- TypeScript
|
||
- React Query
|
||
- Jotai (state management)
|
||
- Jellyfin SDK (TypeScript)
|
||
- BiomeJS (code formatting/linting)
|
||
- EAS (Expo Application Services)
|
||
- Shell scripting (for automation)
|
||
- GitHub Actions (CI/CD)
|
||
|
||
## Code Structure
|
||
|
||
- `app/` – Main application code (screens, navigation, etc.)
|
||
- `components/` – Reusable UI components
|
||
- `providers/` – Context and API providers (e.g., JellyfinProvider.tsx)
|
||
- `utils/` – Utility functions and atoms
|
||
- `assets/` – Images and static assets
|
||
- `scripts/` – Automation scripts (Node.js, Bash)
|
||
- `plugins/` – Expo/Metro plugins
|
||
- `README.md` – Project documentation
|
||
|
||
## Coding Conventions
|
||
|
||
- Use TypeScript for all new code.
|
||
- Prefer functional React components.
|
||
- Use hooks for state and side effects.
|
||
- Use Jotai for global state.
|
||
- Use React Query for data fetching/caching.
|
||
- Use BiomeJS for formatting and linting.
|
||
- Follow the established folder structure for screens/components.
|
||
|
||
## API Usage
|
||
|
||
- Use the Jellyfin SDK for all server interactions.
|
||
- Use the `apiAtom` and `userAtom` from `JellyfinProvider` for authenticated API calls.
|
||
- For navigation, use `expo-router`.
|
||
|
||
## Commit Messages
|
||
|
||
- Use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) (e.g., `feat:`, `fix:`, `chore:`).
|
||
- Example: `feat(player): add Chromecast support`
|
||
|
||
## Special Instructions
|
||
|
||
- When suggesting code, prefer using existing atoms, hooks, and utility functions.
|
||
- When adding new features, ensure they are accessible via both mobile and TV navigation if relevant.
|
||
- When updating dependencies or scripts, check for compatibility with Expo and EAS.
|
||
|
||
---
|
||
|
||
**Copilot: Please use these instructions to provide context-aware suggestions and code completions for this repository.** |