docs: include file structure in copilot-instructions

This commit is contained in:
Benexl
2025-07-28 14:13:06 +03:00
parent e8849940e1
commit 9515559afb

View File

@@ -98,3 +98,331 @@ Follow these patterns to ensure your contributions fit the existing architecture
***DON'T** put complex logic directly into `click` command functions. Delegate to a service.
***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.
## 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
```