first commit
This commit is contained in:
176
README.md
Normal file
176
README.md
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
# Lecteur de sessions — Assembly Session Player
|
||||||
|
|
||||||
|
Application de bureau (GNOME / Wayland) **très simple à utiliser**, qui lit
|
||||||
|
automatiquement, **dans l'ordre**, toutes les sessions vidéo disponibles sur un
|
||||||
|
lien d'assemblée du type :
|
||||||
|
|
||||||
|
```
|
||||||
|
https://stream.jw.org/9021-8224-3277-8078
|
||||||
|
```
|
||||||
|
|
||||||
|
Elle retient où vous en étiez (session + position exacte) pour reprendre la
|
||||||
|
lecture pile où vous vous êtes arrêté·e, y compris après un redémarrage du PC.
|
||||||
|
|
||||||
|
> **Projet non officiel**, réalisé pour un usage personnel. Il n'est ni
|
||||||
|
> développé, ni approuvé, ni affilié à watchtower.org / jw.org / stream.jw.org.
|
||||||
|
> Il se contente d'afficher la page officielle telle quelle dans une fenêtre
|
||||||
|
> (WebKitGTK) et de l'automatiser via le DOM — aucun contenu n'est téléchargé,
|
||||||
|
> copié ou redistribué par l'application.
|
||||||
|
|
||||||
|
## Fonctionnalités
|
||||||
|
|
||||||
|
- Lien d'assemblée **configurable** (Paramètres, ou menu de l'icône de la
|
||||||
|
barre des tâches).
|
||||||
|
- Détection automatique de la liste des sessions et **lecture dans le bon
|
||||||
|
ordre**, enchaînement automatique d'une session à l'autre.
|
||||||
|
- **Reprise de lecture** exacte (session + position en secondes), même après
|
||||||
|
fermeture complète de l'application ou redémarrage du PC.
|
||||||
|
- **Démarrage automatique** au démarrage du PC (option dans les Paramètres ou
|
||||||
|
le menu de l'icône), en arrière-plan (fenêtre réduite dans la barre des
|
||||||
|
tâches), avec reprise automatique.
|
||||||
|
- **Mode plein écran** (bouton dédié, touche `F11`, ou menu de l'icône) ; `F10`
|
||||||
|
ouvre les Paramètres même en plein écran.
|
||||||
|
- **Icône dans la barre des tâches** (system tray / AppIndicator, compatible
|
||||||
|
GNOME sur Wayland) avec Lecture/Pause, session précédente/suivante, plein
|
||||||
|
écran, démarrage automatique et changement de lien.
|
||||||
|
- Icône d'application dédiée, utilisée dans la fenêtre, le lanceur et la
|
||||||
|
barre des tâches.
|
||||||
|
- Bouton discret « À propos » (barre du haut ou menu de l'icône) : nom,
|
||||||
|
version et rappel du caractère non officiel de l'application.
|
||||||
|
|
||||||
|
## Limitation connue (sécurité navigateur, pas un bug)
|
||||||
|
|
||||||
|
Les navigateurs (et WebKitGTK) bloquent le démarrage automatique du son/vidéo
|
||||||
|
tant qu'aucun **clic réel** n'a eu lieu dans la page. Concrètement : **au
|
||||||
|
premier lancement de la fenêtre, un seul clic sur le bouton ▶ affiché dans la
|
||||||
|
vidéo est nécessaire pour démarrer**. Une fois ce clic fait, tout s'enchaîne
|
||||||
|
ensuite automatiquement (reprise à la bonne position, passage à la session
|
||||||
|
suivante) sans autre action, tant que la fenêtre reste ouverte. C'est une
|
||||||
|
protection standard des navigateurs contre la lecture automatique intempestive
|
||||||
|
— l'application ne peut pas (et ne doit pas) la contourner.
|
||||||
|
|
||||||
|
## Prérequis
|
||||||
|
|
||||||
|
Testé sur Ubuntu/GNOME (Wayland). Paquets système nécessaires :
|
||||||
|
|
||||||
|
- `python3-gi`, `python3-gi-cairo`
|
||||||
|
- `gir1.2-gtk-3.0`
|
||||||
|
- `gir1.2-webkit2-4.1`
|
||||||
|
- `gir1.2-ayatanaappindicator3-0.1`
|
||||||
|
- `gir1.2-notify-0.7`
|
||||||
|
- `gir1.2-rsvg-2.0` (uniquement pour générer les icônes)
|
||||||
|
|
||||||
|
Installation en une commande :
|
||||||
|
|
||||||
|
```
|
||||||
|
make deps
|
||||||
|
```
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```
|
||||||
|
make install
|
||||||
|
```
|
||||||
|
|
||||||
|
Installe l'application pour l'utilisateur courant dans `~/.local` (binaire,
|
||||||
|
icônes, fichier `.desktop`). Assurez-vous que `~/.local/bin` est dans votre
|
||||||
|
`PATH` (c'est le cas par défaut sur la plupart des distributions GNOME).
|
||||||
|
|
||||||
|
Pour une installation système (tous les utilisateurs) :
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo make install PREFIX=/usr/local
|
||||||
|
```
|
||||||
|
|
||||||
|
## Utilisation
|
||||||
|
|
||||||
|
Lancez `assembly-player` depuis le terminal, le menu d'applications, ou
|
||||||
|
cliquez sur l'icône **Lecteur de sessions**.
|
||||||
|
|
||||||
|
1. La fenêtre s'ouvre sur le lien d'assemblée configuré (par défaut, celui
|
||||||
|
fourni à la création du projet).
|
||||||
|
2. L'application choisit automatiquement la bonne session à ouvrir (reprise,
|
||||||
|
ou première session si c'est la première fois) et se positionne au bon
|
||||||
|
endroit.
|
||||||
|
3. Cliquez une fois sur ▶ dans la vidéo pour démarrer (voir limitation
|
||||||
|
ci-dessus). Ensuite, tout est automatique.
|
||||||
|
4. Fermer la fenêtre (croix) coupe la lecture et **quitte complètement**
|
||||||
|
l'application. Pour la garder active en arrière-plan sans fenêtre visible,
|
||||||
|
utilisez « Masquer la fenêtre » dans le menu de l'icône (au lieu de la
|
||||||
|
croix) ; « Afficher la fenêtre » la fait réapparaître.
|
||||||
|
|
||||||
|
### Changer le lien de l'assemblée
|
||||||
|
|
||||||
|
Bouton ☰ dans la fenêtre, ou clic droit sur l'icône de la barre des tâches →
|
||||||
|
« Changer le lien de l'assemblée… ».
|
||||||
|
|
||||||
|
### Démarrage automatique au démarrage du PC
|
||||||
|
|
||||||
|
Cochez « Lancer automatiquement au démarrage du PC » dans les Paramètres (ou
|
||||||
|
le menu de l'icône), ou en ligne de commande :
|
||||||
|
|
||||||
|
```
|
||||||
|
make autostart-enable
|
||||||
|
make autostart-disable
|
||||||
|
```
|
||||||
|
|
||||||
|
Au démarrage du PC, l'application se lance réduite dans la barre des tâches et
|
||||||
|
reprend automatiquement à l'endroit où vous vous étiez arrêté (un clic sur ▶
|
||||||
|
reste nécessaire, voir plus haut).
|
||||||
|
|
||||||
|
### Plein écran
|
||||||
|
|
||||||
|
Bouton dédié dans la fenêtre, touche `F11`, ou menu de l'icône.
|
||||||
|
|
||||||
|
En plein écran, la barre du haut (avec le bouton ☰ Paramètres) est masquée —
|
||||||
|
c'est normal, GTK fait disparaître la barre de titre dans ce mode. Pour
|
||||||
|
revenir en fenêtré ou ouvrir les Paramètres sans repasser par la souris :
|
||||||
|
|
||||||
|
- `F11` : bascule plein écran / fenêtré (fonctionne même si la vidéo a le
|
||||||
|
focus clavier).
|
||||||
|
- `F10` : ouvre directement les Paramètres, même en plein écran.
|
||||||
|
|
||||||
|
Une notification rappelle ces deux raccourcis à chaque entrée en plein écran.
|
||||||
|
|
||||||
|
## Emplacement des données
|
||||||
|
|
||||||
|
- Configuration (lien, options) : `~/.config/assembly-player/config.json`
|
||||||
|
- Progression de lecture (par assemblée) : `~/.local/state/assembly-player/state.json`
|
||||||
|
- Démarrage automatique : `~/.config/autostart/assembly-player.desktop`
|
||||||
|
|
||||||
|
## Désinstallation
|
||||||
|
|
||||||
|
```
|
||||||
|
make uninstall
|
||||||
|
```
|
||||||
|
|
||||||
|
## Développement
|
||||||
|
|
||||||
|
```
|
||||||
|
make test # vérifie que le code Python compile
|
||||||
|
make run # lance l'application depuis les sources
|
||||||
|
make icons # régénère les icônes PNG depuis le SVG source
|
||||||
|
```
|
||||||
|
|
||||||
|
Icône source (vecteur) : `assembly_player/icons/assembly-player.svg`.
|
||||||
|
|
||||||
|
## Dépannage
|
||||||
|
|
||||||
|
- **L'icône n'apparaît pas dans la barre des tâches** : sur GNOME/Wayland,
|
||||||
|
l'extension GNOME Shell « AppIndicator and KStatusNotifierItem Support »
|
||||||
|
doit être activée.
|
||||||
|
- **`assembly-player` introuvable après `make install`** : vérifiez que
|
||||||
|
`~/.local/bin` figure dans votre `$PATH` (`echo $PATH`).
|
||||||
|
- **La vidéo ne démarre jamais** : cliquez directement sur le bouton ▶ affiché
|
||||||
|
dans la vidéo (voir « Limitation connue » ci-dessus).
|
||||||
|
- **La liste des sessions ne se met pas à jour** : le site stream.jw.org a pu
|
||||||
|
changer sa structure de page ; ouvrez une issue/PR sur le dépôt du projet.
|
||||||
|
- **Impossible de revenir aux Paramètres en plein écran** : appuyez sur `F10`
|
||||||
|
(ouvre directement les Paramètres) ou `F11` (revient en fenêtré), ou passez
|
||||||
|
par le menu de l'icône de la barre des tâches.
|
||||||
|
- **Image noire ou figée (mais le son continue) en changeant de session** :
|
||||||
|
bug de compositing GPU connu de WebKitGTK. Depuis la version 1.0.4,
|
||||||
|
l'accélération matérielle de la page est désactivée pour l'éviter
|
||||||
|
structurellement. Si ça se reproduit malgré tout, basculer une fois en
|
||||||
|
plein écran (`F11`) puis revenir force un rafraîchissement de l'image ; et
|
||||||
|
n'hésitez pas à signaler le modèle de carte graphique/pilote utilisé.
|
||||||
Reference in New Issue
Block a user