SIMNet/simnet/client/wish/starrail.py
2023-05-02 01:02:53 +08:00

42 lines
1.7 KiB
Python

from typing import Optional, List
from simnet.client.wish.base import BaseWishClient
from simnet.models.starrail.wish import StarRailWish
from simnet.utils.enum_ import Game
class WishClient(BaseWishClient):
"""The WishClient class for making requests towards the Wish API."""
async def wish_history(
self,
banner_types: List[int],
limit: Optional[int] = None,
lang: Optional[str] = None,
authkey: Optional[str] = None,
end_id: int = 0,
) -> List[StarRailWish]:
"""
Get the wish history for a list of banner types.
Args:
banner_types (List[int], optional): The list of banner types to get the wish history for.
limit (Optional[int] , optional): The maximum number of wishes to retrieve.
If not provided, all available wishes will be returned.
lang (Optional[str], optional): The language code to use for the request.
If not provided, the class default will be used.
authkey (Optional[str], optional): The authorization key for making the request.
end_id (int, optional): The ending ID of the last wish to retrieve.
Returns:
List[StarRailWish]: A list of StarRailWish objects representing the retrieved wishes.
"""
wish: List[StarRailWish] = []
banner_names = await self.get_banner_names(
game=Game.STARRAIL, lang=lang, authkey=authkey
)
for banner_type in banner_types:
data = await self.get_wish_page(end_id, banner_type, Game.STARRAIL)
banner_name = banner_names[banner_type]
wish = [StarRailWish(**i, banner_name=banner_name) for i in data["list"]]
return wish