freeflix-cli 2.3.0__tar.gz → 2.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/CHANGELOG.md +55 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/PKG-INFO +8 -4
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/README.md +7 -3
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/pyproject.toml +1 -1
- freeflix_cli-2.4.0/src/freeflix_cli/data/channel_logos.json +1 -0
- freeflix_cli-2.4.0/src/freeflix_cli/data/clubs.json +1 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/match.py +117 -8
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/i18n.py +9 -1
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/install_health.py +1 -1
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/player_manager.py +45 -5
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/yacine_match.py +147 -2
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_yacine_match.py +132 -2
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/uv.lock +1 -1
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/.github/workflows/binaries.yml +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/.github/workflows/ci.yml +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/.github/workflows/macos.yml +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/.github/workflows/release.yml +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/.gitignore +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/CONTRIBUTING.md +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/LICENSE +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/SECURITY.md +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/assets/logo.png +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/config/freeflix_position.lua +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/config/input.conf +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/config/mpv.conf +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/data/selectors.jsonc +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/data/source_portal.jsonc +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/docs/ARCHITECTURE.md +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/docs/AUDIT-FREEFLIX-2.0-2026-11-04.md +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/docs/CORRECTIONS-2.1.0.md +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/docs/README.md +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/docs/RELEASE.md +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/docs/SCORECARD-2.1.0.md +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/docs/TROUBLESHOOTING.md +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/docs/USAGE.md +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/scripts/build-binary.sh +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/scripts/install-mac.sh +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/scripts/install.ps1 +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/scripts/install.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/scripts/install.sh +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/scripts/wrappers/mpv +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/__init__.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/__main__.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/anilist.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/cli.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/cli_utils.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/cloudflare.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/config_loader.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/defaults.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/doctor.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/__init__.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/anilist.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/anime_sama.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/coflix.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/french_manga.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/french_stream.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/goldenanime.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/goldenms.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/hianime.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/nyaa.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/papystreaming.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/playback.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/yts.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/health.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/history_ui.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/httpcache.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/icons.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/languages.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/logsetup.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/main.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/motion.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/mpv_ipc.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/neon.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/net_config.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/notifications.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/platform_android.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/preview_picker.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/progress.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/providers_registry.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/proxy.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/recent.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/__init__.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/anime_sama.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/anime_sama_planning.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/coflix.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/config.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/deobfuscate.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/eztv.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/french_manga.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/french_stream.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/goldenanime.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/goldenms.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/nyaa.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/objects.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/papystreaming.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/player.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/resilient.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/subtitles.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/utils.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/yts.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/setup_assistant.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/splash.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/subtitles.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/terminal_image.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/themes.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/tracker.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/ui.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/update_checker.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/src/freeflix_cli/yacine_live_proxy.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/conftest.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_android_setup.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_anilist_errors.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_anilist_token_input.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_anime_sama_planning.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_audit_fixes.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_batch_download.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_coflix_parse.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_core_units.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_cover_cache.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_decoy_stream.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_download_fixes.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_download_integration.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_download_robustness.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_episode_parsing.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_fsvid_decode.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_health.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_httpcache.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_i18n_complete.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_keyboard.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_managed_binaries.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_mouse.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_mpv_ipc.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_navigation.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_nerd_font.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_nyaa.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_pack_a_polish.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_performance.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_platform_android.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_player_dash.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_polish.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_premium_players.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_providers_repair.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_proxy_endpoint.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_proxy_integration.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_proxy_resilient.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_proxy_ssrf.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_recent_new_episodes.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_release_config.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_resilient.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_scraper_resilience.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_search_parity.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_sendvid.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_stream_analysis.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_stream_integrity.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_system_deps_cache.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_terminal_image.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_update_prompt.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_v1105_improvements.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tests/test_v2_aesthetic.py +0 -0
- {freeflix_cli-2.3.0 → freeflix_cli-2.4.0}/tools/audit_providers.py +0 -0
|
@@ -1,5 +1,60 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.4.0
|
|
4
|
+
|
|
5
|
+
- **Match regroupé par statut** : sections `En direct (n)`, `À venir (n)`,
|
|
6
|
+
`Terminés (n)` avec une **grille à colonnes fixes** (chaîne · heure ·
|
|
7
|
+
équipes · compétition). Les largeurs sont calculées en cellules réelles
|
|
8
|
+
sur tout l'écran, donc les heures et les équipes sont parfaitement
|
|
9
|
+
alignées d'une section à l'autre.
|
|
10
|
+
- **Badges de chaîne génériques** : `beIN N` → `BN` (toutes les chaînes),
|
|
11
|
+
`Dubai Sports N` → `DSN`, et toute autre chaîne reçoit une abréviation
|
|
12
|
+
courte (≤ 6 caractères).
|
|
13
|
+
- **Noms d'équipes corrigés** : dictionnaire de clubs embarqué
|
|
14
|
+
(`data/clubs.json`, ~430 entrées) utilisé avant la traduction machine,
|
|
15
|
+
plus une liste de rejets pour les traductions littérales. Fini
|
|
16
|
+
« ليل → nuit », « مان يونايتد → Homme Uni », « انجيه → Enregistrez-le ».
|
|
17
|
+
- **`LIVE` traduit** en `EN DIRECT` (FR).
|
|
18
|
+
- **Logos de chaînes** : index iptv-org embarqué
|
|
19
|
+
(`data/channel_logos.json`, ~30 k entrées) pour afficher le logo d'une
|
|
20
|
+
chaîne à partir de son nom.
|
|
21
|
+
- Cache de traductions versionné : les valeurs erronées des anciennes
|
|
22
|
+
versions sont automatiquement régénérées.
|
|
23
|
+
- **Contrôle avant lecture d'un match** : le manifeste est testé (DNS + HLS)
|
|
24
|
+
avant de lancer le lecteur. Une chaîne retirée ou bloquée affiche
|
|
25
|
+
« Impossible de lire ce match : serveur injoignable » au lieu d'ouvrir un
|
|
26
|
+
lecteur qui se referme aussitôt. Les chaînes Dubai Sports sont concernées
|
|
27
|
+
aujourd'hui (CDN `mgmlcdn.com`/`mangomolo.com` ne résout plus).
|
|
28
|
+
- 614 tests au vert, ruff OK.
|
|
29
|
+
|
|
30
|
+
## 2.3.3
|
|
31
|
+
|
|
32
|
+
- **Match : badges de chaîne généralisés**. beIN 1..N → `B1`..`BN`
|
|
33
|
+
(plus seulement 1–4), Dubai Sports N → `DSN`, et toute autre chaîne reçoit
|
|
34
|
+
une abréviation courte (`Canal+ Sport 2` → `CS2`, `Sky Sports F1` → `SSF`,
|
|
35
|
+
`ESPN` → `E`). Fin des libellés complets dans la liste.
|
|
36
|
+
- Testé sur le catalogue courant (18 matchs, 8 chaînes différentes).
|
|
37
|
+
|
|
38
|
+
## 2.3.2
|
|
39
|
+
|
|
40
|
+
- **Match buffer 20 s, démarrage rapide** : mpv utilise
|
|
41
|
+
`cache-secs=20` + `demuxer-readahead-secs=20` + `cache-pause=no`
|
|
42
|
+
(première image en ~1 s sur le test synthétique) ;
|
|
43
|
+
- VLC revient à la lecture **ffmpeg → TS** (celle qui ne s'arrêtait pas),
|
|
44
|
+
sans cache réseau 20 s : démarrage immédiat et flux continu ;
|
|
45
|
+
- la lecture reste au bord du live tout en gardant 20 s de marge pour
|
|
46
|
+
les connexions instables.
|
|
47
|
+
|
|
48
|
+
## 2.3.1
|
|
49
|
+
|
|
50
|
+
- **Qualités Match prêtes pour le futur** : 4K/2160p (≥ 15,0 Mbps,
|
|
51
|
+
~6,75 Go/h) et 1440p (≥ 8,0 Mbps, ~3,60 Go/h) ; une qualité inconnue
|
|
52
|
+
garde une estimation prudente au lieu de casser l'affichage.
|
|
53
|
+
- Tests supplémentaires avec des équipes/compétitions arbitraires
|
|
54
|
+
(Al Ahly / Zamalek) et des chaînes hors beIN : la traduction et
|
|
55
|
+
l'affichage restent dynamiques.
|
|
56
|
+
- 607 tests au vert, ruff OK.
|
|
57
|
+
|
|
3
58
|
## 2.3.0
|
|
4
59
|
|
|
5
60
|
- **Match** : la chaîne est affichée entre parenthèses **devant** le match,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: freeflix-cli
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: Watch movies, series, and anime from your terminal — multi-language, multi-source, no browser required. A maintained fork of autoflix-cli.
|
|
5
5
|
Project-URL: Homepage, https://github.com/freedy237/freeflix-cli
|
|
6
6
|
Project-URL: Repository, https://github.com/freedy237/freeflix-cli.git
|
|
@@ -121,7 +121,7 @@ Description-Content-Type: text/markdown
|
|
|
121
121
|
| 🆕 | **Nouveautés** : new episodes of the shows you follow, cleared once watched |
|
|
122
122
|
| 🖱 | **Full mouse control** : hover, click, wheel, right-click back, clickable pagination |
|
|
123
123
|
| 🎨 | **Cinema Noir** (2.0) design system, 12 themes, reduced-motion support |
|
|
124
|
-
| ⚽ | **Match** : live football from YacineTV,
|
|
124
|
+
| ⚽ | **Match** : live football from YacineTV grouped by status (live / upcoming / finished), aligned columns, short channel badges, HD/SD/Low/4K + Auto with bitrate and GB/h, mpv/VLC |
|
|
125
125
|
| 🎬 | **Browse Films, Séries & Anime** : the provider list, grouped as before |
|
|
126
126
|
| 🎮 | **4 player backends** : mpv, VLC, browser, download-only |
|
|
127
127
|
| 🇫🇷 | **French UI** : the whole CLI is in French when language is set to FR |
|
|
@@ -246,8 +246,12 @@ freeflix
|
|
|
246
246
|
That's it. The menu walks you through everything.
|
|
247
247
|
|
|
248
248
|
- **Films, Séries & Anime** opens the provider list (unchanged grouping).
|
|
249
|
-
- **Match**
|
|
250
|
-
|
|
249
|
+
- **Match** groups live, upcoming and finished football under section
|
|
250
|
+
headers with aligned columns (channel · kick-off in Cameroon time · teams ·
|
|
251
|
+
competition). Quality rows add resolution, minimum bitrate and estimated
|
|
252
|
+
GB/hour; pick **Auto** or a quality, then mpv or VLC. Team names are
|
|
253
|
+
localized from a bundled club dictionary, and every stream is checked
|
|
254
|
+
before the player opens (a dead channel shows a clear message).
|
|
251
255
|
- Player settings are isolated: FreeFlix never edits your global mpv/VLC
|
|
252
256
|
configuration.
|
|
253
257
|
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
| 🆕 | **Nouveautés** : new episodes of the shows you follow, cleared once watched |
|
|
90
90
|
| 🖱 | **Full mouse control** : hover, click, wheel, right-click back, clickable pagination |
|
|
91
91
|
| 🎨 | **Cinema Noir** (2.0) design system, 12 themes, reduced-motion support |
|
|
92
|
-
| ⚽ | **Match** : live football from YacineTV,
|
|
92
|
+
| ⚽ | **Match** : live football from YacineTV grouped by status (live / upcoming / finished), aligned columns, short channel badges, HD/SD/Low/4K + Auto with bitrate and GB/h, mpv/VLC |
|
|
93
93
|
| 🎬 | **Browse Films, Séries & Anime** : the provider list, grouped as before |
|
|
94
94
|
| 🎮 | **4 player backends** : mpv, VLC, browser, download-only |
|
|
95
95
|
| 🇫🇷 | **French UI** : the whole CLI is in French when language is set to FR |
|
|
@@ -214,8 +214,12 @@ freeflix
|
|
|
214
214
|
That's it. The menu walks you through everything.
|
|
215
215
|
|
|
216
216
|
- **Films, Séries & Anime** opens the provider list (unchanged grouping).
|
|
217
|
-
- **Match**
|
|
218
|
-
|
|
217
|
+
- **Match** groups live, upcoming and finished football under section
|
|
218
|
+
headers with aligned columns (channel · kick-off in Cameroon time · teams ·
|
|
219
|
+
competition). Quality rows add resolution, minimum bitrate and estimated
|
|
220
|
+
GB/hour; pick **Auto** or a quality, then mpv or VLC. Team names are
|
|
221
|
+
localized from a bundled club dictionary, and every stream is checked
|
|
222
|
+
before the player opens (a dead channel shows a clear message).
|
|
219
223
|
- Player settings are isolated: FreeFlix never edits your global mpv/VLC
|
|
220
224
|
configuration.
|
|
221
225
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "freeflix-cli"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.4.0"
|
|
8
8
|
description = "Watch movies, series, and anime from your terminal — multi-language, multi-source, no browser required. A maintained fork of autoflix-cli."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9.2"
|