5858from .models .subscriptions import BroadcasterSubscription , BroadcasterSubscriptions
5959from .models .videos import Video
6060from .user import ActiveExtensions , PartialUser
61- from .utils import Colour , _from_json , url_encode_datetime # type: ignore
61+ from .utils import Colour , _from_json , url_encode_datetime , handle_user_ids # type: ignore
6262
6363
6464if TYPE_CHECKING :
@@ -586,16 +586,16 @@ async def converter(data: GameAnalyticsResponseData, *, raw: Any) -> GameAnalyti
586586 return iterator
587587
588588 ### Bits ###
589-
589+ @ handle_user_ids ()
590590 async def get_bits_leaderboard (
591591 self ,
592592 * ,
593593 broadcaster_id : str | int ,
594- token_for : str ,
594+ token_for : str | PartialUser ,
595595 count : int = 10 ,
596596 period : Literal ["day" , "week" , "month" , "year" , "all" ] = "all" ,
597597 started_at : datetime .datetime | None = None ,
598- user_id : str | int | None = None ,
598+ user_id : str | int | PartialUser | None = None ,
599599 ) -> BitsLeaderboardResponse :
600600 params : dict [str , str | int | datetime .datetime ] = {
601601 "broadcaster_id" : broadcaster_id ,
@@ -605,10 +605,10 @@ async def get_bits_leaderboard(
605605
606606 if started_at is not None :
607607 params ["started_at" ] = url_encode_datetime (started_at )
608- if user_id :
609- params ["user_id" ] = user_id
608+ if user_id is not None :
609+ params ["user_id" ] = str ( user_id )
610610
611- route : Route = Route ("GET" , "bits/leaderboard" , params = params , token_for = token_for )
611+ route : Route = Route ("GET" , "bits/leaderboard" , params = params , token_for = str ( token_for ) )
612612 return await self .request_json (route )
613613
614614 async def get_cheermotes (
0 commit comments