@huanlin/enka-network-api
TypeScript icon, indicating that this package has built-in type declarations

1.9.5 • Public • Published

EnkaNetworkAPI

Enka.Network

npm version npm downloads

About

An enka.network API wrapper for Genshin Impact.

Features

  • User Data and Character Status using EnkaNetwork.
  • All Characters and All Weapons Data. (Including More Advanced Info, such as Skill Attributes and Weapon Refinements.)
  • Cache Updater for the new update of Genshin Impact. (Update characters and weapons immediately.)

Installation

Node.js 16 or newer is required.

Install enka-network-api including genshin cache data.

npm install enka-network-api
Install using ghproxy.com
npm install enka-network-api --enka-ghproxy=true

If you have already moved the cache to another folder, you can also install without downloading the cache.

npm install enka-network-api --enka-nocache=true

About Genshin Cache Data

Genshin cache data is from Dimbreath/GenshinData (private repo).

This data contains data of characters, weapons, materials, and more structure information of Genshin Impact.

You can change your cache directory.

// Change the directory to store cache data.
// Default directory is **/enka-network-api/cache.
// Re-fetching contents may be required, if you update 
// enka-network-api with the cache directory in it.
const enka = new EnkaClient();
enka.cachedAssetsManager.cacheDirectoryPath = "./cache";
enka.cachedAssetsManager.cacheDirectorySetup();

// OR

const enka = new EnkaClient({ cacheDirectory: "./cache" });
enka.cachedAssetsManager.cacheDirectorySetup();

Updating

You can update your genshin cache data.

const { EnkaClient } = require("enka-network-api");
const enka = new EnkaClient({ showFetchCacheLog: true }); // showFetchCacheLog is true by default

enka.cachedAssetsManager.fetchAllContents(); // returns promise

Also, you can activate auto cache updater.

When using the auto-cache updater, we strongly recommend moving the cache directory directly under your project folder. (DO NOT delete **/enka-network-api/cache when moving directory, just delete all folders/files in it.)

const { EnkaClient } = require("enka-network-api");
const enka = new EnkaClient();

enka.cachedAssetsManager.activateAutoCacheUpdater({
    instant: true, // Run the first update check immediately
    timeout: 60 * 60 * 1000, // 1 hour interval
    onUpdateStart: async () => {
        console.log("Updating Genshin Data...");
    },
    onUpdateEnd: async () => {
        enka.cachedAssetsManager.refreshAllData(); // Refresh memory
        console.log("Updating Completed!");
    }
});

// // deactivate
// enka.cachedAssetsManager.deactivateAutoCacheUpdater();

How to use

Fetching Player Data

EnkaClient#fetchUser

const { EnkaClient } = require("enka-network-api");
const enka = new EnkaClient();

enka.fetchUser(825436941).then(user => {
  console.log(user);
});

Genshin Character List

EnkaClient#getAllCharacters

const { EnkaClient } = require("enka-network-api");
const enka = new EnkaClient();

const characters = enka.getAllCharacters();
// print character names with language "en"
console.log(characters.map(c => c.name.get("en")));

Genshin Weapon List

EnkaClient#getAllWeapons

const { EnkaClient } = require("enka-network-api");
const enka = new EnkaClient();

const weapons = enka.getAllWeapons();
// print weapon names with language "jp"
console.log(weapons.map(w => w.name.get("jp")));

More examples are available in example folder.

For more information, please check Documentation.

Package Sidebar

Install

npm i @huanlin/enka-network-api

Weekly Downloads

114

Version

1.9.5

License

MIT

Unpacked Size

239 kB

Total Files

108

Last publish

Collaborators

  • huanlin