An open API service indexing awesome lists of open source software.

https://github.com/chez14/node-myanimelist-url-to-id

MyAnimeList URL to ID converter
https://github.com/chez14/node-myanimelist-url-to-id

converter myanimelist myanimelist-api parser

Last synced: 4 months ago
JSON representation

MyAnimeList URL to ID converter

Awesome Lists containing this project

README

        

# MyAnimeList Url to ID Parser/Converter

Convert your MyAnimeList URL to the respective's object ID. This can be usefull
when you're trying to parse MyAnimeList URl's to extract their ID.

Yes, we support TypeScript.

## Supported Url
- Anime
- Manga
- Character (Both Manga and Anime)

## Usage

### Installation

```bash
npm i -s myanimelist-url-to-id

# OR

yarn add myanimelist-url-to-id
```

### Use them in your project

```ts
import { getCharaId } from 'myanimelist-url-to-id';

console.log(getCharaId('https://myanimelist.net/character/81239/Yuuma_Kuga'));
// 81239
```

## Documentation

You can actually see the usage of this library on the [`__test__`folder](src/__test__/), and go with the documentation that I made on the functions comment (that shows up on Intellisense). But for clarity I'll write it here too.

### `AnimeUtil` Class

#### `getAnimeId (url: string): number`

Will returns something like `34599`

#### `getAnimeUrl (id: number): string`

Will return something like `https://myanimelist.net/anime/34599`

### `CharaUtil` Class

**Note**: Chara stands for Character.

#### `getCharaId(url: string): number`

Will return something like `140046`

#### `getCharaUrl(id: number): string`

Will return something like `https://myanimelist.net/character/140046`

### `MangaUtil` Class

#### `getMangaId(url: string): number`

Will return something like `91941`

#### `getMangaUrl(id: number): string`

Will return something like `https://myanimelist.net/manga/91941`

### `InvalidUrl` Exception

the `getAnimeId`, `getCharaId` and `getMangaId` will throws `InvalidUrl` exception when the Url doesn't match the pattern we have. Please handle it properly.

```js
import {InvalidUrl} from "myanimelist-url-to-id/build/exceptions"
try {
let animeId = getAnimeId('malformed-url');
} catch (e) {
if(e instanceof InvalidUrl) {
// handle your error here.
}
}
```

## FAQ

**Do this library requires MAL API?** \
Short answer — No. We just parse your url and give you back the ID.

**Do I need to access MAL API to get the full information?** \
Yes.

**How can this be an FAQ when you wrote it before the package released?** \
[In this case, "FAQ" stands for "Fully Anticipated Questions"](https://www.youtube.com/watch?v=8YUWDrLazCg).

## License

[MIT](./LICENSE).