Skip to content

mkej/Universalis

 
 

Repository files navigation

Universalis

A crowdsourced market board aggregator.

Endpoint Reference

  • /api/:world/:item
  • /api/history/:world/:item
  • /api/extra/content/:contentID
  • /api/extra/stats/upload-history
  • /api/extra/stats/recently-updated
  • /api/extra/stats/least-recently-updated
  • /upload/:apiKey

Client-app Development

Please see goat's ACT plugin for an example of how to collect and upload market board data.

Development

Requires Node.js v10 or higher, PHP, MariaDB, Redis, Composer, and MongoDB Community Edition v4.2 or higher.

Also build a DataExports using SaintCoinach (Overview TODO)

Uncomment/add in php.ini:

extension=redis.so

MariaDB commands:

CREATE DATABASE `dalamud`;
CREATE USER 'dalamud'@localhost IDENTIFIED BY 'dalamud';

Setup script:

npm install -g yarn
npm install
git submodule init
git submodule update
cd mogboard
git submodule init
git submodule update
composer install
php bin/console doctrine:schema:create
php bin/console PopulateGameDataCommand -vvv
yarn
yarn dev
symfony server:start -vvv --port 8000
cd ..
npm run build
npm start

Uploads

Listings upload format (JSON):

{
    worldID: number;
    itemID: number;
    uploaderID: string | number;
    listings: [{
        listingID: string;
        hq: boolean;
        materia?: ItemMateria[];
        pricePerUnit: number;
        quantity: number;
        total?: number;
        retainerID: string;
        retainerName: string;
        retainerCity: number;
        creatorName?: string;
        onMannequin?: boolean;
        sellerID: string;
        creatorID?: string;
        lastReviewTime: number;
        stainID?: number;
    }];
}

History upload format (JSON):

{
    worldID: number;
    itemID: number;
    uploaderID: number | string;
    entries: [{
        hq: boolean;
        pricePerUnit: number;
        quantity: number;
        total?: number;
        buyerName: string;
        timestamp: number;
        onMannequin?: boolean;
        sellerID: string;
    }];
}

Crafter upload format (JSON):

{
    contentID: number;
    characterName: string;
}

About

A crowdsourced market board aggregator.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 81.5%
  • JavaScript 18.5%