-
Notifications
You must be signed in to change notification settings - Fork 3
Interacting With the API
To interact with the Enka Network Genshin Impact API, use the GenshinClient
.
import enka
async with enka.GenshinClient() as client:
await client.fetch_showcase(901211014)
Alternatively, call the start
and close
methods manually.
import enka
client = enka.GenshinClient()
await client.start()
await client.fetch_showcase(901211014)
await client.close()
Important
When using the client, you must use either the async with
syntax or call start
and close
manually; otherwise, the client won't work and RuntimeError
will be raised.
Available after v1.2.0
Character icons are now Icon
objects, you can access all types of icons from it:
-
icon.side
: https://enka.network/ui/UI_AvatarIcon_Side_Ambor.png -
icon.circle
: https://enka.network/ui/UI_AvatarIcon_Ambor_Circle.png -
icon.gacha
: https://enka.network/ui/UI_Gacha_AvatarImg_Ambor.png -
icon.front
: https://enka.network/ui/UI_AvatarIcon_Ambor.png
The same goes for ShowcaseCharacter.costume_icon
and Player.profile_picture_icon
.
Namecards are now Namecard
objects:
-
Namecard.icon
: https://enka.network/ui/UI_NameCardIcon_0.png -
Namecard.full
: https://enka.network/ui/UI_NameCardPic_0_P.png
Available after v1.4.0
Stats refer to character, weapon, and artifact stats.
Internally, stats for characters are FightProp
classes, while the others are Stat
classes; they can be accessed in the same way, but their type
s are different (FightPropType
and StatType
).
For your convenience, there are stat.is_percentage
and stat.formatted_value
to use, for exmple:
- If
stat.type
isStatType.FIGHT_PROP_CUR_ATTACK
stat.is_percentage = False
stat.formatted_value = '2300'
- If
stat.type
isStatType.FIGHT_PROP_CRITICAL
stat.is_percentage = True
stat.formatted_value = '23.1%'
Available after v1.7.0
After v1.7.0, all constellations that belong to a character will appear in Character.constellations
, the Constellation.unlocked
attribute will indicate whether the constellation is unlocked. Also, there is a new attribute Character.constellations_unlocked
that indicates how many constellations the character has unlocked.
Similarly, to interact with the Enka Network HSR API, use the HSRClient
.
import enka
async with enka.HSRClient() as client:
await client.fetch_showcase(809162009)
Same as GenshinClient
, you can also call the start
and close
methods manually.
import enka
client = enka.HSRClient()
await client.start()
await client.fetch_showcase(809162009)
await client.stop()
Available after v2.1.0
For information on what character builds are, please read the Enka Network API docs.
client.fetch_builds
returns a dictionary of character ID to list of builds that belong to the character, builds is a list of Build
models.
import enka
async with enka.GenshinClient() as client:
showcase = await client.fetch_showcase(618285856)
builds = await client.fetch_builds(showcase.owner)
for character_id, build in builds.items():
print(character_id)
print(build.name, build.character.name)
# Same goes for HSRClient
Available after v2.1.1
You can let the API wrapper return the raw data from the API, and later on parse it.
import enka
async with enka.GenshinClient() as client:
raw = await client.fetch_showcase(901211014, raw=True)
parsed = client.parse_showcase(raw)
# Same goes for HSRClient
You can find more detailed examples in the examples folder.