Telegram Stars¶
Telegram Stars is a virtual currency system for paid content and monetization.
Checking Stars Balance¶
Get your current Stars balance:
from pyrogram import Client
app = Client("my_account")
async def main():
status = await app.get_stars_status()
print(f"Balance: {status.balance.amount} stars")
with app:
app.loop.run_until_complete(main())
Getting Transactions¶
View Stars transaction history:
from pyrogram import Client
app = Client("my_account")
async def main():
transactions = await app.get_stars_transactions()
for transaction in transactions:
print(f"Amount: {transaction.stars.amount}")
print(f"Date: {transaction.date}")
with app:
app.loop.run_until_complete(main())
Handling Paid Media¶
Messages with paid media can be accessed through the paid_media attribute:
from pyrogram import Client
app = Client("my_account")
@app.on_message()
async def handle_paid_media(client, message):
if message.paid_media:
print(f"Paid media costs {message.paid_media.stars_amount} stars")
for media in message.paid_media.extended_media:
if isinstance(media, dict) and media.get("type") == "preview":
print("Preview only - purchase to see full media")
else:
print(f"Media: {media}")
app.run()
Star Gifts¶
Handle star gift messages:
from pyrogram import Client, enums
app = Client("my_account")
@app.on_message()
async def handle_star_gift(client, message):
if message.service == enums.MessageServiceType.STAR_GIFT:
print(f"Received a star gift in chat {message.chat.id}")
app.run()