Skip to main content

Library for fetching JSON data from site https://enka.network/

Project description

Enka Network Python

EN | TH

Library for API wrapper data from site https://enka.network/

🏓 Table of content

Table of Content

Installation

pip install enkanetwork.py

Usage

import asyncio

from enkanetwork import EnkaNetworkAPI

client = EnkaNetworkAPI()

async def main():
    data = await client.fetch_user(843715177)
    print("=== Player Info ===")
    print(f"Nickname: {data.player.nickname}")
    print(f"Level: {data.player.level}")
    print(f"Icon: {data.player.icon.url}")
    print(f"Signature: {data.player.signature}")
    print(f"Achievement: {data.player.achievement}")
    print(f"Abyss floor: {data.player.abyss_floor} - {data.player.abyss_room}")
    print(f"Cache timeout: {data.ttl}")

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Preview

=== Player Info ===
Nickname: mrwan2546
Level: 55
Icon: https://enka.network/ui/UI_AvatarIcon_Kazuha.png
Signature: K A Z U H A M U C H <3
Achievement: 396
Abyss floor: 8 - 3
Cache timeout: 300

Example

Please see in example folder.

Structure

Player

Wrapper API Notes
nickname nickname Please see Namecard
signature signature
world_level worldLevel
achievement finishAchievementNum
namecard namecardId
namecards showNameCardIdList -> id Please see Namecard
abyss_floor towerFloorIndex
abyss_room towerLevelIndex
characters_preview showAvatarInfoList Please see Character Preview
icon.url profilePicture.avatarID

Namecard

Wrapper API Notes
id - Namecard ID
name - Namecard name
icon - Namecard icon (url)
banner - Namecard banner (url)
navbar - Namecard navbar (Alpha) (url)

Character preview

Wrapper API Notes
id - Avatar ID
name - Avatar Name
level - Avatar Level
icon - Avatar Icon (url)

Characters

Wrapper API Notes
id avatarId
name - Avatar Name
element - Please see Element Type
image - Please see Icon
xp propMap -> 1001
ascension propMap -> 1002
level propMap -> 4001
max_level - Avatar max level (Like 50/60)
friendship_level fetterInfo.level
equipments equipList Please see Equipments
stats fightPropMap Please see FIGHT_PROP Data
constellations talentIdList Please see Constellation
skill_data inherentProudSkillList
skill_id skillDepotId
skills - Please see Skill

Icon

Wrapper API Notes
icon - Avatar icon (url)
side - Avatar side icon (url)
banner - Avatar wish banner (url)

Constellation

Wrapper API Notes
id - Constellation ID
name - Constellation Name
icon - Constellation Icon (url)
unlocked - Constellation has unlocked

Skill

Wrapper API Notes
id - Skill ID
name - Skill Name
icon - Skill Icon (url)
level - Skill Level

Equipments (Artifact, Weapon)

Wrapper API Notes
id itemId
level reliquary -> level, weapon -> level
type - Type of equipment (Artifact or Weapon)
refinement weapon -> affixMap
ascension weapon -> promoteLevel
detail flat Please see Equipments Info

Equipments Info

Wrapper API Notes
name - Equipment Name (Artifact name or Weapon name)
icon icon
artifact_type - Please see Artifact Type
rarity rankLevel
mainstats reliquaryMainstat, weaponStats -> 0 Please see Equipments Stats
substats reliquarySubstats, weaponStats -> 1 Please see Equipments Stats

Equipments Stats

Wrapper API Notes
prop_id prop_id
type - Value type (NUMBER or PERCENT)
name - Name of FIGHT_PROP
value value

FIGHT_PROP Data

In FIGHT_PROP data. You can get the value from 4 ways.

Choice Example Output
Get raw value stats.FIGHT_PROP_HP.value 15552.306640625
Get rounded value stats.FIGHT_PROP_ATTACK.to_rounded() 344
Get percentage stats.FIGHT_PROP_FIRE_ADD_HURT.to_percentage() 61.5
Get percentage and symbol stats.FIGHT_PROP_FIRE_ADD_HURT.to_percentage_symbol() 61.5%

Artifact Type

Key Value
Flower EQUIP_BRACER
Feather EQUIP_NECKLACE
Sands EQUIP_SHOES
Goblet EQUIP_RING
Circlet EQUIP_DRESS

Element Type

Key Value
Cyro Ice
Hydro Water
Anemo Wind
Pyro Fire
Geo Rock
Electro Electric

Assets

Assets character, constellations, skills, namecards

You can use avatarId to get the character, constellations, skills, namecards from assets.

import asyncio

from enkanetwork import Assets

assets = Assets()

async def main():
    # Character
    assets.character(10000046)
    # Constellations
    assets.constellations(2081199193)
    # Skills
    assets.constellations(10462)
    # Namecards
    assets.namecards(210059)
    
loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Assets NameTextMapHash

The NameTextMapHash is a hash map that contains the name text of the assets. You cane get NameTextMapHash from hash_id like this:

import asyncio

from enkanetwork import Assets

assets = Assets(lang="th") # Set languege before get name (Ex. Thai)

async def main():
    print(assets.get_hash_map(1940919994)) # Hu tao
    # OR you can get FIGHT_PROP name
    print(assets.get_hash_map("FIGHT_PROP_BASE_ATTACK")) # พลังโจมตีพื้นฐาน (Base ATK)
    
loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Languages Supported

Languege Code
English en
русский ru
Tiếng Việt vi
ไทย th
português pt
한국어 kr
日本語 jp
中文 zh
Indonesian id
français fr
español es
deutsch de
Taiwan cht
Chinese chs

If you want full docs for the API, visit EnkaNetwork API Docs

LICENSE

MIT License

Keqing

Picture by KKOMDASTRO

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

enkanetwork.py-1.2.6.dev3.tar.gz (274.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page