Releases: WizardLoop/BroadcastManager
Releases · WizardLoop/BroadcastManager
bump BroadcastManager to 3.2.2
[3.2.2] - 2026-06-15
Changed
- Reduced default broadcast concurrency from
20to10. - Reduced the maximum allowed concurrency limit from
50to30to reduce pressure on the MadelineProto event loop during large broadcasts. - Progress status messages are now edited every
5seconds instead of every second. - Progress status updates now also perform a final update when the operation reaches completion.
- Slowed down broadcast workers with a small delay between processed jobs.
- Added a delay after each media album chunk sent with
sendMultiMedia. - Added a delay between sequential messages sent to the same peer.
- Broadcast control buttons are now displayed in English:
PauseResumeCancel
Fixed
- Reduced the chance of
Timeout while waiting for updates.getChannelDifferenceafter heavy broadcasts. - Reduced unnecessary progress-message edit calls during active broadcasts.
- Prevented noisy logs for harmless
MESSAGE_NOT_MODIFIEDerrors during progress updates. - Improved progress update stability by ignoring unchanged status edits instead of logging them as failures.
Notes
- This release keeps the custom BroadcastManager flow, including saved message IDs, edit-last-broadcast, delete-last-broadcast, scheduled broadcasts, and self-destruct broadcasts.
- This is a stability and load-reduction update; it does not migrate to MadelineProto's official Broadcast API.
v3.2.1 - Saved Media Support for Edit Last Broadcast
[3.2.1] - 2026-06-13
Added
- Added support for editing last broadcast messages with media loaded from
data/{adminId}/media.txt. - Added compatibility for passing saved media values /
botApiFileIdintoeditLastBroadcastForAll().
Changed
- Relaxed the
$mediaparameter inBroadcastManager::editLastBroadcastForAll()so it is no longer limited to?array. - Edit-last-broadcast flow can now reuse the same saved media format used by regular broadcast sending.
Notes
- Passing
nullas media keeps the existing media unchanged. - Passing a saved media value attempts to update the edited message media/caption.
v3.2.0 - Added new features for editing and managing broadcasts, improved state handling, and fixed various issues.
[3.2.0] - 2026-06-13
Added
- Edit last broadcast message with
editLastBroadcastForAll(). - Optional
broadcastIdtargeting for editing or deleting the last message of a specific broadcast. - Metadata peer loading for targeted edit/delete calls when
allUsersis empty andbroadcastIdis provided. - Pause/resume/cancel inline controls on live broadcast status messages.
- Scheduled broadcasts with durable jobs and runner methods.
- Self-destruct broadcasts with a
0to48hour delay. - Persisted per-broadcast metadata in
data/broadcasts/{broadcastId}.json. - Scheduled and self-destruct job runners.
- Internal error logging to
data/broadcast-errors.log.
Changed
- Safer state handling using shared state references by broadcast id.
- Safer cancel behavior:
cancel()now marks cancellation without clearing in-flight requests. progress()now includes edit, scheduled, self-destruct, total, elapsed, and TPS fields.- Message IDs are saved during broadcast after each successful peer instead of only at the end.
editLastBroadcastForAll()anddeleteLastBroadcastForAll()can use persisted broadcast metadata instead of only legacylastBroadcast.txt.deleteAllBroadcastsForAll()now uses one progress loop instead of concurrent progress edits from workers.
Fixed
- Pause/resume/cancel state reference issue.
- Workers not stopping after
done. - Unsafe watchdog behavior that could duplicate sends.
- Concurrent progress edits in
deleteAllBroadcastsForAll().
v3.1.0
[3.1.0] - 2026-04-13
Refactor BroadcastManager for improved functionality
- Updated BroadcastManager class to improve functionality and code structure.
- Added support for handling broadcast IDs, enhanced error handling, and refactored methods to accept optional chat IDs.
Added:
- added
isActive()to check active - added option to set chatId as null
Fixed:
- fixed
progress()to update progress state from all methods
v3.0.5 - Handle additional RPCErrorException cases
[3.0.5] - 2026-01-18
Added & Fixed:
- Handle additional RPCErrorException cases
v3.0.4 - Peer filtering is now handled outside of broadcast execution
[3.0.4] - 2026-01-13
Added & Fixed:
- Extracted peer filtering from broadcast execution
- Reduced unnecessary processing during broadcasts
v3.0.3 - Fix getDataDir() to handle uninitialized $dataDir
[3.0.3] - 2026-01-11
Fixed:
- Fix getDataDir() to handle uninitialized $dataDir
v3.0.2
[3.0.2] - 2026-01-11
Added:
- setDataDir & getDataDir
v3.0.1
[3.0.1] - 2026-01-11
Fixed:
- lastBroadcastData
v3.0.0
[3.0.0] - 2026-01-11
Version 3.0.0
Added:
- Added
hasAllBroadcast().
Improvements:
- Watchdog monitors stuck jobs and re-enqueues them.
- Improved file handling for
lastBroadcast.txtandmessages.txt. - Modularized code structure for readability and maintainability.
Fixed:
- Better error handling for missing files or blocked users.
- Proper cleanup of message files after deletion.