DTLbb — User Guide
Cautious phpBB login, confirmed publication, and Git-based announcement preparation.
Purpose and audience
This guide explains how to use DTLbb to check a phpBB account, choose an authorized destination, write a topic, and publish it after confirmation. It also covers technical diagnostics and the preparation of announcement drafts from NetDTL Git repositories.
For a description of product architecture, responsibilities, and limitations, see the Reference Manual.
Reminder: what is DTLbb?
DTLbb is a bilingual desktop application that controls a phpBB forum’s web interface through Playwright. It was created to make administrative publishing safer: verify the identity actually connected, avoid confusing Admin status with posting rights, show authorized destinations, require a preview, and retain human confirmation immediately before submission.
DTLbb uses the NetDTL forum by default, but its address can be changed. It never connects directly to MySQL. Its Git preparation feature is independent: it creates English drafts without opening the forum or publishing anything.
Start DTLbb
From the Windows executable
Open DTLbb.exe. The graphical assistant appears directly; no console is required.
From source
The computer must have Python 3.12 or a compatible version, Playwright, and Chromium. From the project directory:
French is the initial language. Set DTL_LANGUAGE=en to open the interface in English. The optional PHPBB_URL variable provides another initial address.
Log in and check rights
- Check the forum address. A complete URL beginning with
http://orhttps://is required. - Enter your phpBB username.
- Enter your password in the masked field.
- Use the English / Français button to change languages; existing values are preserved.
- Click Validate and wait for inventory to finish.
DTLbb confirms the account identity, inspects ACP access without changing it, extracts visible categories and forums, and separately tests the posting form of each destination. Chromium navigation remains in the background.
If the persistent profile contains a session belonging to another account, DTLbb first attempts to close it. When checking is complete, it logs out of phpBB before displaying the composition screen.
Choose and compose
The screen shows the category and forum hierarchy on the left and the composition area on the right.
- Select a forum in the tree or the Target subforum list.
- Confirm that its state is Yes or allowed. A denied destination cannot be published.
- Enter the Topic title.
- Enter the Message text. The field accepts text intended for phpBB, including its BBCode markup.
- Click Publish topic to open the confirmation preview.
Both title and message are required. Selecting a category alone does not designate a publishable destination.
Check the preview
The confirmation window repeats the subforum identifier and name, the title, and the beginning of the message. Pay particular attention to destination and title.
- Answer No to return to composition without sending anything.
- Answer Yes only when content and destination are correct.
Read the result
After submission, DTLbb waits for phpBB to confirm a topic, reloads the destination list, and selects the topic bearing the submitted title. The screen displays the message, the cleaned topic address, and recent topics.
- Click the topic address to open it in the default browser.
- Double-click a listed topic to open it.
- Click New message to return to subforum selection.
- Click Q — Quit to close the application.
Do not close the window while an operation is reported as running. DTLbb clears the password held in memory when it exits normally.
Technical commands
Command-line operations use PHPBB_USERNAME and PHPBB_PASSWORD. In the current version, diagnostic commands target the default NetDTL forum; PHPBB_URL changes only the graphical interface’s initial address.
Account diagnosis
diagnose logs in, confirms identity and ACP access, then logs out without changing the forum.
Visible inventory
list-forums prints visible categories, forums, and subforums without publishing.
| Global option | Role |
|---|---|
| --headless | Hides the Chromium window. |
| --profile-dir | Selects the persistent Playwright profile. |
| --log-file | Selects the detailed log. |
| --timeout | Sets the Playwright timeout in milliseconds. |
| --verbose | Displays diagnostic messages in the console. |
| --version | Displays the DTLbb version. |
Prepare Git drafts
The prepare-updates command analyzes the 19 repositories associated with NetDTL subforums 2 through 20. It does not launch Chromium or contact phpBB.
The standalone executable accepts the same command:
The update-drafts\ directory receives one English Markdown file for each project with changes and a manifest.json file. Review and edit every draft before copying it into DTLbb for publication.
| Option | Role |
|---|---|
| --forum-url | Address recorded in the manifest; no connection is made. |
| --repos-root | Parent directory containing the NetDTL tool repositories. |
| --state-file | Optional JSON file identifying the last references already announced. |
| --output-dir | Destination directory for drafts and the manifest. |
| --max-files | Maximum files detailed in each draft; the value must be positive. |
The baseline is selected in this order: last_published_ref, the latest suitable Git tag before HEAD, then the previous commit. Uncommitted changes are never incorporated.
Optional state file
The state file can identify, for each project, the reference corresponding to the last announcement actually published:
DTLbb reads this file but neither creates nor changes it. An unknown reference produces a warning for that project. The manifest’s publishing_performed field remains false.
Security good practices
- Use an HTTPS address and check the domain before entering a password.
- Never put the password in a script, draft, or command argument.
- Protect
.dtlbb-profile\like a browser profile, even though DTLbb attempts to log out after every operation. - Review the log before sharing it, despite automatic redaction of
sidparameters. - Read every Git draft in full: README summaries are extracted automatically and may lack context.
- Always verify the destination in the final confirmation window.
Troubleshooting
| Symptom | Suggested check |
|---|---|
| Invalid address | Use a complete URL with protocol and host name. DTLbb reduces a phpBB page to its base directory. |
| Login refused | Check credentials, HTTPS availability, any phpBB timing restriction, and the log. |
| Unexpected account | Remove or isolate the persistent profile if another account’s session cannot be closed. |
| Admin: NO | This does not necessarily prevent posting; inspect permissions for each destination. |
| Posting: No | The new-topic form is unavailable to this account in that destination. |
| Publication unconfirmed | Review the phpBB message and logs\dtlbb.log, then inspect the forum before retrying. |
| Playwright missing | Install the Python requirements and Playwright’s Chromium browser. |
| Repository skipped | Check the parent path, .git, repository history, and the configured state reference. |
Exit codes: 0 success, 1 unexpected error, 2 configuration, 3 authentication, 4 ACP denied, 5 logout failed, and 6 posting denied.
File quick reference
Application
DTLbb.pydtlbb_i18n.pyInterface, phpBB automation, Git analysis, and bilingual messages.
Local data
logs\dtlbb.log.dtlbb-profile\Detailed log and persistent Chromium profile.
Announcement preparation
update-drafts\updates_state.jsonGenerated drafts and manifest; optional reference state read without modification.