diff --git a/docs/source/telegram.at-tree.rst b/docs/source/telegram.at-tree.rst index 077b124aba4..2d2cfbfa69b 100644 --- a/docs/source/telegram.at-tree.rst +++ b/docs/source/telegram.at-tree.rst @@ -140,6 +140,7 @@ Available Types telegram.transactionpartner telegram.transactionpartnerfragment telegram.transactionpartnerother + telegram.transactionpartnertelegramads telegram.transactionpartneruser telegram.update telegram.user diff --git a/docs/source/telegram.transactionpartnertelegramads.rst b/docs/source/telegram.transactionpartnertelegramads.rst new file mode 100644 index 00000000000..926b25bdcd4 --- /dev/null +++ b/docs/source/telegram.transactionpartnertelegramads.rst @@ -0,0 +1,7 @@ +TransactionPartnerTelegramAds +============================= + +.. autoclass:: telegram.TransactionPartnerTelegramAds + :members: + :show-inheritance: + :inherited-members: TelegramObject diff --git a/telegram/__init__.py b/telegram/__init__.py index 48ad57298c6..e3b2df8382f 100644 --- a/telegram/__init__.py +++ b/telegram/__init__.py @@ -223,6 +223,7 @@ "TransactionPartner", "TransactionPartnerFragment", "TransactionPartnerOther", + "TransactionPartnerTelegramAds", "TransactionPartnerUser", "Update", "User", @@ -455,6 +456,7 @@ TransactionPartner, TransactionPartnerFragment, TransactionPartnerOther, + TransactionPartnerTelegramAds, TransactionPartnerUser, ) from ._story import Story diff --git a/telegram/_stars.py b/telegram/_stars.py index 8cb6ac1311f..74bf5c78344 100644 --- a/telegram/_stars.py +++ b/telegram/_stars.py @@ -183,8 +183,9 @@ class TransactionPartner(TelegramObject): """This object describes the source of a transaction, or its recipient for outgoing transactions. Currently, it can be one of: - * :class:`TransactionPartnerFragment` * :class:`TransactionPartnerUser` + * :class:`TransactionPartnerFragment` + * :class:`TransactionPartnerTelegramAds` * :class:`TransactionPartnerOther` Objects of this class are comparable in terms of equality. Two objects of this class are @@ -207,6 +208,8 @@ class TransactionPartner(TelegramObject): """:const:`telegram.constants.TransactionPartnerType.USER`""" OTHER: Final[str] = constants.TransactionPartnerType.OTHER """:const:`telegram.constants.TransactionPartnerType.OTHER`""" + TELEGRAM_ADS: Final[str] = constants.TransactionPartnerType.TELEGRAM_ADS + """:const:`telegram.constants.TransactionPartnerType.TELEGRAM_ADS`""" def __init__(self, type: str, *, api_kwargs: Optional[JSONDict] = None) -> None: super().__init__(api_kwargs=api_kwargs) @@ -242,6 +245,7 @@ def de_json( cls.FRAGMENT: TransactionPartnerFragment, cls.USER: TransactionPartnerUser, cls.OTHER: TransactionPartnerOther, + cls.TELEGRAM_ADS: TransactionPartnerTelegramAds, } if cls is TransactionPartner and data.get("type") in _class_mapping: @@ -355,6 +359,23 @@ def __init__(self, *, api_kwargs: Optional[JSONDict] = None) -> None: self._freeze() +class TransactionPartnerTelegramAds(TransactionPartner): + """Describes a withdrawal transaction to the Telegram Ads platform. + + .. versionadded:: NEXT.VERSION + + Attributes: + type (:obj:`str`): The type of the transaction partner, + always :tg-const:`telegram.TransactionPartner.TELEGRAM_ADS`. + """ + + __slots__ = () + + def __init__(self, *, api_kwargs: Optional[JSONDict] = None) -> None: + super().__init__(type=TransactionPartner.TELEGRAM_ADS, api_kwargs=api_kwargs) + self._freeze() + + class StarTransaction(TelegramObject): """Describes a Telegram Star transaction. diff --git a/telegram/constants.py b/telegram/constants.py index db600bf394c..235709e63d2 100644 --- a/telegram/constants.py +++ b/telegram/constants.py @@ -2490,6 +2490,8 @@ class TransactionPartnerType(StringEnum): """:obj:`str`: Transaction with a user.""" OTHER = "other" """:obj:`str`: Transaction with unknown source or recipient.""" + TELEGRAM_ADS = "telegram_ads" + """:obj:`str`: Transaction with Telegram Ads.""" class ParseMode(StringEnum): diff --git a/tests/test_stars.py b/tests/test_stars.py index 74f367cb0d2..ef5aabe2cd7 100644 --- a/tests/test_stars.py +++ b/tests/test_stars.py @@ -33,6 +33,7 @@ TransactionPartner, TransactionPartnerFragment, TransactionPartnerOther, + TransactionPartnerTelegramAds, TransactionPartnerUser, User, ) @@ -101,6 +102,7 @@ def star_transactions(): TransactionPartner.FRAGMENT, TransactionPartner.OTHER, TransactionPartner.USER, + TransactionPartner.TELEGRAM_ADS, ], ) def tp_scope_type(request): @@ -113,11 +115,13 @@ def tp_scope_type(request): TransactionPartnerFragment, TransactionPartnerOther, TransactionPartnerUser, + TransactionPartnerTelegramAds, ], ids=[ TransactionPartner.FRAGMENT, TransactionPartner.OTHER, TransactionPartner.USER, + TransactionPartner.TELEGRAM_ADS, ], ) def tp_scope_class(request): @@ -130,11 +134,13 @@ def tp_scope_class(request): (TransactionPartnerFragment, TransactionPartner.FRAGMENT), (TransactionPartnerOther, TransactionPartner.OTHER), (TransactionPartnerUser, TransactionPartner.USER), + (TransactionPartnerTelegramAds, TransactionPartner.TELEGRAM_ADS), ], ids=[ TransactionPartner.FRAGMENT, TransactionPartner.OTHER, TransactionPartner.USER, + TransactionPartner.TELEGRAM_ADS, ], ) def tp_scope_class_and_type(request):