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