1.0.1 • Published 4 years ago

waifulabs-api v1.0.1

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

Waifulabs-API

Minimal (<50 lines) OOP implementation to interact with waifulabs API

Installation

npm i waifulabs-api

Example

Also available in example.js.

const fs = require("fs"), Waifu = require("waifulabs-api");

const dir = i => `example-step-${i}`;
// Clean up directory
for (const i in "0000") fs.existsSync(dir(i)) && fs.rmSync(dir(i), { recursive: true, force: true }), fs.mkdirSync(dir(i));

// Helper function to dump the buffers
const dumper = (step = 0, prefix = "waifu") =>
    (d, i) => fs.writeFileSync(`${dir(step)}/${[prefix, i].join("-")}.jpg`, d.image);

(async() => {
    // Generate new waifu(s)
    const waifu = await Waifu.generate();
    waifu.images.map(dumper(waifu.step)); // Step0 doesn't have a selected waifu

    // waifu.proceed takes an index from -1 to 15 where -1 is to keep the current one while 0 - 15 are to choose from the generated ones
    for (let _ = 0; _ < 3; _++) {
        await waifu.proceed(); // Default to 0 on step0 or -1 otherwise
        waifu.images.concat([waifu.curr]).map(dumper(waifu.step));
    }

    // Go back to previous selected waifu
    waifu.back();
    waifu.back();
    waifu.back();

    // Now proceed again but with 11th waifu as baseline
    for (let _ = 0; _ < 3; _++) {
        await waifu.proceed(10);
        waifu.images.concat([waifu.curr]).map(dumper(waifu.step, "new"));
    }

    // Refresh waifu with current step and seeds
    await waifu.refresh();
    waifu.images.concat([waifu.curr]).map(dumper(waifu.step, "refreshed"));

    // Getting product (PILLOW or POSTER) images in buffers
    fs.writeFileSync(`${dir(3)}/pillow.jpg`, await waifu.getProduct("PILLOW"));
    fs.writeFileSync(`${dir(3)}/post.jpg`, await waifu.getProduct("POSTER"));
})();
1.0.1

4 years ago

1.0.0

4 years ago