Package that wraps the python-telegram-bot library to make broadcasting easier.
Project description
Python Telegram Broadcast
This is a simple Python package that build on top of python-telegram-bot to make broadcasting easier.
Features
- Broadcast message to multiple users
- Support media type:
- Text
- Photo
- Document
- Video
- Support broadcast strategy:
- Asynchronous Sequentially
- Asynchronous Process Pool
- Asynchronous Multiprocessing Pool
Dependencies
- python-telegram-bot=21.1.1
- mypy
Installation
pip3 install python_telegram_broadcast
Example
Get File ID from Telegram
import asyncio
from python_telegram_broadcast import (
get_file_id, select_broadcast_method, BroadcastMethodType
)
def wrapper(token, method, target_id, payload):
caption = ""
seconds = 0.0 # 0.0 means no timeout
max_retry = 5 # Maximum retry
loop = asyncio.get_event_loop()
return loop.run_until_complete(
get_file_id(
token, method, target_id, payload, caption, seconds, max_retry
)
)
if __name__ == "__main__":
bot_token: str = "TELEGRAM_BOT_TOKEN" # << Change to your bot token
user_telegram_id: int = 123456789 # << Change to your telegram id
file_path: str = "" # << Change to your file path or the URL of your file
broadcast_method = select_broadcast_method(BroadcastMethodType.PHOTO)
# If file_path is a URL
file_id = wrapper(bot_token, broadcast_method, user_telegram_id, file_path)
print(file_id)
Broadcast Photo
from typing import Tuple
from python_telegram_broadcast import (
handle_broadcast,
select_broadcast_strategy, BroadcastStrategyType,
write_sent_result
)
def broadcast_wrapper(token, method, stg, slist, payload):
loop = asyncio.get_event_loop()
return loop.run_until_complete(
handle_broadcast(
slist, token, method, stg, payload, "...",
use_multiproc=False, use_nproc=1, seconds=0.0, max_retry=5
)
)
# Use bot_token, broadcast_method, file_path from the previous example!!!
export_path = "./asset"
broadcast_strategy = select_broadcast_strategy(BroadcastStrategyType.ASYNCIO_SEQUENTIAL)
# Read subscriber list from file, but you can also read from database of your choice
subscriber_list: list[Tuple[int, str]] = []
with open("./asset/subscriber.txt", "r") as file:
header = file.readline()
while True:
line = file.readline()
if not line:
break
telegram_id, username = line.strip().split(",")
subscriber_list.append((int(telegram_id), username))
s, f = broadcast_wrapper(
bot_token, broadcast_method, broadcast_strategy,
subscriber_list,
file_id
)
for S in s:
print(f"Success: {s}")
for F in f:
print(f"Failed: {f}")
if len(f) > 0:
write_sent_result(f"{export_path}/result_{file_path}.txt", f, file_path)
Tests
TODO
Source Code
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file python_telegram_broadcast-0.9.7.tar.gz.
File metadata
- Download URL: python_telegram_broadcast-0.9.7.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a2fffc3b0a7b88f3801ff1671107a8fba412db5125d30039876353b697a76c9
|
|
| MD5 |
ea46249d0366d44a7fc453b457dca2cc
|
|
| BLAKE2b-256 |
da52cc8c77102aee737a177ad4ebf739f5557841ed54fd492ccf0427ddfe4106
|
File details
Details for the file python_telegram_broadcast-0.9.7-py3-none-any.whl.
File metadata
- Download URL: python_telegram_broadcast-0.9.7-py3-none-any.whl
- Upload date:
- Size: 18.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18157c2b29e5c471ff5928cada50d53331d883d9bafecf661e58a7841e58a568
|
|
| MD5 |
0bc1b39f947f827bf7ffdc76fdab9c7d
|
|
| BLAKE2b-256 |
62cb6a979f7fd2ea21bc6fc7422e6856ab472cf2efd0103b9a334c3a3f3e5485
|