DTLbb — Manuel de référence
Description fonctionnelle et technique de l’assistant d’administration prudente de forums phpBB
Préface
DTLbb est une application de bureau Python qui assiste l’administration éditoriale d’un forum phpBB au moyen de son interface web. Elle identifie le compte connecté, observe la structure du forum, contrôle les droits de publication réellement accordés et encadre la création d’un nouveau sujet par une validation humaine explicite.
Le produit a été conçu pour le forum NetDTL, dont l’adresse est proposée par défaut, tout en acceptant une autre installation phpBB compatible. Il associe une interface graphique bilingue à un moteur de navigation Playwright exécuté en arrière-plan.
Origine et intention
Le besoin initial
La publication administrative dans un forum implique plusieurs vérifications faciles à dissocier à tort : le compte visible doit être le compte attendu, un statut d’administrateur ne garantit pas le droit d’écrire dans chaque espace, la destination doit être choisie sans ambiguïté et l’envoi ne doit jamais résulter d’une simple navigation automatique.
DTLbb a été créé pour réunir ces contrôles dans un même outil et réduire les risques d’erreur lors d’une tâche récurrente. Son rôle n’est pas de remplacer phpBB, mais d’ajouter une couche locale de lisibilité, de contrôle et de confirmation autour de fonctions déjà offertes par le forum.
L’évolution du besoin
L’écosystème NetDTL comprend plusieurs outils, chacun associé à un sous-forum. La préparation des annonces de mise à jour exige de rapprocher l’état de nombreux dépôts Git et la structure éditoriale du forum. DTLbb intègre donc aussi un moteur de préparation de brouillons anglais fondés sur des faits Git validés. Cette capacité reste strictement séparée de la publication : elle produit des propositions à relire, sans ouvrir le forum ni modifier l’état des annonces.
Principes directeurs
- Contrôle humain : une publication demeure une décision explicite de la personne devant l’écran.
- Autorité de phpBB : les permissions constatées dans l’interface du forum prévalent sur les suppositions liées au rôle du compte.
- Moindre privilège : DTLbb utilise l’interface web et n’accède jamais directement à la base MySQL.
- Traçabilité maîtrisée : les événements utiles au diagnostic sont consignés sans enregistrer le mot de passe ni exposer les identifiants de session.
- Séparation préparation/publication : l’analyse Git génère des brouillons, mais n’envoie aucun contenu.
Finalité et périmètre
Finalité principale
DTLbb sert d’intermédiaire prudent entre un administrateur éditorial et un forum phpBB. Il rend visibles l’identité de la session, le statut administratif et les droits d’écriture par forum, puis conserve une étape de confirmation immédiatement avant toute publication.
Finalité complémentaire
Pour les projets NetDTL connus de l’application, DTLbb rapproche les références Git, les versions déclarées, les statistiques de modifications et certains éléments documentaires afin de constituer des brouillons structurés d’annonces de version. Le résultat est un matériau éditorial, non une publication automatique.
Frontières du produit
- DTLbb est un client de l’interface web phpBB ; ce n’est ni une extension phpBB ni une API serveur.
- Il ne gère pas les utilisateurs, groupes, rôles ou listes de contrôle d’accès.
- Il ne modifie pas la configuration du forum et n’effectue aucune opération administrative dans le panneau ACP.
- Il ne remplace ni la revue éditoriale, ni la validation des versions, ni les politiques de sécurité du forum.
- Il n’est pas un service autonome de diffusion continue et ne planifie aucune publication.
Architecture
Interface de bureau
TkinterFrançaisEnglishPrésente les informations de connexion, la hiérarchie des forums, l’état des permissions, les champs éditoriaux, l’aperçu et la décision finale de publication. Le changement de langue conserve les valeurs déjà saisies.
Automatisation web
PlaywrightChromiumHTTPSReproduit les interactions avec les pages phpBB, interprète les marqueurs visibles de session et de permission, soumet le formulaire de sujet et vérifie la réponse du forum. Dans l’interface graphique, cette navigation demeure invisible.
Analyse des dépôts
GitLecture seule19 projetsCompare une référence de départ à l’état validé courant, classe les changements, rassemble des statistiques et prépare un texte anglais accompagné de métadonnées structurées. Les modifications non validées peuvent être signalées, mais ne sont pas intégrées au brouillon.
Persistance locale
Profil ChromiumJournalBrouillonsUn profil de navigateur peut conserver l’état technique nécessaire à Playwright. Le journal aide au diagnostic. Les brouillons et leur manifeste matérialisent le résultat de l’analyse Git. Aucun de ces éléments n’est une base miroir de phpBB.
Modèle fonctionnel
| Objet | Signification |
|---|---|
| Forum cible | Installation phpBB désignée par une adresse HTTP(S) normalisée ; NetDTL constitue la cible proposée, non une dépendance codée en dur. |
| Compte attendu | Identité dont DTLbb vérifie la présence effective après authentification ou reprise d’une session persistante. |
| Statut Admin | Résultat informatif d’un contrôle d’accès en lecture seule au panneau ACP. Il ne vaut pas permission de publier. |
| Forum publiable | Forum ou sous-forum pour lequel phpBB présente sans ambiguïté les champs et la commande nécessaires à la création d’un sujet. |
| Projet suivi | Dépôt Git associé par DTLbb à un identifiant de sous-forum NetDTL. |
| Référence de départ | État Git servant de base à une annonce : dernière référence publiée connue, tag antérieur approprié ou commit précédent. |
| Brouillon | Proposition de corps de message issue uniquement des données Git validées et d’éléments du README anglais. |
| Manifeste | Inventaire JSON des résultats, destinations, références et éventuels avertissements ; il affirme explicitement qu’aucune publication n’a eu lieu. |
Capacités fonctionnelles
Observation du forum
- Normalisation et validation de l’adresse d’une installation phpBB.
- Confirmation de l’identité réellement connectée et traitement d’une session persistante appartenant à un autre compte.
- Détection informative de l’accès au panneau d’administration, y compris lorsque phpBB exige une seconde authentification.
- Extraction de la hiérarchie visible des catégories, forums et sous-forums.
- Contrôle individuel du droit effectif d’ouvrir un sujet dans chaque destination.
Publication encadrée
- Préparation d’un sujet avec titre et corps obligatoires.
- Présentation d’un aperçu avant décision.
- Envoi uniquement après confirmation explicite.
- Vérification de la page de sujet renvoyée par phpBB et relecture de la liste des sujets de la destination.
- Nettoyage des identifiants de session dans l’adresse conservée du sujet.
- Tentative de déconnexion après les opérations de contrôle comme de publication.
Préparation d’annonces Git
- Analyse des projets associés aux sous-forums NetDTL 2 à 20.
- Sélection déterministe d’une base de comparaison et exclusion des changements non validés.
- Lecture de la version déclarée dans le commit courant, comptage des commits et synthèse des fichiers modifiés.
- Classement des changements entre documentation, tests, construction, ressources et code applicatif.
- Production de brouillons anglais et, lorsque cela est possible, d’un lien de comparaison GitHub.
- Signalement de l’état du répertoire de travail sans altération du fichier d’état des publications.
Garanties de prudence et de sécurité
| Garantie | Portée |
|---|---|
| Confirmation | Le flux graphique maintient une décision humaine distincte entre l’aperçu du contenu et son envoi. |
| Permission réelle | La disponibilité du formulaire de publication est vérifiée pour chaque destination ; le statut Admin ne sert pas de raccourci d’autorisation. |
| Mot de passe | Le secret reste en mémoire pendant l’exécution. DTLbb ne l’écrit ni dans ses sources, ni dans ses fichiers, ni dans son journal. |
| Session phpBB | Les paramètres sid sont masqués dans les traces et retirés des liens de sujet destinés à être conservés. |
| Base de données | Aucune connexion directe à MySQL n’est réalisée ; phpBB reste l’unique autorité transactionnelle. |
| Analyse Git | Les commandes d’analyse sont en lecture seule. La génération n’ouvre pas le forum, ne publie rien et ne met pas à jour l’état des annonces. |
| Déconnexion | La fin de session est tentée et contrôlée après chaque opération web, y compris lorsqu’une erreur survient. |
Données et traces
| Élément | Rôle et sensibilité |
|---|---|
| Identifiants | Nom d’utilisateur et mot de passe nécessaires à la session. Le mot de passe n’a pas vocation à être persisté par DTLbb. |
| Profil Playwright | État local d’un contexte Chromium persistant. Il peut contenir des données de navigation et doit être protégé comme tout profil de navigateur. |
| Journal | Chronologie technique destinée au diagnostic ; les URL y sont expurgées des identifiants de session phpBB. |
| Brouillons Markdown | Textes éditoriaux proposés à partir des commits et de la documentation validés. |
| Manifeste JSON | Métadonnées de génération, références Git, destinations, statistiques, chemins et avertissements. |
| État des annonces | Source facultative indiquant la dernière référence publiée par projet. La version actuelle la consulte sans la modifier. |
Composants internes
| Composant | Responsabilité |
|---|---|
| DTLbb.py | Modèle applicatif, analyse Git, navigation phpBB, interface graphique, journalisation et gestion des erreurs. |
| dtlbb_i18n.py | Catalogue bilingue et sélection de la langue des messages et libellés. |
| Playwright | Contexte Chromium persistant et interactions contrôlées avec les pages web. |
| Git | Source des références, commits, différences, versions et adresses distantes utilisées dans les brouillons. |
| update-drafts | Ensemble des propositions Markdown et de leur manifeste de génération. |
| .dtl_version | Source unique et officielle du numéro de version. |
| version_info.txt | Copie dérivée pour les métadonnées du livrable Windows. |
| DTLbb.spec | Configuration PyInstaller conservée à la racine. |
| build.ps1 | Définition de l’assemblage autonome Windows et de ses ressources. |
Invariants
- Le compte observé après connexion doit correspondre au compte demandé.
- Une destination n’est déclarée publiable que si les éléments attendus du formulaire phpBB sont présents sans ambiguïté.
- Un titre et un corps non vides sont nécessaires à tout sujet.
- Une publication n’est considérée comme confirmée que si phpBB conduit à un sujet identifiable.
- Un brouillon Git repose sur des commits ; les modifications du répertoire de travail ne sont pas incorporées.
- Le manifeste de préparation conserve l’indicateur attestant l’absence de publication.
Limites connues
- DTLbb dépend de la structure HTML et des sélecteurs d’un thème phpBB compatible ; une personnalisation importante ou une évolution du forum peut rendre certains contrôles inopérants.
- L’observation d’un formulaire de publication atteste une permission pratique au moment du contrôle, sans remplacer l’analyse complète des ACL de phpBB.
- La vérification ACP confirme un accès visible, mais DTLbb n’inventorie pas les privilèges administratifs détaillés.
- La fin de session est demandée à phpBB, tandis que le profil Chromium persistant peut conserver d’autres données de navigation.
- La préparation Git connaît une liste fixe de projets NetDTL et produit uniquement des brouillons en anglais.
- Les points saillants issus du README sont une extraction heuristique et nécessitent une relecture éditoriale.
- La préparation ne publie pas les brouillons et ne met pas à jour la dernière référence annoncée.
- DTLbb ne garantit ni la disponibilité du réseau, ni celle du forum, de Chromium ou de Git.
La version décrite est v1.0-20. Les garanties de ce manuel correspondent au comportement observable dans cette version et doivent être réévaluées si la structure de phpBB, le modèle de brouillon ou les règles de publication évoluent.
Glossaire
| Terme | Définition |
|---|---|
| ACP | Panneau de contrôle d’administration de phpBB, utilisé ici uniquement pour constater le statut administratif du compte. |
| Permission effective | Capacité concrète de créer un sujet, constatée dans la destination concernée. |
| Playwright | Moteur d’automatisation qui pilote Chromium et observe les pages phpBB. |
| Profil persistant | Répertoire local conservant l’état technique d’un contexte de navigateur entre plusieurs exécutions. |
| Brouillon de mise à jour | Proposition de message construite à partir de faits Git validés et destinée à une revue humaine. |
| Référence Git | Nom ou identifiant désignant un commit servant de point de départ ou d’arrivée à une comparaison. |
| SID | Identifiant de session que phpBB peut placer dans une URL et que DTLbb masque ou retire des traces concernées. |