genshin-manager

GenshinManager

npm version npm downloads

A Node.js Enka.network and Genshin Data wrapper for Genshin Impact

This is NOT the source code of Enka.Network or its API.

  • User Data and Character Stats 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.
  • Easily instantiated using id

Node.js 18 or newer is required.

Install genshin-manager including genshin cache data.(download EN TextMap by default.)

npm install genshin-manager

You can specify which TextMap to download during installation.('ALL' can also be specified).

npm install genshin-manager --download-language="JP"

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

npm install genshin-manager --nocache=true

Genshin cache data is from Dimbreath/AnimeGameData.

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

You can change your cache directory.

const { Client } = require('genshin-manager')

// Change the directory to store cache data.
// Default directory is node_modules/genshin-manager/cache.
const client = new Client({ assetCacheFolderPath: './cache' })
await client.deploy()

You can update your genshin cache data.

const { Client } = require('genshin-manager')

// showFetchCacheLog is true by default
const client = new Client({ showFetchCacheLog: true })
await client.deploy()

Also, you can activate auto cache updater.

const { Client } = require('genshin-manager')

// autoFetchLatestAssetsByCron is "0 0 0 * * 3" by default
// By default, it runs every Wednesday at 00:00:00
// downloadLanguages is All TextMap by default
const client = new Client({
downloadLanguages: ['EN', 'JP'],
autoFetchLatestAssetsByCron: '0 0 0 * * 3',
})
await client.deploy()

// deactivate
const client = new Client({ autoFetchLatestAssetsByCron: undefined })
await client.deploy()

Images can be cached.

const { Client } = require('genshin-manager')

// autoCacheImage is true by default
const client = new Client({ autoCacheImage: true })
await client.deploy()

Automatically fixes defects in TextMap & ExcelBinOutput when they occur.

const { Client } = require('genshin-manager')

// autoFixTextMap and autoFixExcelBin is true by default
// but, if autoFetchLatestAssetsByCron is undefined, it is forced to false.
const client = new Client({ autoFixTextMap: true, autoFixExcelBin: true })
await client.deploy()

How to use

EnkaManager#fetch

const { Client, EnkaManager } = require('genshin-manager')

// Loading cache
const client = new Client()
await client.deploy()

const enkaManager = new EnkaManager()

const enkaData = await enkaManager.fetchAll(800802278)
console.log(enkaData.uid)
console.log(enkaData.playerDetail)
console.log(enkaData.characterDetails)
console.log(enkaData.nextShowCaseDate)

Character

const { Client, CharacterInfo } = require('genshin-manager')

// Loading cache
const client = new Client({ defaultLanguage: 'JP' })
await client.deploy()

const character = new CharacterInfo(10000002)
// print character name in language "jp"
console.log(character.name) // output: 神里綾華

Weapon

const { Client, Weapon } = require('genshin-manager')

// Loading cache
const client = new Client({ defaultLanguage: 'JP' })
await client.deploy()

const weapon = new Weapon(13501)
// print weapon name in language "jp"
console.log(weapon.name) // output: 護摩の杖

You can see the examples, please check Examples

For more information, please check Documentation.

You can see the changelog here.