DeadlyEmbrace / arm-server

πŸ“ƒ A service for mapping Anime ID's between AniList, AniDB, MAL, and Kitsu.

Home Page:https://relations.yuna.moe

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

arm-server

This app uses data from anime-offline-database - fetching and updating itself every 24 hours.

Get notifications on important API changes

Subscribe to new releases in this repo:

image

Missing or duplicate entries

Some entries in the database are not mapped correctly due to inconsistent naming - the owner of anime-offline-database cannot fix them due to complexity. Therefore this service has manual rules that combines known failures.

You can help add rules by submitting a manual rule request.

API

Base URL: https://relations.yuna.moe

enum Source {
  anilist,
  anidb,
  myanimelist,
  kitsu,
}

Get IDS:

POST /api/ids

Either use GET with query parameters: ?source={Source}&id={number}

or use POST with a JSON body:

{ "anilist": 1337 }

[{ "anilist": 1337 }, { "anilist": 69 }, { "anidb": 420 }]

Response

interface Entry {
  anilist: number | null
  anidb: number | null
  myanimelist: number | null
  kitsu: number | null
}

// If JSON body is a single object
// { "anilist": 1337 } => Entry | null
// // If JSON body is an array of objects
// [{ ... }] => Array<Entry | null>

The response code will always be 200 (OK). If an entry is not found null is returned instead.

Development

  1. Clone the project
  2. Install dependencies - yarn
  3. Run database migrations - yarn migrate
  4. Download data (optional) - yarn fetch-data
  5. Start the server - yarn dev

If the database connection fails double check that your NODE_ENV is set to development.

About

πŸ“ƒ A service for mapping Anime ID's between AniList, AniDB, MAL, and Kitsu.

https://relations.yuna.moe

License:GNU Affero General Public License v3.0


Languages

Language:TypeScript 94.8%Language:JavaScript 4.4%Language:Dockerfile 0.5%Language:Shell 0.3%