Coder Social home page Coder Social logo

enkanetworkv2.py's Introduction

Enka Network Python

Note

This module is a complete copy of the module: enkanetwork.py but with fixing problems with pydantic V2 > compatibility and updating assets.

EN | TH | JA

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

🏓 Table of content

Installation

pip install enkanetworkv2.py

Usage

import asyncio

from enkanetwork import EnkaNetworkAPI

client = EnkaNetworkAPI()

async def main():
    async with client:
        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.avatar.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}")

asyncio.run(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 refer in example folder.

Class Methods

Name Description
fetch_user(uid) Fetch user data (UID) (Will be depercated soon)
fetch_user_by_uid(uid) Fetch user data (UID)
fetch_user_by_username(profile_id) Fetch user data (Profile ID) (For subscriptions in Enka.Network)
fetch_hoyos_by_username(profile_id) Fetch user hoyo(s) data (Profile ID) (For subscriptions in Enka.Network)
fetch_builds(profile_id, metaname) Fetch build data (Profile ID) (For subscriptions in Enka.Network)
set_language(lang) Set new language
Please refer Languages Supported
update_assets()

Return data

UID

Return type: EnkaNetworkResponse

Wrapper API Notes
player playerInfo Please refer Player
characters avatarInfoList Please refer Characters
profile - Please refer Profile Info
owner owner Please refer Player Owner
ttl ttl
uid uid

Profile

Return type: EnkaNetworkProfileResponse

Wrapper API Notes
username playerInfo Please refer Player
profile profile Please refer in Profile patreon
hoyos hoyos Please refer Profile hoyos

Structure

Player owner

Wrapper API Notes
hash hash
username username Please refer Tier
profile profile Please refer in Profile patreon
builds - Please refer Build(s) info

Profile Patreon

Wrapper API Notes
bio bio
level level Please refer Tier
profile worldLevel
signup_state signup_state
image_url image_url

Profile Hoyos

Wrapper API Notes
uid_public uid_public
public public
verified verified
player_info player_info Please refer Profile Patreon
signup_state signup_state
signup_state signup_state

Avatar build(s) info

Wrapper API Notes
id id
name name
avatar_id avatar_id
avatar_data avatar_data Please refer Characters
order order
live live
settings settings
public public

Profile Info

Wrapper API Notes
uid - UID in-game
url - URL to enter Enka.Network site
path - Path URL

Player

Wrapper API Notes
nickname nickname Please refer Namecard
signature signature
world_level worldLevel
achievement finishAchievementNum
namecard namecardId
namecards showNameCardIdList -> id Please refer Namecard
abyss_floor towerFloorIndex
abyss_room towerLevelIndex
characters_preview showAvatarInfoList Please refer Character Preview
avatar profilePicture Please refer Avatar Icon

Avatar icon

Wrapper API Notes
id avatarId
icon Please refer Icon Data

Namecard

Wrapper API Notes
id - Namecard ID
name - Namecard name
icon - Namecard icon, Please refer Icon Data
banner - Namecard banner, Please refer Icon Data
navbar - Namecard navbar (Alpha), Please refer Icon Data

Character preview

Wrapper API Notes
id - Avatar ID
name - Avatar Name
level - Avatar Level
icon - Avatar Icon, Please refer Icon Data

Characters

Wrapper API Notes
id avatarId
name - Avatar Name
element - Please refer Element Type
rarity - Rarity
image - Please refer 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 refer Equipments
stats fightPropMap Please refer FIGHT_PROP Data
constellations talentIdList Please refer Constellation
constellations_unlocked - Constellation unlocked
skill_data inherentProudSkillList
skill_id skillDepotId
skills - Please refer Skill

Icon

Wrapper API Notes
icon - Avatar icon, Please refer Icon Data
side - Avatar side icon, Please refer Icon Data
banner - Avatar wish banner, Please refer Icon Data

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
is_boosted - Skill level has boosted

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 refer Equipments Info

Equipments Info

Wrapper API Notes
name - Equipment Name (Artifact name or Weapon name)
icon icon Please refer Icon Data
artifact_type - Please refer Artifact Type
rarity rankLevel
mainstats reliquaryMainstat, weaponStats -> 0 Please refer Equipments Stats
substats reliquarySubstats, weaponStats -> 1 Please refer 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 methods.

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%

Build

In this Builds It's not pretty data. You can use this method to get data. Or if you want get full, You can use raw argument

Choice Example Output
Get avatar ID list builds.get_avatar_list() [10000021,10000037,10000025, ...]
Get character build builds.get_character(10000021) List of Build info
Get build info by avatar id builds.get_character(10000021, 11111111) Build info

Icon Data

In icon data. You can get the value from 2 methods.

Choice Example Output
Get filename icon.filename UI_AvatarIcon_Kazuha_Card.png
Get URL icon.url https://enka.network/ui/UI_AvatarIcon_Kazuha_Card.png

Artifact Type

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

Element Type

Key Value
Cryo 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 can get NameTextMapHash from hash_id like this:

import asyncio

from enkanetwork import Assets

assets = Assets(lang="en") # Set languege before get name (Ex. English)

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

enkanetworkv2.py's People

Contributors

deviantua avatar seriaati avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.