Wish History
Contains the wish history and banner details.
To request any of the wish history endpoints you must set an authkey. Refer to the authentication section for more information.
Quick example
# simply iterate over the wish history
async for wish in client.wish_history():
print(f"{wish.time} - {wish.name} ({wish.rarity}* {wish.type})")
# set a limit for the iteration
async for wish in client.wish_history(limit=100):
print(f"{wish.time} - {wish.name} ({wish.rarity}* {wish.type})")
# get and flatten the wish history
history = await client.wish_history(limit=100).flatten()
print(history[-1].time)
# get the first wish in the paginator (most recent one)
wish = await client.wish_history().next()
print(wish.uid)
Filtering data by banner
By default client.wish_history()
gets data from all banners, you can filter the results by passing in a banner id. You may also call client.get_banner_names()
to get the banner names in various languages.
Banner | ID |
---|---|
Novice Wishes | 100 |
Permanent Wish | 200 |
Character Event Wish | 301 |
Weapon Event Wish | 302 |
This enum is contained in
genshin.models.BannerType
# get wishes only from the standard permanent banner
async for wish in client.wish_history(genshin.models.BannerType.STANDARD, limit=20):
print(f"{wish.time} - {wish.name} ({wish.rarity}* {wish.type})")
# get wishes from both the character and the weapon banner
async for wish in client.wish_history([301, 302], limit=20):
print(f"{wish.time} - {wish.name} ({wish.rarity}* {wish.type})")
Banner Details
In the same way you can get data for your wish history you may also get data for the static banner details.
Quick example
# get all the current banners
banners = await client.get_banner_details()
for banner in banners:
print(banner.name)
# get a list of all items that can be gotten from the gacha
items = await client.get_gacha_items()
Optimizations
You may start from any point in the paginator as long as you know the id of the previous item.
async for wish in client.wish_history(limit=20):
print(wish)
async for wish in client.wish_history(limit=20, end_id=wish.id):
print(wish)
get_banner_details
requires ids to get the banner details. These ids change with every new banner so for user experience they are hosted on a remote repository maintained by me. You may get them yourself by opening every single details page in genshin and then running genshin.get_banner_ids()
banner_ids = genshin.get_banner_ids()
banners = await client.get_banner_details(banner_ids)