enka.py


Nameenka.py JSON
Version 1.2.2 PyPI version JSON
download
home_pagehttps://github.com/pwnless/enka.py
SummaryLibrary for fetching JSON data from site https://enka.network/
upload_time2024-04-28 12:46:26
maintainerNone
docs_urlNone
authorpwnless
requires_python>=3.6
licenseNone
keywords enkapy.py enkapy enka.network genshinapi
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Enka.py
[![Downloads](https://static.pepy.tech/badge/enka-py)](https://pepy.tech/project/enka-py) [![Downloads](https://static.pepy.tech/badge/enka-py/month)](https://pepy.tech/project/enka-py) ![](https://img.shields.io/pypi/v/enka.py)

Friendly API for fetching genshin user data from https://enka.shinshin.moe/ (Now https://enka.network)

Added name parsing and full artifact support and more elegant code.

original from https://github.com/mrwan200/EnkaNetwork.py, but better!

# Documentation

see http://enkapy.rtfd.io/

# Installation
```
pip install enka.py
```

# Usage
```py
import asyncio

from enkapy import Enka

client = Enka()


async def main():
    await client.load_lang()
    user = await client.fetch_user(104267816)
    print(f"Nickname: {user.player.nickname}")
    print(f"Level: {user.player.level}")
    print(f'Signature: {user.player.signature}')
    print(f'World level:{user.player.worldLevel}')
    print(f'Abyss: {user.player.towerFloorIndex}-{user.player.towerLevelIndex}')
    # fetch first character
    character = user.characters[0]
    print(f'Name: {character.name}')
    print(f'Ascension: {character.ascension}')
    print(f'Level: {character.level}')
    print(f'Exp: {character.experience}')
    print('Weapon:')
    weapon = character.weapon
    print(f'\tName: {weapon.name}')
    print(f'\tLevel: {weapon.level}')
    print(f'\tRefine: {weapon.refine}')
    print(f'\tStar level: {weapon.rank}')

    print('Constellations:')
    for constellation in character.constellations:
        if constellation.activated:
            print(f'\t{constellation.name} Activated')
    print('Skills:')
    for skill in character.skills:
        if skill.type == 0:
            print(f'\tNormal skill {skill.name}, level:{skill.level}')
        elif skill.type == 1:
            print(f'\tElemental skill {skill.name}, level:{skill.level}')
        elif skill.type == 2:
            print(f'\tElemental burst {skill.name}, level:{skill.level}')
    print('Artifacts:')
    for artifact in character.artifacts:
        print(f'\t{artifact.set_name} {artifact.name}:')
        print(f'\t{artifact.main_stat.prop}:{artifact.main_stat.value}')
        for sub_stats in artifact.sub_stats:
            print(f'\t\t{sub_stats.prop}:{sub_stats.value}')


loop = asyncio.get_event_loop()
loop.run_until_complete(main())
```
Result:
```sh
Nickname: 天天向上
Level: 60
Signature: 凌人有点无脑
World level:8
Abyss: 12-3
Name: Kamisato Ayaka
Ascension: 6
Level: 90
Exp: 0
Weapon:
    Name: Mistsplitter Reforged
    Level: 90
    Refine: 5
    Star level: 5
Constellations:
    Snowswept Sakura Activated
    Blizzard Blade Seki no To Activated
    Frostbloom Kamifubuki Activated
    Ebb and Flow Activated
    Blossom Cloud Irutsuki Activated
    Dance of Suigetsu Activated
Skills:
    Elemental burst Kamisato Art: Soumetsu, level:10
    Normal skill Normal Attack: Kamisato Art - Kabuki, level:10
    Elemental skill Kamisato Art: Hyouka, level:9
    Normal skill Kamisato Art: Senho, level:1
Artifacts:
    Blizzard Strayer Snowswept Memory:
    FIGHT_PROP_HP:4780.0
        FIGHT_PROP_ELEMENT_MASTERY:44.0
        FIGHT_PROP_CRITICAL_HURT:38.1
        FIGHT_PROP_DEFENSE:16.0
        FIGHT_PROP_CRITICAL:3.9
    Blizzard Strayer Icebreaker's Resolve:
    FIGHT_PROP_ATTACK:311.0
        FIGHT_PROP_CRITICAL:3.1
        FIGHT_PROP_ELEMENT_MASTERY:35.0
        FIGHT_PROP_CHARGE_EFFICIENCY:10.4
        FIGHT_PROP_CRITICAL_HURT:21.8
    Blizzard Strayer Frozen Homeland's Demise:
    FIGHT_PROP_ATTACK_PERCENT:46.6
        FIGHT_PROP_HP_PERCENT:8.7
        FIGHT_PROP_ATTACK:18.0
        FIGHT_PROP_CRITICAL_HURT:13.2
        FIGHT_PROP_CRITICAL:10.5
    Archaic Petra Goblet of Chiseled Crag:
    FIGHT_PROP_ICE_ADD_HURT:46.6
        FIGHT_PROP_ELEMENT_MASTERY:16.0
        FIGHT_PROP_CRITICAL_HURT:25.7
        FIGHT_PROP_HP_PERCENT:10.5
        FIGHT_PROP_CRITICAL:5.4
    Blizzard Strayer Broken Rime's Echo:
    FIGHT_PROP_CRITICAL_HURT:62.2
        FIGHT_PROP_CRITICAL:11.7
        FIGHT_PROP_ATTACK_PERCENT:9.3
        FIGHT_PROP_ELEMENT_MASTERY:42.0
        FIGHT_PROP_DEFENSE:35.0
```

If you want full docs for the API, visit [EnkaNetwork API](https://github.com/EnkaNetwork/API-docs)

# LICENSE
[MIT License](./LICENSE)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/pwnless/enka.py",
    "name": "enka.py",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "enkapy.py, enkapy, enka.network, genshinapi",
    "author": "pwnless",
    "author_email": "mystream@riseup.net",
    "download_url": "https://files.pythonhosted.org/packages/3e/e1/77ebb0cb090d9f726c6ca9f381f5a4e190173599dcbfe7e6d84a1245f8cd/enka.py-1.2.2.tar.gz",
    "platform": null,
    "description": "# Enka.py\r\n[![Downloads](https://static.pepy.tech/badge/enka-py)](https://pepy.tech/project/enka-py) [![Downloads](https://static.pepy.tech/badge/enka-py/month)](https://pepy.tech/project/enka-py) ![](https://img.shields.io/pypi/v/enka.py)\r\n\r\nFriendly API for fetching genshin user data from https://enka.shinshin.moe/ (Now https://enka.network)\r\n\r\nAdded name parsing and full artifact support and more elegant code.\r\n\r\noriginal from https://github.com/mrwan200/EnkaNetwork.py, but better!\r\n\r\n# Documentation\r\n\r\nsee http://enkapy.rtfd.io/\r\n\r\n# Installation\r\n```\r\npip install enka.py\r\n```\r\n\r\n# Usage\r\n```py\r\nimport asyncio\r\n\r\nfrom enkapy import Enka\r\n\r\nclient = Enka()\r\n\r\n\r\nasync def main():\r\n    await client.load_lang()\r\n    user = await client.fetch_user(104267816)\r\n    print(f\"Nickname: {user.player.nickname}\")\r\n    print(f\"Level: {user.player.level}\")\r\n    print(f'Signature: {user.player.signature}')\r\n    print(f'World level:{user.player.worldLevel}')\r\n    print(f'Abyss: {user.player.towerFloorIndex}-{user.player.towerLevelIndex}')\r\n    # fetch first character\r\n    character = user.characters[0]\r\n    print(f'Name: {character.name}')\r\n    print(f'Ascension: {character.ascension}')\r\n    print(f'Level: {character.level}')\r\n    print(f'Exp: {character.experience}')\r\n    print('Weapon:')\r\n    weapon = character.weapon\r\n    print(f'\\tName: {weapon.name}')\r\n    print(f'\\tLevel: {weapon.level}')\r\n    print(f'\\tRefine: {weapon.refine}')\r\n    print(f'\\tStar level: {weapon.rank}')\r\n\r\n    print('Constellations:')\r\n    for constellation in character.constellations:\r\n        if constellation.activated:\r\n            print(f'\\t{constellation.name} Activated')\r\n    print('Skills:')\r\n    for skill in character.skills:\r\n        if skill.type == 0:\r\n            print(f'\\tNormal skill {skill.name}, level:{skill.level}')\r\n        elif skill.type == 1:\r\n            print(f'\\tElemental skill {skill.name}, level:{skill.level}')\r\n        elif skill.type == 2:\r\n            print(f'\\tElemental burst {skill.name}, level:{skill.level}')\r\n    print('Artifacts:')\r\n    for artifact in character.artifacts:\r\n        print(f'\\t{artifact.set_name} {artifact.name}:')\r\n        print(f'\\t{artifact.main_stat.prop}:{artifact.main_stat.value}')\r\n        for sub_stats in artifact.sub_stats:\r\n            print(f'\\t\\t{sub_stats.prop}:{sub_stats.value}')\r\n\r\n\r\nloop = asyncio.get_event_loop()\r\nloop.run_until_complete(main())\r\n```\r\nResult:\r\n```sh\r\nNickname: \u5929\u5929\u5411\u4e0a\r\nLevel: 60\r\nSignature: \u51cc\u4eba\u6709\u70b9\u65e0\u8111\r\nWorld level:8\r\nAbyss: 12-3\r\nName: Kamisato Ayaka\r\nAscension: 6\r\nLevel: 90\r\nExp: 0\r\nWeapon:\r\n    Name: Mistsplitter Reforged\r\n    Level: 90\r\n    Refine: 5\r\n    Star level: 5\r\nConstellations:\r\n    Snowswept Sakura Activated\r\n    Blizzard Blade Seki no To Activated\r\n    Frostbloom Kamifubuki Activated\r\n    Ebb and Flow Activated\r\n    Blossom Cloud Irutsuki Activated\r\n    Dance of Suigetsu Activated\r\nSkills:\r\n    Elemental burst Kamisato Art: Soumetsu, level:10\r\n    Normal skill Normal Attack: Kamisato Art - Kabuki, level:10\r\n    Elemental skill Kamisato Art: Hyouka, level:9\r\n    Normal skill Kamisato Art: Senho, level:1\r\nArtifacts:\r\n    Blizzard Strayer Snowswept Memory:\r\n    FIGHT_PROP_HP:4780.0\r\n        FIGHT_PROP_ELEMENT_MASTERY:44.0\r\n        FIGHT_PROP_CRITICAL_HURT:38.1\r\n        FIGHT_PROP_DEFENSE:16.0\r\n        FIGHT_PROP_CRITICAL:3.9\r\n    Blizzard Strayer Icebreaker's Resolve:\r\n    FIGHT_PROP_ATTACK:311.0\r\n        FIGHT_PROP_CRITICAL:3.1\r\n        FIGHT_PROP_ELEMENT_MASTERY:35.0\r\n        FIGHT_PROP_CHARGE_EFFICIENCY:10.4\r\n        FIGHT_PROP_CRITICAL_HURT:21.8\r\n    Blizzard Strayer Frozen Homeland's Demise:\r\n    FIGHT_PROP_ATTACK_PERCENT:46.6\r\n        FIGHT_PROP_HP_PERCENT:8.7\r\n        FIGHT_PROP_ATTACK:18.0\r\n        FIGHT_PROP_CRITICAL_HURT:13.2\r\n        FIGHT_PROP_CRITICAL:10.5\r\n    Archaic Petra Goblet of Chiseled Crag:\r\n    FIGHT_PROP_ICE_ADD_HURT:46.6\r\n        FIGHT_PROP_ELEMENT_MASTERY:16.0\r\n        FIGHT_PROP_CRITICAL_HURT:25.7\r\n        FIGHT_PROP_HP_PERCENT:10.5\r\n        FIGHT_PROP_CRITICAL:5.4\r\n    Blizzard Strayer Broken Rime's Echo:\r\n    FIGHT_PROP_CRITICAL_HURT:62.2\r\n        FIGHT_PROP_CRITICAL:11.7\r\n        FIGHT_PROP_ATTACK_PERCENT:9.3\r\n        FIGHT_PROP_ELEMENT_MASTERY:42.0\r\n        FIGHT_PROP_DEFENSE:35.0\r\n```\r\n\r\nIf you want full docs for the API, visit [EnkaNetwork API](https://github.com/EnkaNetwork/API-docs)\r\n\r\n# LICENSE\r\n[MIT License](./LICENSE)\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Library for fetching JSON data from site https://enka.network/",
    "version": "1.2.2",
    "project_urls": {
        "Homepage": "https://github.com/pwnless/enka.py"
    },
    "split_keywords": [
        "enkapy.py",
        " enkapy",
        " enka.network",
        " genshinapi"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3ee177ebb0cb090d9f726c6ca9f381f5a4e190173599dcbfe7e6d84a1245f8cd",
                "md5": "a53c70d2d723545052824c956c7dc97f",
                "sha256": "37a20f5d83c4208ad14c7e2dc8a7841a38fc4c9558bd0d81978a368f5dd2c763"
            },
            "downloads": -1,
            "filename": "enka.py-1.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "a53c70d2d723545052824c956c7dc97f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 11534,
            "upload_time": "2024-04-28T12:46:26",
            "upload_time_iso_8601": "2024-04-28T12:46:26.884178Z",
            "url": "https://files.pythonhosted.org/packages/3e/e1/77ebb0cb090d9f726c6ca9f381f5a4e190173599dcbfe7e6d84a1245f8cd/enka.py-1.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-28 12:46:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pwnless",
    "github_project": "enka.py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "enka.py"
}
        
Elapsed time: 0.24436s