![require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages](https://cdn.sanity.io/images/cgdhsj6q/production/be8ab80c8efa5907bc341c6fefe9aa20d239d890-1600x1097.png?w=400&fit=max&auto=format)
Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
An API for Akinator. Supports up to 15 languages and has two English servers.
An API for Akinator based in NodeJS.
Requirement | Version |
---|---|
Node | ^8.2.1 |
NPM | ^5.3.0 |
npm i aki-api
[
'en',
'en_objects',
'en_animals',
'ar',
'cn',
'de',
'de_animals',
'es',
'es_animals',
'fr',
'fr_objects',
'fr_animals',
'il',
'it',
'it_animals',
'jp',
'jp_animals',
'kr',
'nl',
'pl',
'pt',
'ru',
'tr',
'id'
]
const { Aki } = require('aki-api');
const run = async () => {
const region = 'en';
const childMode = false;
const proxy = undefined;
const aki = new Aki({ region, childMode, proxy });
await aki.start();
console.log('question:', aki.question);
console.log('answers: ', aki.answers);
}
run().catch(console.error);
question: Is your character real?
answers: [
"Yes",
"No",
"Don't know",
"Probably",
"Probably not"
]
const { regions } = require('aki-api');
console.log(regions);
const { Aki } = require('aki-api');
const run = async () => {
const region = 'en';
const aki = new Aki({ region });
await aki.start();
const myAnswer = 0; // yes = 0
await aki.step(myAnswer);
console.log('question:', aki.question);
console.log('answers:', aki.answers);
console.log('progress:', aki.progress);
}
run().catch(console.error);
progress
property. I like to do something like if(aki.progress >= 70)
or check the current step against the max of 80const { Aki } = require('aki-api');
const region = 'en';
const aki = new Aki({ region });
const run = async () => {
const region = 'en';
const aki = new Aki({ region });
await aki.start();
const myAnswer = 0; // yes = 0
await aki.step(myAnswer);
if (aki.progress >= 70 || aki.currentStep >= 78) {
await aki.win();
console.log('firstGuess:', aki.answers);
console.log('guessCount:', aki.guessCount);
}
}
run().catch(console.error);
The child mode prevents showing explicit questions. However, the results (from aki.win()
) will still contain characters that do contain NSFW (non-child mode content). To check if the images contain NSFW content, you need to check for a property called nsfw which will be true or false (this can be inaccurate to some degree) or filter by the property pseudo
. The pseudo
property is a string that marks NSFW content with an 'X'
or other NSFW term to describe the character. When child mode is enabled on the site and a NSFW character is guessed, Akinator says, "I know who you are thinking of, but I believe this is not for young people".
const { Aki } = require('aki-api');
const run = async () => {
const region = 'en';
const childMode = true;
const aki = new Aki({ region, childMode });
await aki.start();
const myAnswer = 0; // yes = 0
await aki.step(myAnswer);
if (aki.progress >= 70 || aki.currentStep >= 78) {
await aki.win();
console.log('firstGuess:', aki.answers);
console.log('guessCount:', aki.guessCount);
}
}
run().catch(console.error);
firstGuess: [
{
"id": "78924",
"name": "YoRHa No.2 Type B \/ 2B",
"id_base": "9241962",
"proba": "0.953825",
"description": "NieR: Automata",
"valide_contrainte": "1",
"ranking": "1678",
"minibase_addable": "0",
"relative_id": "-1",
"pseudo": "TitansBane",
"picture_path": "partenaire\/b\/9241962__1967810663.jpg",
"flag_photo": "2",
"absolute_picture_path": "http:\/\/photos.clarinea.fr\/BL_25_en\/600\/partenaire\/b\/9241962__1967810663.jpg"
},
{
"id": "85376",
"name": "2B",
"id_base": "11509417",
"proba": "0.0286481",
"description": "NieR: Automata",
"valide_contrainte": "1",
"ranking": "25597",
"minibase_addable": "0",
"relative_id": "-1",
"pseudo": "2BIsMyWaifu",
"picture_path": "partenaire\/o\/11509417__321330868.jpg",
"flag_photo": "2",
"absolute_picture_path": "http:\/\/photos.clarinea.fr\/BL_25_en\/partenaire\/o\/11509417__321330868.jpg"
}
]
guessCount: 2
const { Aki } = require('aki-api');
const run = async () => {
const region = 'en';
const aki = new Aki({ region });
await aki.start();
const myAnswer = 1; // no = 1
await aki.step(myAnswer);
await aki.back();
console.log('question:', aki.question);
console.log('answers:', aki.answers);
}
run().catch(console.error);
FAQs
An API for Akinator. Supports up to 15 languages.
The npm package aki-api receives a total of 3,104 weekly downloads. As such, aki-api popularity was classified as popular.
We found that aki-api demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.