Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/katsutedev/mal4j
Java wrapper for the official MyAnimeList API
https://github.com/katsutedev/mal4j
anime api api-anime api-manga java json lib library mal mal4j manga myanimelist myanimelist-api myanimelistapi-wrapper oauth oauth2 rest rest-api
Last synced: about 3 hours ago
JSON representation
Java wrapper for the official MyAnimeList API
- Host: GitHub
- URL: https://github.com/katsutedev/mal4j
- Owner: KatsuteDev
- License: gpl-2.0
- Created: 2020-11-21T21:09:54.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-04-22T11:59:56.000Z (7 months ago)
- Last Synced: 2024-04-22T12:02:20.347Z (7 months ago)
- Topics: anime, api, api-anime, api-manga, java, json, lib, library, mal, mal4j, manga, myanimelist, myanimelist-api, myanimelistapi-wrapper, oauth, oauth2, rest, rest-api
- Language: Java
- Homepage: https://katsute.dev/product/mal4j
- Size: 7.13 MB
- Stars: 35
- Watchers: 2
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Mal4J is a Java wrapper for the [MyAnimeList](https://myanimelist.net/) API. This library is compatible with Java 8+, Java 9+ modules, and Android.
This library supports read and write operations, including list updates.
## Installation
Mal4J requires at least Java 8. No additional dependencies/libraries are required.
Compiled binaries can be installed from:
- [Maven Central](https://mvnrepository.com/artifact/dev.katsute/mal4j)
- [GitHub Packages](https://github.com/KatsuteDev/Mal4J/packages/1769630)
- [Releases](https://github.com/KatsuteDev/Mal4J/releases)See [setup](https://github.com/KatsuteDev/Mal4J/blob/main/setup.md#readme) for steps to authenticate and actually use this library.
## Features
#### Search Queries
Find Anime and Manga by search, ranking, season, and suggestions.
```java
MyAnimeList mal = MyAnimeList.withClientID("");
List search =
mal.getAnime()
.withQuery("さくら荘のペットな彼女")
.withLimit(1)
.withOffset(1)
.includeNSFW(false)
.search();
```#### Anime and Manga Lists
Read and edit your Anime and Manga listings.
```java
MyAnimeList mal = MyAnimeList.withToken("");
MangaListStatus status =
mal.updateMangaListing(28107)
.status(MangaStatus.Reading)
.volumesRead(7)
.chaptersRead(2)
.rereading(false)
.priority(Priority.High)
.timesReread(0)
.rereadValue(RereadValue.VeryHigh)
.tags("tags", "more tags")
.comments("comments")
.update();
```#### Everything Else
**All** information provided in the [MyAnimeList API](https://myanimelist.net/apiconfig/references/api/v2) including Anime, Manga, forums, genres, pictures, statistics, and characters, are accessible in this library.
```java
MyAnimeList mal = MyAnimeList.withClientID("");
Anime anime = mal.getAnime(13759);String ja = anime.getAlternativeTitles().getJapanese();
Genre[] genres = anime.getGenres();
RelatedAnime[] relatedAnime = anime.getRelatedAnime();
AnimeRecommendation[] recs = anime.getRecommendations();
OpeningTheme[] op = anime.getOpeningThemes();
Video[] PV = anime.getVideos();
List characters = anime.getCharacters().search();Character character = mal.getCharacter(61371);
Person person = mal.getPerson(10765);
```## Contributing
#### Before you start
For Anime/Manga list tests *Sakura-sou no Pet na Kanojo* ([Anime#13759](https://myanimelist.net/anime/13759) and [Manga#28107](https://myanimelist.net/manga/28107)) will be used.
The test cases will create a backup of your list in the `anime-list.txt` and `manga-list.txt` files. Make sure you fix your ratings and any other information that might be overwritten by this test.
Ignore test failures for these known issues: [**⚠️ External Issues**](https://github.com/KatsuteDev/Mal4J/projects/10).
#### Running Tests Locally
For local tests you can use Java 8+, however only methods in the Java 8 API may be used. The `src/main/java9` and `src/main/java11` folders should not be marked as a source root.
Run tests locally by adding a text file named `client.txt` that contains the client ID in the `src/test/java/resources` directory.
Please note that the client ID being used for tests must not have a client secret and must have an app redirect url of `http://localhost:5050`.
#### Running Tests using GitHub Actions
Tests can be run using GitHub Actions by running the `MyAnimeList CI` workflow manually in the actions tab of your fork. Note that this requires two secrets, a `MAL_CLIENT` which contains the client ID, and a `MAL_TOKEN` which contains the OAuth token (ex: `Bearer `).
##
This library is released under the [GNU General Public License (GPL) v2.0](https://github.com/KatsuteDev/Mal4J/blob/main/LICENSE).
* [@Katsute](https://github.com/Katsute) and [@KatsuteDev](https://github.com/KatsuteDev) are not affiliated with MyAnimeList.
* By using the MyAnimeList API you are subject to their [Terms Of Service](https://myanimelist.net/static/apiagreement.html).