DTLbb — User Guide

Cautious phpBB login, confirmed publication, and Git-based announcement preparation.

versionv1.0-20dateJuly 30, 2026audienceadministrators and authorslanguageFrançais

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.

Remember. “Admin” is informational. Only the posting column indicates whether phpBB actually presents the form needed to publish in a particular destination.

Start DTLbb

From the Windows executable

Open DTLbb.exe. The graphical assistant appears directly; no console is required.

.\dist\DTLbb.exe

From source

The computer must have Python 3.12 or a compatible version, Playwright, and Chromium. From the project directory:

py -3.12 -m venv .venv .\.venv\Scripts\Activate.ps1 python -m pip install --upgrade pip python -m pip install -r requirements.txt python -m playwright install chromium python DTLbb.py

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

  1. Check the forum address. A complete URL beginning with http:// or https:// is required.
  2. Enter your phpBB username.
  3. Enter your password in the masked field.
  4. Use the English / Français button to change languages; existing values are preserved.
  5. 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.

  1. Select a forum in the tree or the Target subforum list.
  2. Confirm that its state is Yes or allowed. A denied destination cannot be published.
  3. Enter the Topic title.
  4. Enter the Message text. The field accepts text intended for phpBB, including its BBCode markup.
  5. 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.

Immediate effect. A positive answer allows DTLbb to reconnect and submit the actual phpBB form. There is no additional step before submission.

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.

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.

$env:PHPBB_USERNAME = 'my_account' $env:PHPBB_PASSWORD = 'my_password'

Account diagnosis

diagnose logs in, confirms identity and ACP access, then logs out without changing the forum.

python DTLbb.py diagnose

Visible inventory

list-forums prints visible categories, forums, and subforums without publishing.

python DTLbb.py --headless list-forums
Global optionRole
--headlessHides the Chromium window.
--profile-dirSelects the persistent Playwright profile.
--log-fileSelects the detailed log.
--timeoutSets the Playwright timeout in milliseconds.
--verboseDisplays diagnostic messages in the console.
--versionDisplays 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.

python DTLbb.py prepare-updates ` --forum-url https://netdtl.com/forum/index.php ` --repos-root "D:\Documents\Mes sites Web\Secours catholique\outils"

The standalone executable accepts the same command:

.\dist\DTLbb.exe prepare-updates ` --repos-root "D:\Documents\Mes sites Web\Secours catholique\outils"

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.

OptionRole
--forum-urlAddress recorded in the manifest; no connection is made.
--repos-rootParent directory containing the NetDTL tool repositories.
--state-fileOptional JSON file identifying the last references already announced.
--output-dirDestination directory for drafts and the manifest.
--max-filesMaximum 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:

{ "DTLarchive": { "last_published_ref": "v2.2-5" }, "GitHubMenu": { "last_published_ref": "v1.0.8" } }

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

Troubleshooting

SymptomSuggested check
Invalid addressUse a complete URL with protocol and host name. DTLbb reduces a phpBB page to its base directory.
Login refusedCheck credentials, HTTPS availability, any phpBB timing restriction, and the log.
Unexpected accountRemove or isolate the persistent profile if another account’s session cannot be closed.
Admin: NOThis does not necessarily prevent posting; inspect permissions for each destination.
Posting: NoThe new-topic form is unavailable to this account in that destination.
Publication unconfirmedReview the phpBB message and logs\dtlbb.log, then inspect the forum before retrying.
Playwright missingInstall the Python requirements and Playwright’s Chromium browser.
Repository skippedCheck 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.py

Interface, 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.json

Generated drafts and manifest; optional reference state read without modification.