freeflix-cli 2.3.1__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.
Files changed (160) hide show
  1. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/CHANGELOG.md +45 -0
  2. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/PKG-INFO +8 -6
  3. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/README.md +7 -5
  4. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/pyproject.toml +1 -1
  5. freeflix_cli-2.4.0/src/freeflix_cli/data/channel_logos.json +1 -0
  6. freeflix_cli-2.4.0/src/freeflix_cli/data/clubs.json +1 -0
  7. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/match.py +110 -6
  8. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/i18n.py +9 -1
  9. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/install_health.py +1 -1
  10. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/player_manager.py +45 -5
  11. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/yacine_match.py +143 -2
  12. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_yacine_match.py +108 -4
  13. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/uv.lock +1 -1
  14. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/.github/workflows/binaries.yml +0 -0
  15. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/.github/workflows/ci.yml +0 -0
  16. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/.github/workflows/macos.yml +0 -0
  17. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/.github/workflows/release.yml +0 -0
  18. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/.gitignore +0 -0
  19. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/CONTRIBUTING.md +0 -0
  20. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/LICENSE +0 -0
  21. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/SECURITY.md +0 -0
  22. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/assets/logo.png +0 -0
  23. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/config/freeflix_position.lua +0 -0
  24. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/config/input.conf +0 -0
  25. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/config/mpv.conf +0 -0
  26. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/data/selectors.jsonc +0 -0
  27. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/data/source_portal.jsonc +0 -0
  28. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/docs/ARCHITECTURE.md +0 -0
  29. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/docs/AUDIT-FREEFLIX-2.0-2026-11-04.md +0 -0
  30. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/docs/CORRECTIONS-2.1.0.md +0 -0
  31. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/docs/README.md +0 -0
  32. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/docs/RELEASE.md +0 -0
  33. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/docs/SCORECARD-2.1.0.md +0 -0
  34. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/docs/TROUBLESHOOTING.md +0 -0
  35. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/docs/USAGE.md +0 -0
  36. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/scripts/build-binary.sh +0 -0
  37. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/scripts/install-mac.sh +0 -0
  38. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/scripts/install.ps1 +0 -0
  39. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/scripts/install.py +0 -0
  40. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/scripts/install.sh +0 -0
  41. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/scripts/wrappers/mpv +0 -0
  42. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/__init__.py +0 -0
  43. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/__main__.py +0 -0
  44. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/anilist.py +0 -0
  45. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/cli.py +0 -0
  46. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/cli_utils.py +0 -0
  47. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/cloudflare.py +0 -0
  48. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/config_loader.py +0 -0
  49. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/defaults.py +0 -0
  50. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/doctor.py +0 -0
  51. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/__init__.py +0 -0
  52. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/anilist.py +0 -0
  53. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/anime_sama.py +0 -0
  54. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/coflix.py +0 -0
  55. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/french_manga.py +0 -0
  56. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/french_stream.py +0 -0
  57. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/goldenanime.py +0 -0
  58. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/goldenms.py +0 -0
  59. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/hianime.py +0 -0
  60. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/nyaa.py +0 -0
  61. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/papystreaming.py +0 -0
  62. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/playback.py +0 -0
  63. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/handlers/yts.py +0 -0
  64. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/health.py +0 -0
  65. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/history_ui.py +0 -0
  66. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/httpcache.py +0 -0
  67. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/icons.py +0 -0
  68. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/languages.py +0 -0
  69. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/logsetup.py +0 -0
  70. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/main.py +0 -0
  71. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/motion.py +0 -0
  72. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/mpv_ipc.py +0 -0
  73. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/neon.py +0 -0
  74. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/net_config.py +0 -0
  75. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/notifications.py +0 -0
  76. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/platform_android.py +0 -0
  77. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/preview_picker.py +0 -0
  78. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/progress.py +0 -0
  79. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/providers_registry.py +0 -0
  80. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/proxy.py +0 -0
  81. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/recent.py +0 -0
  82. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/__init__.py +0 -0
  83. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/anime_sama.py +0 -0
  84. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/anime_sama_planning.py +0 -0
  85. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/coflix.py +0 -0
  86. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/config.py +0 -0
  87. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/deobfuscate.py +0 -0
  88. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/eztv.py +0 -0
  89. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/french_manga.py +0 -0
  90. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/french_stream.py +0 -0
  91. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/goldenanime.py +0 -0
  92. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/goldenms.py +0 -0
  93. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/nyaa.py +0 -0
  94. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/objects.py +0 -0
  95. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/papystreaming.py +0 -0
  96. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/player.py +0 -0
  97. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/resilient.py +0 -0
  98. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/subtitles.py +0 -0
  99. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/utils.py +0 -0
  100. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/scraping/yts.py +0 -0
  101. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/setup_assistant.py +0 -0
  102. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/splash.py +0 -0
  103. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/subtitles.py +0 -0
  104. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/terminal_image.py +0 -0
  105. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/themes.py +0 -0
  106. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/tracker.py +0 -0
  107. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/ui.py +0 -0
  108. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/update_checker.py +0 -0
  109. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/src/freeflix_cli/yacine_live_proxy.py +0 -0
  110. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/conftest.py +0 -0
  111. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_android_setup.py +0 -0
  112. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_anilist_errors.py +0 -0
  113. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_anilist_token_input.py +0 -0
  114. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_anime_sama_planning.py +0 -0
  115. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_audit_fixes.py +0 -0
  116. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_batch_download.py +0 -0
  117. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_coflix_parse.py +0 -0
  118. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_core_units.py +0 -0
  119. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_cover_cache.py +0 -0
  120. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_decoy_stream.py +0 -0
  121. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_download_fixes.py +0 -0
  122. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_download_integration.py +0 -0
  123. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_download_robustness.py +0 -0
  124. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_episode_parsing.py +0 -0
  125. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_fsvid_decode.py +0 -0
  126. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_health.py +0 -0
  127. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_httpcache.py +0 -0
  128. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_i18n_complete.py +0 -0
  129. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_keyboard.py +0 -0
  130. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_managed_binaries.py +0 -0
  131. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_mouse.py +0 -0
  132. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_mpv_ipc.py +0 -0
  133. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_navigation.py +0 -0
  134. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_nerd_font.py +0 -0
  135. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_nyaa.py +0 -0
  136. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_pack_a_polish.py +0 -0
  137. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_performance.py +0 -0
  138. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_platform_android.py +0 -0
  139. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_player_dash.py +0 -0
  140. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_polish.py +0 -0
  141. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_premium_players.py +0 -0
  142. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_providers_repair.py +0 -0
  143. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_proxy_endpoint.py +0 -0
  144. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_proxy_integration.py +0 -0
  145. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_proxy_resilient.py +0 -0
  146. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_proxy_ssrf.py +0 -0
  147. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_recent_new_episodes.py +0 -0
  148. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_release_config.py +0 -0
  149. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_resilient.py +0 -0
  150. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_scraper_resilience.py +0 -0
  151. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_search_parity.py +0 -0
  152. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_sendvid.py +0 -0
  153. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_stream_analysis.py +0 -0
  154. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_stream_integrity.py +0 -0
  155. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_system_deps_cache.py +0 -0
  156. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_terminal_image.py +0 -0
  157. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_update_prompt.py +0 -0
  158. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_v1105_improvements.py +0 -0
  159. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tests/test_v2_aesthetic.py +0 -0
  160. {freeflix_cli-2.3.1 → freeflix_cli-2.4.0}/tools/audit_providers.py +0 -0
@@ -1,5 +1,50 @@
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
+
3
48
  ## 2.3.1
4
49
 
5
50
  - **Qualités Match prêtes pour le futur** : 4K/2160p (≥ 15,0 Mbps,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: freeflix-cli
3
- Version: 2.3.1
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, Cameroon time, B1–B4 channel badges, HD/SD/Low/4K + Auto, minimum bitrate + GB/h estimate, mpv/VLC |
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,10 +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** shows live/upcoming football with kick-off in Cameroon time
250
- (UTC+1), the channel badge (B1–B4), and quality rows with resolution,
251
- minimum bitrate and estimated GB/hour; pick **Auto** or a quality, then
252
- mpv or VLC.
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).
253
255
  - Player settings are isolated: FreeFlix never edits your global mpv/VLC
254
256
  configuration.
255
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, Cameroon time, B1–B4 channel badges, HD/SD/Low/4K + Auto, minimum bitrate + GB/h estimate, mpv/VLC |
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,10 +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** shows live/upcoming football with kick-off in Cameroon time
218
- (UTC+1), the channel badge (B1–B4), and quality rows with resolution,
219
- minimum bitrate and estimated GB/hour; pick **Auto** or a quality, then
220
- mpv or VLC.
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).
221
223
  - Player settings are isolated: FreeFlix never edits your global mpv/VLC
222
224
  configuration.
223
225
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "freeflix-cli"
7
- version = "2.3.1"
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"