Skip to content

Api 9.0 premium #4781

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
May 12, 2025
Merged

Api 9.0 premium #4781

merged 9 commits into from
May 12, 2025

Conversation

aelkheir
Copy link
Member

@aelkheir aelkheir commented May 4, 2025

Check-list for PRs

  • Added .. versionadded:: NEXT.VERSION, .. versionchanged:: NEXT.VERSION, .. deprecated:: NEXT.VERSION or .. versionremoved:: NEXT.VERSION to the docstrings for user facing changes (for methods/class descriptions, arguments and attributes)
  • Created new or adapted existing unit tests
  • Documented code changes according to the CSI standard <https://standards.mousepawmedia.com/en/stable/csi.html>__
  • Added new classes & modules to the docs and all suitable __all__ s
  • Checked the Stability Policy <https://docs.python-telegram-bot.org/stability_policy.html>_ in case of deprecations or changes to documented behavior

If the PR contains API changes (otherwise, you can ignore this passage)

  • Checked the Bot API specific sections of the Stability Policy <https://docs.python-telegram-bot.org/stability_policy.html>_

  • Created a PR to remove functionality deprecated in the previous Bot API release (see here <https://docs.python-telegram-bot.org/en/stable/stability_policy.html#case-2>_)

  • New classes:

    • Added self._id_attrs and corresponding documentation
  • Added new shortcuts:

    • In :class:~telegram.Chat & :class:~telegram.User for all methods that accept chat/user_id
    • In :class:~telegram.Message for all methods that accept chat_id and message_id
    • For new :class:~telegram.Message shortcuts: Added quote argument if methods accepts reply_to_message_id
    • In :class:~telegram.CallbackQuery for all methods that accept either chat_id and message_id or inline_message_id
  • If relevant:

    • Added new constants at :mod:telegram.constants and shortcuts to them as class variables
    • Link new and existing constants in docstrings instead of hard-coded numbers and strings
    • Added or updated documentation for the changed class(es) and/or method(s)
    • Added the new method(s) to _extbot.py
    • Added or updated bot_methods.rst

Telegram Premium

  • Added the method giftPremiumSubscription, allowing bots to gift a user a Telegram Premium subscription paid in Telegram Stars.
  • Added the field premium_subscription_duration to the class TransactionPartnerUser for transactions involving a Telegram Premium subscription purchased by the bot.
  • Added the field transaction_type to the class TransactionPartnerUser, simplifying the differentiation and processing of all transaction types.

aelkheir added 4 commits May 4, 2025 15:39
Telegram Premium
- Added the method giftPremiumSubscription, allowing bots to gift a user
  a Telegram Premium subscription paid in Telegram Stars.
Telegram Premium
- Added the field premium_subscription_duration to the class
  TransactionPartnerUser for transactions involving a Telegram Premium
  subscription purchased by the bot.
- Added the field transaction_type to the class TransactionPartnerUser,
  simplifying the differentiation and processing of all transaction types.
@aelkheir aelkheir mentioned this pull request May 4, 2025
35 tasks
@Bibo-Joshi Bibo-Joshi requested a review from Copilot May 4, 2025 19:19
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces Telegram Premium subscription gifting functionality and related API changes. Key updates include adding the new method gift_premium_subscription in both the extbot and bot modules, updating the TransactionPartnerUser class to require a new transaction_type (and premium_subscription_duration), and adding the PremiumSubscription enum with associated constants.

Reviewed Changes

Copilot reviewed 9 out of 10 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/test_official/exceptions.py Extended the ignored parameters mapping to include TransactionPartnerUser.transaction_type.
tests/test_bot.py Added tests for gift_premium_subscription with validations for proper parameter mapping.
tests/_payment/stars/test_transactionpartner.py Updated tests and fixtures for TransactionPartnerUser to incorporate transaction_type and premium_subscription_duration.
tests/_payment/stars/test_startransactions.py Adjusted TransactionPartnerUser instantiations; one instance uses a nonstandard transaction_type.
telegram/ext/_extbot.py Added gift_premium_subscription method and its alias giftPremiumSubscription.
telegram/constants.py Introduced the PremiumSubscription enum and updated the constants list.
telegram/_payment/stars/transactionpartner.py Updated TransactionPartnerUser to enforce and include transaction_type and premium_subscription_duration in equality comparisons.
telegram/_bot.py Added gift_premium_subscription with thorough docstrings and created camelCase aliases.
changes/unreleased/4756.JT5nmUmGRG6qDEh5ScMn5f.toml Updated changelog to reference a new pull request closing threads.
Files not reviewed (1)
  • docs/source/inclusions/bot_methods.rst: Language not supported

Copy link
Member

@Bibo-Joshi Bibo-Joshi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, thanks for another api 9.0 PR :D You didn't request a review yet, I hope it's okay that I went ahead already anways. I saw only a few minor things in the code. What I did notice is that a shortcut User.gift_premium_subscription would make sense :)

aelkheir added 2 commits May 5, 2025 12:29
- Add shortcut User.gift_premium_subscription
- Add a missing ".. versionadded"
- Update "deprecations" change note to recommend using keyword
  arguments for added required fields to existing classes.
@aelkheir
Copy link
Member Author

aelkheir commented May 5, 2025

Perfectly fine, I just forgot to request the review :D
Replied back with a few comments.

# Conflicts:
#	changes/unreleased/4756.JT5nmUmGRG6qDEh5ScMn5f.toml
@Bibo-Joshi Bibo-Joshi merged commit c1e6b5b into api_9.0 May 12, 2025
24 of 25 checks passed
@Bibo-Joshi Bibo-Joshi deleted the api_9.0-premium branch May 12, 2025 19:06
@github-actions github-actions bot locked and limited conversation to collaborators May 20, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants