modb stands for Manami Offline DataBase. Repositories prefixed with this acronym are used to create the manami-project/anime-offline-database.
This lib can serialize and deserialize (serde) both the anime dataset file as well as the files for the dead entries.
Create an instance of the respective JsonSerializer
:
// deserialize a the JSON String of the anime dataset file
val animeListDeserializer = AnimeListJsonStringDeserializer()
// deserialize a the JSON String of a dead entries file
val deadEntriesDeserializer = DeadEntriesJsonStringDeserializer()
Wrap the instance above in a ExternalResourceJsonDeserializer
to be able to deserialize a URL
or a Path
val animeDatasetFileDeserializer = DefaultExternalResourceJsonDeserializer<Anime>(deserializer = AnimeListJsonStringDeserializer())
val deadEntriesFileDeserializer = DefaultExternalResourceJsonDeserializer<AnimeId>(deserializer = DeadEntriesJsonStringDeserializer())
Now you can either deserialize the anime dataset file or a dead entries file by using a URL
or a Path
.
The DefaultExternalResourceJsonDeserializer
can also handle zipped files, but the zip file must only contain a single JSON file.
Example:
val deserializer = DefaultExternalResourceJsonDeserializer<Anime>(deserializer = AnimeListJsonStringDeserializer())
val allAnime: List<Dataset> = deserializer.deserialize(URI("https://raw.githubusercontent.com/manami-project/anime-offline-database/master/anime-offline-database.json").toURL())