mirror of
https://github.com/vibe-existing/pyfragment.git
synced 2026-07-25 06:54:31 +00:00
3156160778
- Removed outdated example scripts for managing anonymous numbers, making raw API calls, fetching wallet info, and various giveaways. - Introduced new scripts for searching gifts, numbers, and usernames in the Fragment marketplace. - Added examples for recharging Telegram Ads accounts and managing user balances with TON. - Updated example scripts to improve clarity and maintainability, ensuring they align with the latest API changes.
4.3 KiB
4.3 KiB
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
Giveaways
giveaway_stars(channel, winners, amount)— Stars giveaway; 1–5 winners, 500–1 000 000 stars eachgiveaway_premium(channel, winners, months)— Premium giveaway; 1–24 000 winners, 3/6/12 months eachStarsGiveawayResult,PremiumGiveawayResultresult types
Telegram Ads
recharge_ads(account, amount)— top up a Telegram Ads account; 1–1 000 000 000 TONAdsRechargeResultresult type
Marketplace
search_usernames(query?, sort?, filter?, offset_id?)— search Fragment usernames;sort:price_desc / price_asc / listed / ending,filter:auction / sale / soldsearch_numbers(query?, sort?, filter?, offset_id?)— search Fragment anonymous numbers; samesort/filter/ pagination semanticssearch_gifts(query?, collection?, sort?, filter?, view?, attr?, offset?)— search Fragment gifts;attraccepts{"Model": ["Foosball"], "Backdrop": ["Celtic Blue"]}UsernamesResult,NumbersResult,GiftsResultresult types
Anonymous numbers
get_login_code(number)— fetch the current pending login codetoggle_login_codes(number, can_receive)— enable or disable login code deliveryterminate_sessions(number)— terminate all active Telegram sessions (two-step flow handled internally)LoginCodeResult,TerminateSessionsResultresult types;AnonymousNumberErrorexception
Raw API
FragmentClient.call(method, data, *, page_url)— raw request to any Fragment API methodFRAGMENT_BASE_URLconstant — base URL shared across all page constants and headers
Examples
examples/client/—wallet_info.py(wallet info),raw_api_call.py(raw API call)examples/numbers/—manage_number.py(login code fetch, session termination)examples/auctions/—search_usernames.py,search_numbers.py,search_gifts.py(marketplace search with pagination)examples/purchase/—send_stars.py,send_premium.py,topup_ton_balance.py,run_stars_giveaway.py,run_premium_giveaway.py,recharge_ads_balance.py
Changed
- All result types now expose a unified
amountfield (monthsandstarsremoved) __repr__includes the unit —3 months,500 stars, etc.timestampremoved from all result dataclasses- All page URL constants built from
FRAGMENT_BASE_URL; TransactionErrorincludes an SSL hint;DUPLICATE_SEQNOvariant auto-retried up to 2 times (2 s apart)- Error messages rewritten: "what happened → why → what to do"
2026.0.2 — 2026-03-20
Added
timeoutparameter onFragmentClient(default30.0s) — passed through to every HTTP request
Changed
- Cookie validation: narrowed type internally so no
# type: ignoreis needed inFragmentClient.__init__ WALLET_CLASSEStyped asdict[str, Any]so mypy resolvesfrom_mnemoniccorrectly- All four
examples/files updated toasync with FragmentClient, f-strings, and aligned error messages - README usage section rewritten with a single comprehensive
async withexample
Fixed
- mypy: missing return path in
process_transactionafter retry loop - mypy:
cookiesunion-attr error inFragmentClient.__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 (50–1,000,000)topup_ton(username, amount)— top up TON Ads balance (1–1,000,000,000 TON)get_wallet()— fetch wallet address and balance- Support for TON wallet versions
V4R2andV5R1 - Structured exception hierarchy (
FragmentError,ConfigurationError,CookieError, etc.) py.typedmarker — full PEP 561 typing support for type-checkers__repr__on all result types for readable debug output