DTLbb — Reference Manual
Functional and technical description of the cautious phpBB forum administration assistant
Preface
DTLbb is a Python desktop application that assists with the editorial administration of a phpBB forum through its web interface. It identifies the connected account, observes the forum structure, checks the posting rights actually granted, and places the creation of a new topic behind explicit human confirmation.
The product was designed for the NetDTL forum, whose address is offered by default, while accepting another compatible phpBB installation. It combines a bilingual graphical interface with a background Playwright navigation engine.
Origin and intent
The original need
Administrative posting on a forum involves several checks that are easy to conflate: the visible account must be the expected account, administrator status does not guarantee writing rights in every area, the destination must be unambiguous, and submission must never be an incidental consequence of automated navigation.
DTLbb was created to bring those checks together and reduce errors in a recurring task. Its role is not to replace phpBB, but to add a local layer of clarity, control, and confirmation around capabilities already provided by the forum.
How the need evolved
The NetDTL ecosystem contains several tools, each associated with a subforum. Preparing update announcements requires the state of many Git repositories to be reconciled with the forum’s editorial structure. DTLbb therefore also includes an English draft-preparation engine based on committed Git facts. This capability remains strictly separate from publication: it produces proposals for review without opening the forum or changing announcement state.
Guiding principles
- Human control: publication remains an explicit decision by the person at the screen.
- phpBB authority: permissions observed in the forum interface take precedence over assumptions derived from account roles.
- Least privilege: DTLbb uses the web interface and never accesses the MySQL database directly.
- Controlled traceability: useful diagnostic events are recorded without storing the password or exposing session identifiers.
- Preparation/publication separation: Git analysis creates drafts but submits no content.
Purpose and scope
Primary purpose
DTLbb serves as a cautious intermediary between an editorial administrator and a phpBB forum. It makes the session identity, administrator status, and per-forum writing rights visible, then retains a confirmation checkpoint immediately before any publication.
Secondary purpose
For the NetDTL projects known to the application, DTLbb combines Git references, declared versions, change statistics, and selected documentation material to produce structured release-announcement drafts. The result is editorial source material, not an automated publication.
Product boundaries
- DTLbb is a client of the phpBB web interface; it is neither a phpBB extension nor a server API.
- It does not manage users, groups, roles, or access-control lists.
- It does not change forum configuration or perform administrative operations in the ACP.
- It does not replace editorial review, version validation, or the forum’s security policies.
- It is not an autonomous continuous-delivery service and schedules no publication.
Architecture
Desktop interface
TkinterEnglishFrançaisPresents connection information, the forum hierarchy, permission status, editorial fields, preview, and the final publishing decision. Switching languages preserves values already entered.
Web automation
PlaywrightChromiumHTTPSReproduces interactions with phpBB pages, interprets visible session and permission markers, submits the topic form, and verifies the forum response. In the graphical interface, this navigation remains hidden.
Repository analysis
GitRead only19 projectsCompares a baseline with the current committed state, classifies changes, gathers statistics, and prepares English text with structured metadata. Uncommitted changes may be reported but are not incorporated into drafts.
Local persistence
Chromium profileLogDraftsA browser profile may retain technical state required by Playwright. The log supports diagnosis. Drafts and their manifest materialize Git-analysis results. None of these elements is a mirror database of phpBB.
Functional model
| Object | Meaning |
|---|---|
| Target forum | A phpBB installation designated by a normalized HTTP(S) address; NetDTL is the proposed target, not a hard-coded dependency. |
| Expected account | The identity whose effective presence DTLbb verifies after authentication or reuse of a persistent session. |
| Admin status | The informative result of a read-only ACP access check. It does not constitute posting permission. |
| Postable forum | A forum or subforum where phpBB unambiguously presents the fields and action required to create a topic. |
| Tracked project | A Git repository associated by DTLbb with a NetDTL subforum identifier. |
| Baseline | The Git state used as the start of an announcement: a known last-published reference, a suitable earlier tag, or the previous commit. |
| Draft | A proposed message body derived only from committed Git data and selected material from the English README. |
| Manifest | A JSON inventory of results, destinations, references, and warnings; it explicitly states that no publication occurred. |
Functional capabilities
Forum observation
- Normalization and validation of a phpBB installation address.
- Confirmation of the actually connected identity and handling of a persistent session belonging to another account.
- Informative detection of ACP access, including cases where phpBB requires a second authentication.
- Extraction of the visible hierarchy of categories, forums, and subforums.
- Individual checking of the effective right to open a topic in every destination.
Controlled publication
- Preparation of a topic with a required title and body.
- Presentation of a preview before a decision is made.
- Submission only after explicit confirmation.
- Verification of the topic page returned by phpBB and rereading of the destination’s topic list.
- Removal of session identifiers from the retained topic address.
- Attempted logout after both inspection and publishing operations.
Git announcement preparation
- Analysis of projects associated with NetDTL subforums 2 through 20.
- Deterministic baseline selection and exclusion of uncommitted changes.
- Reading of the version declared in the current commit, commit counting, and changed-file summaries.
- Classification of changes among documentation, tests, build, assets, and application code.
- Production of English drafts and, when possible, a GitHub comparison link.
- Reporting of working-tree state without altering the publication-state file.
Safety and security assurances
| Assurance | Scope |
|---|---|
| Confirmation | The graphical flow maintains a separate human decision between previewing content and submitting it. |
| Effective permission | Availability of the posting form is checked for each destination; Admin status is not used as an authorization shortcut. |
| Password | The secret remains in memory during execution. DTLbb writes it neither to source, nor to files, nor to its log. |
| phpBB session | sid parameters are redacted in traces and removed from topic links intended to be retained. |
| Database | No direct MySQL connection is made; phpBB remains the sole transactional authority. |
| Git analysis | Analysis commands are read-only. Generation does not open the forum, publish anything, or update announcement state. |
| Logout | Session termination is attempted and checked after every web operation, including when an error occurs. |
Data and traces
| Element | Role and sensitivity |
|---|---|
| Credentials | Username and password required for the session. The password is not intended to be persisted by DTLbb. |
| Playwright profile | Local state of a persistent Chromium context. It may contain browsing data and must be protected like any browser profile. |
| Log | Technical chronology for diagnosis; URLs are redacted to remove phpBB session identifiers. |
| Markdown drafts | Proposed editorial texts based on committed changes and documentation. |
| JSON manifest | Generation metadata, Git references, destinations, statistics, paths, and warnings. |
| Announcement state | Optional source indicating the last published reference for each project. The current version reads it without changing it. |
Internal components
| Component | Responsibility |
|---|---|
| DTLbb.py | Application model, Git analysis, phpBB navigation, graphical interface, logging, and error handling. |
| dtlbb_i18n.py | Bilingual catalog and language selection for messages and labels. |
| Playwright | Persistent Chromium context and controlled interaction with web pages. |
| Git | Source of references, commits, differences, versions, and remote addresses used in drafts. |
| update-drafts | Collection of Markdown proposals and their generation manifest. |
| .dtl_version | Single official source for the version number. |
| version_info.txt | Derived copy for Windows deliverable metadata. |
| DTLbb.spec | PyInstaller configuration kept at the project root. |
| build.ps1 | Definition of the standalone Windows package and its assets. |
Invariants
- The account observed after login must match the requested account.
- A destination is declared postable only when the expected phpBB form elements are present without ambiguity.
- A non-empty title and body are required for every topic.
- A publication is considered confirmed only when phpBB leads to an identifiable topic.
- A Git draft is based on commits; working-tree changes are not incorporated.
- The preparation manifest retains the indicator that no publication was performed.
Known limitations
- DTLbb depends on the HTML structure and selectors of a compatible phpBB theme; substantial customization or a forum update may make some checks ineffective.
- Observing a posting form demonstrates practical permission at the time of the check, but does not replace full analysis of phpBB ACLs.
- The ACP check confirms visible access, but DTLbb does not inventory detailed administrative privileges.
- Logout is requested from phpBB, while the persistent Chromium profile may retain other browsing data.
- Git preparation knows a fixed list of NetDTL projects and produces English drafts only.
- README highlights are extracted heuristically and require editorial review.
- Preparation neither publishes drafts nor updates the last-announced reference.
- DTLbb cannot guarantee the availability of the network, forum, Chromium, or Git.
The version described is v1.0-20. The assurances in this manual correspond to observable behavior in this version and must be reassessed if phpBB structure, the draft model, or publishing rules change.
Glossary
| Term | Definition |
|---|---|
| ACP | The phpBB Administration Control Panel, used here only to observe the account’s administrative status. |
| Effective permission | The concrete ability to create a topic, observed in the relevant destination. |
| Playwright | The automation engine that controls Chromium and observes phpBB pages. |
| Persistent profile | A local directory retaining the technical state of a browser context between runs. |
| Update draft | A proposed message built from committed Git facts and intended for human review. |
| Git reference | A name or identifier designating a commit used as the start or end of a comparison. |
| SID | A session identifier that phpBB may place in a URL and that DTLbb redacts or removes from relevant traces. |