wizardloop / broadcastmanager
High-performance Telegram broadcast manager for MadelineProto
Fund package maintenance!
WizardLoop
wizardloop.t.me
Installs: 17
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/wizardloop/broadcastmanager
Requires
- php: ^8.2
- amphp/amp: ^3.0
- danog/madelineproto: ^8.4
README
High-Performance Telegram Broadcast Manager for MadelineProto. Manage broadcasts efficiently: send messages, media albums, pin/unpin messages, control broadcasts in real-time, and track live progress with advanced features.
๐ Features
-
๐ High-Performance Broadcasts Send messages concurrently to thousands of users, groups, or channels with configurable concurrency.
-
โธ Pause / Resume / Cancel Broadcasts Control ongoing broadcasts in real-time without restarting.
-
๐ Pin & Unpin Messages
- Pin the last broadcasted message automatically.
- Unpin all messages for all subscribers.
-
๐งน Delete Last Broadcast
- Remove previously sent messages from all users.
- Retries failed deletions and handles Telegram API limits automatically.
-
โป๏ธ Delete All Broadcasts
- Remove previously all sent messages from all users.
- Retries failed deletions and handles Telegram API limits automatically.
-
๐ Live Progress Tracking
- Visual progress bars
- Messages per second (TPS)
- Sent, failed, and pending counts
- Paused/cancelled indicators
-
๐ผ Media Albums Support
- Send multiple images/documents in a single broadcast using
sendMultiMedia. - Supports captions and message entities.
- Send multiple images/documents in a single broadcast using
-
๐พ Saving & Reusing Albums
Save albums to a JSON file for reuse in future broadcasts.
Use album-bot as an example to store album files locally. -
๐ก FLOOD_WAIT Handling & Retries Automatically respects Telegram rate limits and retries failed messages.
-
๐ Inline Buttons / Reply Markup
- Include interactive buttons for links, commands, or actions.
๐ Repository Structure
BroadcastManager/
โโโ src/
โ โโโ BroadcastManager.php
โโโ data/
โ โโโ .gitkeep
โโโ composer.json
โโโ README.md
โโโ LICENSE
โโโ CHANGELOG.md
๐ป Requirements
โก Installation
composer require wizardloop/broadcastmanager
Include autoload:
require 'vendor/autoload.php';
๐ Usage Example
use BroadcastTool\BroadcastManager; $manager = new BroadcastManager($api); $manager->broadcastWithProgress( allUsers: $users, messages: $messages, chatId: $adminChatId, filterType: 'users', pin: true, concurrency: 25 );
โธ Control Broadcasts
$manager->pause(); $manager->resume(); $manager->cancel();
Check state:
if ($manager->isPaused()) echo "Paused"; if ($manager->isCancelled()) echo "Cancelled"; print_r($manager->progress());
๐งน Delete Last Broadcast
$manager->deleteLastBroadcastForAll( allUsers: $users, chatId: $adminChatId, concurrency: 20 );
โป๏ธ Delete All Broadcast
$manager->deleteAllBroadcastsForAll( allUsers: $users, chatId: $adminChatId, concurrency: 20 );
๐ Get Last Broadcast Data
$manager->lastBroadcastData();
๐ Pin / Unpin Messages
Pin last broadcast automatically:
$manager->broadcastWithProgress(..., pin: true);
Unpin all messages:
$manager->unpinAllMessagesForAll(...);
๐ Inline Buttons & Reply Markup
$message = [ 'message' => "Click a button below:", 'buttons' => [ [['text' => "Visit Website", 'url' => "https://example.com"]], [['text' => "Start", 'callback_data' => "start_action"]] ] ];
โ๏ธ Advanced Options
- Concurrency โ Number of parallel workers.
- Filter Types โ 'users', 'groups', 'channels', 'all'
- Album Handling โ JSON-based albums with multiple media files.
- Retries & Delays โ Automatic retries with backoff.
- Progress Tracking โ Real-time broadcast stats with
progress().
๐ค Contributing
- Fork repo
- Create branch:
git checkout -b feature/my-feature - Commit changes:
git commit -m "Add feature" - Push branch:
git push origin feature/my-feature - Open Pull Request
๐ License
GNU AGPL-3.0 โ see LICENSE.
๐ Changelog
See [CHANGELOG.md] for updates.
โ Pro Tips
- Use
pin: trueto pin important broadcasts. - Include
buttonsfor interactive messages. - Adjust
concurrencyfor optimal performance. - Use
pause/resume/cancelfor safe broadcast control.