docs: update copilot instructions

This commit is contained in:
Benexl
2025-07-29 15:42:58 +03:00
parent b436f23f65
commit 6fba74b3ca

View File

@@ -82,7 +82,7 @@ Follow these patterns to ensure your contributions fit the existing architecture
4. The config loader and CLI option generation will handle the rest automatically. 4. The config loader and CLI option generation will handle the rest automatically.
## 5. Code Style and Conventions ## 5. Code Style and Conventions
* **Style:** `black` for formatting, `ruff` for linting. The `pre-commit` hooks handle this. * **Style:** `ruff` for formatting, `ruff` for linting. The `pre-commit` hooks handle this.
* **Types:** Full type hinting is mandatory. All code must pass `pyright`. * **Types:** Full type hinting is mandatory. All code must pass `pyright`.
* **Commits:** Adhere to the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) standard. * **Commits:** Adhere to the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) standard.
* **Logging:** Use Python's `logging` module. Do not use `print()` for debugging or informational messages in library or service code. * **Logging:** Use Python's `logging` module. Do not use `print()` for debugging or informational messages in library or service code.
@@ -99,330 +99,3 @@ Follow these patterns to ensure your contributions fit the existing architecture
***DON'T** make direct `httpx` calls outside of a `provider` or `media_api` library. ***DON'T** make direct `httpx` calls outside of a `provider` or `media_api` library.
***DON'T** introduce new dependencies without updating `pyproject.toml` and discussing it first. ***DON'T** introduce new dependencies without updating `pyproject.toml` and discussing it first.
## 7. Current Codebase file structure
```
.
├── bundle
│   └── Dockerfile
├── completions
│   ├── fastanime.bash
│   ├── fastanime.fish
│   └── fastanime.zsh
├── CONTRIBUTIONS.md
├── dev
│   ├── generate_completions.sh
│   ├── generated
│   │   └── anilist
│   │   └── tags.json
│   └── make_release
├── DISCLAIMER.md
├── fa
├── fastanime
│   ├── assets
│   │   ├── defaults
│   │   │   ├── ascii-art
│   │   │   ├── fzf-opts
│   │   │   └── rofi-themes
│   │   │   ├── confirm.rasi
│   │   │   ├── input.rasi
│   │   │   ├── main.rasi
│   │   │   └── preview.rasi
│   │   ├── graphql
│   │   │   ├── allanime
│   │   │   │   └── queries
│   │   │   │   ├── anime.gql
│   │   │   │   ├── episodes.gql
│   │   │   │   └── search.gql
│   │   │   └── anilist
│   │   │   ├── mutations
│   │   │   │   ├── delete-list-entry.gql
│   │   │   │   ├── mark-read.gql
│   │   │   │   └── media-list.gql
│   │   │   └── queries
│   │   │   ├── logged-in-user.gql
│   │   │   ├── media-airing-schedule.gql
│   │   │   ├── media-characters.gql
│   │   │   ├── media-list.gql
│   │   │   ├── media-list-item.gql
│   │   │   ├── media-recommendations.gql
│   │   │   ├── media-relations.gql
│   │   │   ├── notifications.gql
│   │   │   ├── reviews.gql
│   │   │   ├── search.gql
│   │   │   └── user-info.gql
│   │   ├── icons
│   │   │   ├── logo.ico
│   │   │   └── logo.png
│   │   ├── normalizer.json
│   │   └── scripts
│   │   └── fzf
│   │   ├── airing-schedule-info.template.sh
│   │   ├── airing-schedule-preview.template.sh
│   │   ├── character-info.template.sh
│   │   ├── character-preview.template.sh
│   │   ├── dynamic-preview.template.sh
│   │   ├── episode-info.template.sh
│   │   ├── info.template.sh
│   │   ├── preview.template.sh
│   │   ├── review-info.template.sh
│   │   ├── review-preview.template.sh
│   │   └── search.template.sh
│   ├── cli
│   │   ├── cli.py
│   │   ├── commands
│   │   │   ├── anilist
│   │   │   │   ├── cmd.py
│   │   │   │   ├── commands
│   │   │   │   │   ├── auth.py
│   │   │   │   │   ├── download.py
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── search.py
│   │   │   │   │   └── stats.py
│   │   │   │   ├── examples.py
│   │   │   │   ├── helpers.py
│   │   │   │   └── __init__.py
│   │   │   ├── completions.py
│   │   │   ├── config.py
│   │   │   ├── download.py
│   │   │   ├── examples.py
│   │   │   ├── __init__.py
│   │   │   ├── registry
│   │   │   │   ├── cmd.py
│   │   │   │   ├── commands
│   │   │   │   │   ├── backup.py
│   │   │   │   │   ├── clean.py
│   │   │   │   │   ├── export.py
│   │   │   │   │   ├── import_.py
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── restore.py
│   │   │   │   │   ├── search.py
│   │   │   │   │   ├── stats.py
│   │   │   │   │   └── sync.py
│   │   │   │   ├── examples.py
│   │   │   │   └── __init__.py
│   │   │   ├── search.py
│   │   │   └── update.py
│   │   ├── config
│   │   │   ├── editor.py
│   │   │   ├── generate.py
│   │   │   ├── __init__.py
│   │   │   └── loader.py
│   │   ├── __init__.py
│   │   ├── interactive
│   │   │   ├── menu
│   │   │   │   ├── media
│   │   │   │   │   ├── downloads.py
│   │   │   │   │   ├── dynamic_search.py
│   │   │   │   │   ├── episodes.py
│   │   │   │   │   ├── main.py
│   │   │   │   │   ├── media_actions.py
│   │   │   │   │   ├── media_airing_schedule.py
│   │   │   │   │   ├── media_characters.py
│   │   │   │   │   ├── media_review.py
│   │   │   │   │   ├── player_controls.py
│   │   │   │   │   ├── provider_search.py
│   │   │   │   │   ├── results.py
│   │   │   │   │   └── servers.py
│   │   │   │   └── share
│   │   │   │   ├── auth.py
│   │   │   │   ├── session_management.py
│   │   │   │   ├── user_media_list.py
│   │   │   │   └── watch_history.py
│   │   │   ├── session.py
│   │   │   └── state.py
│   │   ├── options.py
│   │   ├── service
│   │   │   ├── auth
│   │   │   │   ├── __init__.py
│   │   │   │   ├── model.py
│   │   │   │   └── service.py
│   │   │   ├── download
│   │   │   │   ├── __init__.py
│   │   │   │   └── service.py
│   │   │   ├── feedback
│   │   │   │   ├── __init__.py
│   │   │   │   └── service.py
│   │   │   ├── player
│   │   │   │   ├── __init__.py
│   │   │   │   ├── ipc
│   │   │   │   │   ├── base.py
│   │   │   │   │   └── mpv.py
│   │   │   │   └── service.py
│   │   │   ├── registry
│   │   │   │   ├── __init__.py
│   │   │   │   ├── models.py
│   │   │   │   └── service.py
│   │   │   ├── session
│   │   │   │   ├── __init__.py
│   │   │   │   ├── model.py
│   │   │   │   └── service.py
│   │   │   └── watch_history
│   │   │   ├── __init__.py
│   │   │   └── service.py
│   │   └── utils
│   │   ├── ansi.py
│   │   ├── completion.py
│   │   ├── exception.py
│   │   ├── feh.py
│   │   ├── icat.py
│   │   ├── image.py
│   │   ├── __init__.py
│   │   ├── lazyloader.py
│   │   ├── logging.py
│   │   ├── parser.py
│   │   ├── preview.py
│   │   ├── preview_workers.py
│   │   └── update.py
│   ├── core
│   │   ├── caching
│   │   ├── config
│   │   │   ├── defaults.py
│   │   │   ├── descriptions.py
│   │   │   ├── __init__.py
│   │   │   └── model.py
│   │   ├── constants.py
│   │   ├── downloader
│   │   │   ├── base.py
│   │   │   ├── default.py
│   │   │   ├── downloader.py
│   │   │   ├── __init__.py
│   │   │   ├── model.py
│   │   │   ├── params.py
│   │   │   ├── torrents.py
│   │   │   └── yt_dlp.py
│   │   ├── exceptions.py
│   │   ├── __init__.py
│   │   ├── patterns.py
│   │   └── utils
│   │   ├── concurrency.py
│   │   ├── converter.py
│   │   ├── detect.py
│   │   ├── file.py
│   │   ├── formatter.py
│   │   ├── fuzzy.py
│   │   ├── graphql.py
│   │   ├── __init__.py
│   │   ├── networking.py
│   │   └── normalizer.py
│   ├── fastanime.py
│   ├── __init__.py
│   ├── libs
│   │   ├── aniskip
│   │   │   ├── api.py
│   │   │   └── __init__.py
│   │   ├── discord
│   │   │   ├── api.py
│   │   │   └── __init__.py
│   │   ├── __init__.py
│   │   ├── media_api
│   │   │   ├── anilist
│   │   │   │   ├── api.py
│   │   │   │   ├── gql.py
│   │   │   │   ├── __init__.py
│   │   │   │   ├── mapper.py
│   │   │   │   └── types.py
│   │   │   ├── api.py
│   │   │   ├── base.py
│   │   │   ├── __init__.py
│   │   │   ├── jikan
│   │   │   │   ├── api.py
│   │   │   │   ├── __init__.py
│   │   │   │   └── mapper.py
│   │   │   ├── params.py
│   │   │   ├── types.py
│   │   │   └── utils
│   │   │   └── debug.py
│   │   ├── player
│   │   │   ├── base.py
│   │   │   ├── __init__.py
│   │   │   ├── mpv
│   │   │   │   ├── __init__.py
│   │   │   │   └── player.py
│   │   │   ├── params.py
│   │   │   ├── player.py
│   │   │   ├── syncplay
│   │   │   │   ├── __init__.py
│   │   │   │   └── player.py
│   │   │   ├── types.py
│   │   │   └── vlc
│   │   │   ├── __init__.py
│   │   │   └── player.py
│   │   ├── provider
│   │   │   ├── anime
│   │   │   │   ├── allanime
│   │   │   │   │   ├── constants.py
│   │   │   │   │   ├── extractors
│   │   │   │   │   │   ├── ak.py
│   │   │   │   │   │   ├── base.py
│   │   │   │   │   │   ├── dropbox.py
│   │   │   │   │   │   ├── extractor.py
│   │   │   │   │   │   ├── filemoon.py
│   │   │   │   │   │   ├── gogoanime.py
│   │   │   │   │   │   ├── __init__.py
│   │   │   │   │   │   ├── mp4_upload.py
│   │   │   │   │   │   ├── sharepoint.py
│   │   │   │   │   │   ├── streamsb.py
│   │   │   │   │   │   ├── vid_mp4.py
│   │   │   │   │   │   ├── we_transfer.py
│   │   │   │   │   │   ├── wixmp.py
│   │   │   │   │   │   └── yt_mp4.py
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── mappers.py
│   │   │   │   │   ├── provider.py
│   │   │   │   │   ├── types.py
│   │   │   │   │   └── utils.py
│   │   │   │   ├── animepahe
│   │   │   │   │   ├── constants.py
│   │   │   │   │   ├── extractor.py
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── mappers.py
│   │   │   │   │   ├── provider.py
│   │   │   │   │   └── types.py
│   │   │   │   ├── base.py
│   │   │   │   ├── __init__.py
│   │   │   │   ├── params.py
│   │   │   │   ├── provider.py
│   │   │   │   ├── types.py
│   │   │   │   └── utils
│   │   │   │   └── debug.py
│   │   │   ├── __init__.py
│   │   │   ├── manga
│   │   │   │   ├── base.py
│   │   │   │   ├── common.py
│   │   │   │   ├── __init__.py
│   │   │   │   ├── mangadex
│   │   │   │   │   ├── api.py
│   │   │   │   │   └── __init__.py
│   │   │   │   └── MangaProvider.py
│   │   │   └── scraping
│   │   │   ├── html_parser.py
│   │   │   ├── __init__.py
│   │   │   ├── user_agents.py
│   │   │   └── utils.py
│   │   └── selectors
│   │   ├── base.py
│   │   ├── fzf
│   │   │   ├── __init__.py
│   │   │   └── selector.py
│   │   ├── __init__.py
│   │   ├── inquirer
│   │   │   ├── __init__.py
│   │   │   └── selector.py
│   │   ├── rofi
│   │   │   ├── __init__.py
│   │   │   └── selector.py
│   │   └── selector.py
│   └── __main__.py
├── flake.lock
├── flake.nix
├── LICENSE
├── pyproject.toml
├── pyrightconfig.json
├── pytest.ini
├── README.md
├── shell.nix
├── tox.ini
└── uv.lock
69 directories, 253 files
```