Files
FragmentAPI/CHANGELOG.md
T
bohd4nx 902b692dcb Refactor methods for Telegram Premium and Stars giveaways
- Added new methods for handling giveaways: `giveaway_premium` and `giveaway_stars`.
- Refactored existing purchase methods into separate files: `purchase_premium.py` and `purchase_stars.py`.
- Removed old premium and stars methods from the codebase.
- Updated `__init__.py` to include new giveaway methods in the public API.
- Introduced new result types for giveaways: `PremiumGiveawayResult` and `StarsGiveawayResult`.
- Updated constants for new giveaway pages.
- Enhanced error handling for configuration and user validation in giveaway methods.
- Updated tests to cover new functionality and refactored existing tests to match new method locations.
2026-03-21 16:05:38 +02:00

2.8 KiB
Raw Blame History

Changelog

All notable changes to pyfragment are documented in this file.

The format is based on Keep a Changelog, and this project uses Calendar Versioning (YYYY.MINOR.MICRO).


[Unreleased]

Added

  • giveaway_stars(channel, winners, amount) — run a Telegram Stars giveaway for a channel (15 winners, 5001 000 000 stars each)
  • giveaway_premium(channel, winners, months) — run a Telegram Premium giveaway for a channel (124 000 winners, 3/6/12 months each)
  • StarsGiveawayResult and PremiumGiveawayResult result types
  • STARS_GIVEAWAY_PAGE and PREMIUM_GIVEAWAY_PAGE URL constants

Changed

  • All result types (PremiumResult, StarsResult, StarsGiveawayResult, PremiumGiveawayResult) now use a single unified amount field instead of months, stars — consistent API across every method
  • __repr__ on result types now includes the unit (3 months, 500 stars) for clarity
  • Method module files renamed to match their function: premium.pypurchase_premium.py, stars.pypurchase_stars.py, ton.pytopup_ton.py
  • timestamp field removed from all result dataclasses

2026.0.2 — 2026-03-20

Added

  • timeout parameter on FragmentClient (default 30.0 s) — passed through to every HTTP request

Changed

  • Cookie validation: narrowed type internally so no # type: ignore is needed in FragmentClient.__init__
  • WALLET_CLASSES typed as dict[str, Any] so mypy resolves from_mnemonic correctly
  • All four examples/ files updated to async with FragmentClient, f-strings, and aligned error messages
  • README usage section rewritten with a single comprehensive async with example

Fixed

  • mypy: missing return path in process_transaction after retry loop
  • mypy: cookies union-attr error in FragmentClient.__init__

2026.0.1 — 2026-03-16

Added

  • Initial stable release of pyfragment
  • FragmentClient — async client for the Fragment.com API with context manager support (async with)
  • purchase_premium(username, months) — purchase Telegram Premium for any user (3, 6, or 12 months)
  • purchase_stars(username, amount) — send Telegram Stars to any user (501,000,000)
  • topup_ton(username, amount) — top up TON Ads balance (11,000,000,000 TON)
  • get_wallet() — fetch wallet address and balance
  • Support for TON wallet versions V4R2 and V5R1
  • Structured exception hierarchy (FragmentError, ConfigurationError, CookieError, etc.)
  • py.typed marker — full PEP 561 typing support for type-checkers
  • __repr__ on all result types for readable debug output