gotson / komga

Media server for comics/mangas/BDs/magazines/eBooks with API, OPDS and Kobo Sync support
https://komga.org
MIT License
3.85k stars 232 forks source link

feat: add anilist metadata provider #1431

Closed kaiserbh closed 6 months ago

kaiserbh commented 6 months ago

Description: Added AniList Metadata Provider. The AniList provider allows us to fetch detailed metadata for manga series directly from AniList's database.

Key Features Introduced:

Note on Testing:

As I'm currently expanding my knowledge of Spring and its testing frameworks, this submission does not include unit tests for the new provider. I've conducted thorough manual testing with my library, ensuring the provider's functionality meets our application's standards and performs as expected across various scenarios. I plan to delve deeper into Spring's testing capabilities to add comprehensive tests in the near future.

Important Configuration Note:

For the AniList Metadata Provider to function optimally, series within the library must be organized in a specific manner. The root folder name plays a critical role in this process, as it should be named appropriately to include the series title and publication year (Has to be the original year it was released). This naming convention ensures precise extraction and matching of metadata. For example:

├── Berserk (2003)
│   ├── Berserk v01 (2003) (Digital) (danke-Empire).cbz
│   └── Berserk v02 (2004) (Digital) (danke-Empire).cbz
├── Bleach (2004)
│   └── Bleach v01 (2004) (Digital) (AnHeroGold-Empire).cbz
...

Proper naming facilitates accurate title and year extraction, crucial for the metadata provider to perform as intended.

P.S I don't use kotlin much so if there is a better way to do things do let me know!

gotson commented 6 months ago

Thanks for the PR, however at the moment i am not interested in adding any online metadata provider. The reason behind this is that it would require more work to properly handle online providers on different areas:

It's not small work, and would require significant rework on the current data model too.