Skip to content

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
Contributor

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.

3 participants