Skip to content

Commit bca4382

Browse files
Address changes
1 parent 50b6c32 commit bca4382

File tree

6 files changed

+119
-96
lines changed

6 files changed

+119
-96
lines changed

telebot/__init__.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6977,7 +6977,7 @@ def get_business_account_gifts(
69776977
:param exclude_unlimited: Pass True to exclude gifts that can be purchased an unlimited number of times
69786978
:type exclude_unlimited: :obj:`bool`
69796979
6980-
:param exclude_limited: Pass True to exclude gifts that can be purchased a limited number of times
6980+
:param exclude_limited: Deprecated, use exclude_limited_upgradable and exclude_limited_non_upgradable instead.
69816981
:type exclude_limited: :obj:`bool`
69826982
69836983
:param exclude_unique: Pass True to exclude unique gifts
@@ -7004,10 +7004,16 @@ def get_business_account_gifts(
70047004
:return: On success, a OwnedGifts object is returned.
70057005
:rtype: :class:`telebot.types.OwnedGifts`
70067006
"""
7007-
if exclude_limited is not None and exclude_limited_upgradable is None and exclude_limited_non_upgradable is None:
7008-
exclude_limited_upgradable = exclude_limited
7009-
exclude_limited_non_upgradable = exclude_limited
70107007

7008+
if exclude_limited is not None:
7009+
logger.warning("Deprecation warning. 'exclude_limited' parameter is deprecated in get_business_account_gifts. Use 'exclude_limited_upgradable' and 'exclude_limited_non_upgradable' instead.")
7010+
7011+
if exclude_limited_upgradable is not None or exclude_limited_non_upgradable is not None:
7012+
logger.warning("Both 'exclude_limited' and 'exclude_limited_upgradable'/'exclude_limited_non_upgradable' parameters are set: conflicting, using 'exclude_limited_upgradable' and 'exclude_limited_non_upgradable' values.")
7013+
7014+
else:
7015+
exclude_limited_upgradable = exclude_limited
7016+
exclude_limited_non_upgradable = exclude_limited
70117017

70127018
return types.OwnedGifts.de_json(
70137019
apihelper.get_business_account_gifts(

telebot/apihelper.py

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2242,7 +2242,9 @@ def get_user_gifts(token, user_id, exclude_unlimited=None, exclude_limited_upgra
22422242
payload['exclude_unique'] = exclude_unique
22432243
if sort_by_price is not None:
22442244
payload['sort_by_price'] = sort_by_price
2245-
if offset is not None:
2245+
if offset is None:
2246+
payload['offset'] = ""
2247+
else:
22462248
payload['offset'] = offset
22472249
if limit is not None:
22482250
payload['limit'] = limit
@@ -2252,29 +2254,31 @@ def get_chat_gifts(token, chat_id, exclude_unsaved=None, exclude_saved=None,
22522254
exclude_unlimited=None, exclude_limited_upgradable=None,
22532255
exclude_limited_non_upgradable=None, exclude_from_blockchain=None,
22542256
exclude_unique=None, sort_by_price=None, offset=None, limit=None):
2255-
method_url = 'getChatGifts'
2256-
payload = {'chat_id': chat_id}
2257-
if exclude_unsaved is not None:
2258-
payload['exclude_unsaved'] = exclude_unsaved
2259-
if exclude_saved is not None:
2260-
payload['exclude_saved'] = exclude_saved
2261-
if exclude_unlimited is not None:
2262-
payload['exclude_unlimited'] = exclude_unlimited
2263-
if exclude_limited_upgradable is not None:
2264-
payload['exclude_limited_upgradable'] = exclude_limited_upgradable
2265-
if exclude_limited_non_upgradable is not None:
2266-
payload['exclude_limited_non_upgradable'] = exclude_limited_non_upgradable
2267-
if exclude_from_blockchain is not None:
2268-
payload['exclude_from_blockchain'] = exclude_from_blockchain
2269-
if exclude_unique is not None:
2270-
payload['exclude_unique'] = exclude_unique
2271-
if sort_by_price is not None:
2272-
payload['sort_by_price'] = sort_by_price
2273-
if offset is not None:
2274-
payload['offset'] = offset
2257+
method_url = 'getChatGifts'
2258+
payload = {'chat_id': chat_id}
2259+
if exclude_unsaved is not None:
2260+
payload['exclude_unsaved'] = exclude_unsaved
2261+
if exclude_saved is not None:
2262+
payload['exclude_saved'] = exclude_saved
2263+
if exclude_unlimited is not None:
2264+
payload['exclude_unlimited'] = exclude_unlimited
2265+
if exclude_limited_upgradable is not None:
2266+
payload['exclude_limited_upgradable'] = exclude_limited_upgradable
2267+
if exclude_limited_non_upgradable is not None:
2268+
payload['exclude_limited_non_upgradable'] = exclude_limited_non_upgradable
2269+
if exclude_from_blockchain is not None:
2270+
payload['exclude_from_blockchain'] = exclude_from_blockchain
2271+
if exclude_unique is not None:
2272+
payload['exclude_unique'] = exclude_unique
2273+
if sort_by_price is not None:
2274+
payload['sort_by_price'] = sort_by_price
2275+
if offset is None:
2276+
payload['offset'] = ""
2277+
else:
2278+
payload['offset'] = offset
22752279
if limit is not None:
22762280
payload['limit'] = limit
2277-
return _make_request(token, method_url, params=payload)
2281+
return _make_request(token, method_url, params=payload)
22782282

22792283

22802284
def convert_gift_to_stars(token, business_connection_id, owned_gift_id):

telebot/async_telebot.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8439,7 +8439,7 @@ async def get_business_account_gifts(
84398439
:param exclude_unlimited: Pass True to exclude gifts that can be purchased an unlimited number of times
84408440
:type exclude_unlimited: :obj:`bool`
84418441
8442-
:param exclude_limited: Pass True to exclude gifts that can be purchased a limited number of times
8442+
:param exclude_limited: Deprecated, use exclude_limited_upgradable and exclude_limited_non_upgradable instead.
84438443
:type exclude_limited: :obj:`bool`
84448444
84458445
:param exclude_unique: Pass True to exclude unique gifts
@@ -8466,9 +8466,15 @@ async def get_business_account_gifts(
84668466
:return: On success, a OwnedGifts object is returned.
84678467
:rtype: :class:`telebot.types.OwnedGifts`
84688468
"""
8469-
if exclude_limited is not None and exclude_limited_upgradable is None and exclude_limited_non_upgradable is None:
8470-
exclude_limited_upgradable = exclude_limited
8471-
exclude_limited_non_upgradable = exclude_limited
8469+
if exclude_limited is not None:
8470+
logger.warning("Deprecation warning. 'exclude_limited' parameter is deprecated in get_business_account_gifts. Use 'exclude_limited_upgradable' and 'exclude_limited_non_upgradable' instead.")
8471+
8472+
if exclude_limited_upgradable is not None or exclude_limited_non_upgradable is not None:
8473+
logger.warning("Both 'exclude_limited' and 'exclude_limited_upgradable'/'exclude_limited_non_upgradable' parameters are set: conflicting, using 'exclude_limited_upgradable' and 'exclude_limited_non_upgradable' values.")
8474+
8475+
else:
8476+
exclude_limited_upgradable = exclude_limited
8477+
exclude_limited_non_upgradable = exclude_limited
84728478

84738479
return types.OwnedGifts.de_json(
84748480
await asyncio_helper.get_business_account_gifts(

telebot/asyncio_helper.py

Lines changed: 48 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -2194,55 +2194,59 @@ async def get_business_account_gifts(token, business_connection_id, exclude_unsa
21942194
return await _process_request(token, method_url, params=payload)
21952195

21962196
async def get_user_gifts(token, user_id, exclude_unlimited=None, exclude_limited_upgradable=None,
2197-
exclude_limited_non_upgradable=None, exclude_from_blockchain=None, exclude_unique=None,
2198-
sort_by_price=None, offset=None, limit=None):
2199-
method_url = 'getUserGifts'
2200-
payload = {'user_id': user_id}
2201-
if exclude_unlimited is not None:
2202-
payload['exclude_unlimited'] = exclude_unlimited
2203-
if exclude_limited_upgradable is not None:
2204-
payload['exclude_limited_upgradable'] = exclude_limited_upgradable
2205-
if exclude_limited_non_upgradable is not None:
2206-
payload['exclude_limited_non_upgradable'] = exclude_limited_non_upgradable
2207-
if exclude_from_blockchain is not None:
2208-
payload['exclude_from_blockchain'] = exclude_from_blockchain
2209-
if exclude_unique is not None:
2210-
payload['exclude_unique'] = exclude_unique
2211-
if sort_by_price is not None:
2212-
payload['sort_by_price'] = sort_by_price
2213-
if offset is not None:
2214-
payload['offset'] = offset
2215-
if limit is not None:
2216-
payload['limit'] = limit
2217-
return await _process_request(token, method_url, params=payload)
2197+
exclude_limited_non_upgradable=None, exclude_from_blockchain=None, exclude_unique=None,
2198+
sort_by_price=None, offset=None, limit=None):
2199+
method_url = 'getUserGifts'
2200+
payload = {'user_id': user_id}
2201+
if exclude_unlimited is not None:
2202+
payload['exclude_unlimited'] = exclude_unlimited
2203+
if exclude_limited_upgradable is not None:
2204+
payload['exclude_limited_upgradable'] = exclude_limited_upgradable
2205+
if exclude_limited_non_upgradable is not None:
2206+
payload['exclude_limited_non_upgradable'] = exclude_limited_non_upgradable
2207+
if exclude_from_blockchain is not None:
2208+
payload['exclude_from_blockchain'] = exclude_from_blockchain
2209+
if exclude_unique is not None:
2210+
payload['exclude_unique'] = exclude_unique
2211+
if sort_by_price is not None:
2212+
payload['sort_by_price'] = sort_by_price
2213+
if offset is None:
2214+
payload['offset'] = ""
2215+
else:
2216+
payload['offset'] = offset
2217+
if limit is not None:
2218+
payload['limit'] = limit
2219+
return await _process_request(token, method_url, params=payload)
22182220

22192221
async def get_chat_gifts(token, chat_id, exclude_unsaved=None, exclude_saved=None,
22202222
exclude_unlimited=None, exclude_limited_upgradable=None,
22212223
exclude_limited_non_upgradable=None, exclude_from_blockchain=None,
22222224
exclude_unique=None, sort_by_price=None, offset=None, limit=None):
2223-
method_url = 'getChatGifts'
2224-
payload = {'chat_id': chat_id}
2225-
if exclude_unsaved is not None:
2226-
payload['exclude_unsaved'] = exclude_unsaved
2227-
if exclude_saved is not None:
2228-
payload['exclude_saved'] = exclude_saved
2229-
if exclude_unlimited is not None:
2230-
payload['exclude_unlimited'] = exclude_unlimited
2231-
if exclude_limited_upgradable is not None:
2232-
payload['exclude_limited_upgradable'] = exclude_limited_upgradable
2233-
if exclude_limited_non_upgradable is not None:
2234-
payload['exclude_limited_non_upgradable'] = exclude_limited_non_upgradable
2235-
if exclude_from_blockchain is not None:
2236-
payload['exclude_from_blockchain'] = exclude_from_blockchain
2237-
if exclude_unique is not None:
2238-
payload['exclude_unique'] = exclude_unique
2239-
if sort_by_price is not None:
2240-
payload['sort_by_price'] = sort_by_price
2241-
if offset is not None:
2242-
payload['offset'] = offset
2243-
if limit is not None:
2244-
payload['limit'] = limit
2245-
return await _process_request(token, method_url, params=payload)
2225+
method_url = 'getChatGifts'
2226+
payload = {'chat_id': chat_id}
2227+
if exclude_unsaved is not None:
2228+
payload['exclude_unsaved'] = exclude_unsaved
2229+
if exclude_saved is not None:
2230+
payload['exclude_saved'] = exclude_saved
2231+
if exclude_unlimited is not None:
2232+
payload['exclude_unlimited'] = exclude_unlimited
2233+
if exclude_limited_upgradable is not None:
2234+
payload['exclude_limited_upgradable'] = exclude_limited_upgradable
2235+
if exclude_limited_non_upgradable is not None:
2236+
payload['exclude_limited_non_upgradable'] = exclude_limited_non_upgradable
2237+
if exclude_from_blockchain is not None:
2238+
payload['exclude_from_blockchain'] = exclude_from_blockchain
2239+
if exclude_unique is not None:
2240+
payload['exclude_unique'] = exclude_unique
2241+
if sort_by_price is not None:
2242+
payload['sort_by_price'] = sort_by_price
2243+
if offset is None:
2244+
payload['offset'] = ""
2245+
else:
2246+
payload['offset'] = offset
2247+
if limit is not None:
2248+
payload['limit'] = limit
2249+
return await _process_request(token, method_url, params=payload)
22462250

22472251
async def convert_gift_to_stars(token, business_connection_id, owned_gift_id):
22482252
method_url = 'convertGiftToStars'

telebot/types.py

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11679,29 +11679,25 @@ class AcceptedGiftTypes(JsonDeserializable, JsonSerializable):
1167911679
:return: Instance of the class
1168011680
:rtype: :class:`AcceptedGiftTypes`
1168111681
"""
11682-
def __init__(self, unlimited_gifts: Optional[bool]=None, limited_gifts: Optional[bool]=None,
11683-
unique_gifts: Optional[bool]=None, premium_subscription: Optional[bool]=None, gifts_from_channels: Optional[bool]=None, **kwargs):
11684-
self.unlimited_gifts: Optional[bool] = unlimited_gifts
11685-
self.limited_gifts: Optional[bool] = limited_gifts
11686-
self.unique_gifts: Optional[bool] = unique_gifts
11687-
self.premium_subscription: Optional[bool] = premium_subscription
11688-
self.gifts_from_channels: Optional[bool] = gifts_from_channels
11682+
def __init__(self, unlimited_gifts: Optional[bool], limited_gifts: Optional[bool],
11683+
unique_gifts: Optional[bool], premium_subscription: Optional[bool], gifts_from_channels: Optional[bool], **kwargs):
11684+
self.unlimited_gifts: bool = unlimited_gifts
11685+
self.limited_gifts: bool = limited_gifts
11686+
self.unique_gifts: bool = unique_gifts
11687+
self.premium_subscription: bool = premium_subscription
11688+
self.gifts_from_channels: bool = gifts_from_channels
1168911689

1169011690
def to_json(self):
1169111691
return json.dumps(self.to_dict())
1169211692

1169311693
def to_dict(self):
11694-
data = {}
11695-
if self.unlimited_gifts is not None:
11696-
data['unlimited_gifts'] = self.unlimited_gifts
11697-
if self.limited_gifts is not None:
11698-
data['limited_gifts'] = self.limited_gifts
11699-
if self.unique_gifts is not None:
11700-
data['unique_gifts'] = self.unique_gifts
11701-
if self.premium_subscription is not None:
11702-
data['premium_subscription'] = self.premium_subscription
11703-
if self.gifts_from_channels is not None:
11704-
data['gifts_from_channels'] = self.gifts_from_channels
11694+
data = {
11695+
'unlimited_gifts': self.unlimited_gifts,
11696+
'limited_gifts': self.limited_gifts,
11697+
'unique_gifts': self.unique_gifts,
11698+
'premium_subscription': self.premium_subscription,
11699+
'gifts_from_channels': self.gifts_from_channels
11700+
}
1170511701
return data
1170611702

1170711703
@classmethod
@@ -12641,7 +12637,7 @@ class UniqueGiftInfo(JsonDeserializable):
1264112637
after the gift was sent, or “offer” for gifts bought or sold through gift purchase offers
1264212638
:type origin: :obj:`str`
1264312639

12644-
:param last_resale_star_count: Optional. For gifts bought from other users, the price paid for the gift
12640+
:param last_resale_star_count: Deprecated. Use last_resale_currency and last_resale_amount instead.
1264512641
:type last_resale_star_count: :obj:`int`
1264612642

1264712643
:param last_resale_currency: Optional. For gifts bought from other users, the currency in which the payment for the gift was done. Currently, one of “XTR” for Telegram Stars or “TON” for toncoins.
@@ -12664,17 +12660,24 @@ class UniqueGiftInfo(JsonDeserializable):
1266412660
"""
1266512661
def __init__(self, gift: UniqueGift, origin: str, owned_gift_id: Optional[str] = None,
1266612662
transfer_star_count: Optional[int] = None, next_transfer_date: Optional[int] = None,
12667-
last_resale_star_count: Optional[int] = None, last_resale_currency: Optional[str] = None,
12663+
last_resale_currency: Optional[str] = None,
1266812664
last_resale_amount: Optional[int] = None, **kwargs):
1266912665
self.gift: UniqueGift = gift
1267012666
self.origin: str = origin
12671-
self.last_resale_star_count: Optional[int] = last_resale_star_count
1267212667
self.last_resale_currency: Optional[str] = last_resale_currency
1267312668
self.last_resale_amount: Optional[int] = last_resale_amount
1267412669
self.owned_gift_id: Optional[str] = owned_gift_id
1267512670
self.transfer_star_count: Optional[int] = transfer_star_count
1267612671
self.next_transfer_date: Optional[int] = next_transfer_date
1267712672

12673+
@property
12674+
def last_resale_star_count(self) -> Optional[int]:
12675+
"""Deprecated. Use last_resale_currency and last_resale_amount instead."""
12676+
log_deprecation_warning("last_resale_star_count is deprecated. Use last_resale_currency and last_resale_amount instead.")
12677+
if self.last_resale_currency == "XTR":
12678+
return self.last_resale_amount
12679+
return None
12680+
1267812681

1267912682
@classmethod
1268012683
def de_json(cls, json_string):

telebot/util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
'giveaway_created', 'giveaway_winners', 'giveaway_completed', 'boost_added', 'paid_message_price_changed',
4444
'checklist_tasks_done', 'checklist_tasks_added', 'direct_message_price_changed', 'suggested_post_refunded',
4545
'suggested_post_info', 'suggested_post_approved', 'suggested_post_approval_failed', 'suggested_post_declined',
46-
'suggested_post_paid'
46+
'suggested_post_paid', 'gift_upgrade_sent'
4747
]
4848

4949
#: All update types, should be used for allowed_updates parameter in polling.

0 commit comments

Comments
 (0)