KatsuteDev / Mal4J

Java wrapper for the official MyAnimeList API
https://katsute.dev/product/mal4j
GNU General Public License v2.0
36 stars 4 forks source link

Node Anime/Manga missing most fields #382

Closed Katsute closed 1 year ago

Katsute commented 1 year ago

Operating System

*

Java Runtime

Java

Java Version

*

Release Version

3.0.3

Issue

Endpoints that use

[
    node {
        anime { ... }
        ...
    }
]

return the bare minimum information, using fields do not expand missing

Contains only id, title, picture

Add AnimeLimitedPreview and MangaLimitedPreview with only above mentioned fields, populate on all other methods

Skip excessive null checks, instead set all fields to non final, replace isPreview boolean with internal STATEinstead: [NODE, PREVIEW, FULL]

if NODE or PREVIEW populate and convert to FULL if method requested, if FULL return field value

Repopulate ALL values, ignore existing ones

How to replicate

Occurs on:

Katsute commented 1 year ago

mal anime/13759?fields=related_anime

ghost commented 1 year ago
{
    "id": 13759,
    "title": "Sakura-sou no Pet na Kanojo",
    "main_picture": {
        "medium": "https://api-cdn.myanimelist.net/images/anime/4/43643.jpg",
        "large": "https://api-cdn.myanimelist.net/images/anime/4/43643l.jpg"
    },
    "related_anime": []
}
Katsute commented 1 year ago

mal anime/11757?fields=related_anime,recommendations,alternative_titles

ghost commented 1 year ago
{
    "id": 11757,
    "title": "Sword Art Online",
    "main_picture": {
        "medium": "https://api-cdn.myanimelist.net/images/anime/11/39717.jpg",
        "large": "https://api-cdn.myanimelist.net/images/anime/11/39717l.jpg"
    },
    "related_anime": [
        {
            "node": {
                "id": 16099,
                "title": "Sword Art Online: Sword Art Offline",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/8/43461.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/8/43461l.jpg"
                }
            },
            "relation_type": "other",
            "relation_type_formatted": "Other"
        },
        {
            "node": {
                "id": 20021,
                "title": "Sword Art Online: Extra Edition",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/1927/121997.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/1927/121997l.jpg"
                }
            },
            "relation_type": "sequel",
            "relation_type_formatted": "Sequel"
        },
        {
            "node": {
                "id": 21881,
                "title": "Sword Art Online II",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/1223/121999.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/1223/121999l.jpg"
                }
            },
            "relation_type": "sequel",
            "relation_type_formatted": "Sequel"
        },
        {
            "node": {
                "id": 42916,
                "title": "Sword Art Online: Progressive Movie - Hoshi Naki Yoru no Aria",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/1590/116274.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/1590/116274l.jpg"
                }
            },
            "relation_type": "alternative_version",
            "relation_type_formatted": "Alternative version"
        },
        {
            "node": {
                "id": 53529,
                "title": "Sword Art Online (Original Movie)",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/1537/130580.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/1537/130580l.jpg"
                }
            },
            "relation_type": "other",
            "relation_type_formatted": "Other"
        },
        {
            "node": {
                "id": 53588,
                "title": "Sword Art Online: Full Dive - Opening Eizou",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/1889/130946.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/1889/130946l.jpg"
                }
            },
            "relation_type": "other",
            "relation_type_formatted": "Other"
        }
    ],
    "recommendations": [
        {
            "node": {
                "id": 17265,
                "title": "Log Horizon",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/5/84004.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/5/84004l.jpg"
                }
            },
            "num_recommendations": 175
        },
        {
            "node": {
                "id": 11759,
                "title": "Accel World",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/1002/135430.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/1002/135430l.jpg"
                }
            },
            "num_recommendations": 121
        },
        {
            "node": {
                "id": 14345,
                "title": "Btooom!",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/4/40977.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/4/40977l.jpg"
                }
            },
            "num_recommendations": 86
        },
        {
            "node": {
                "id": 28121,
                "title": "Dungeon ni Deai wo Motomeru no wa Machigatteiru Darou ka",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/2/70187.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/2/70187l.jpg"
                }
            },
            "num_recommendations": 73
        },
        {
            "node": {
                "id": 19815,
                "title": "No Game No Life",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/1074/111944.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/1074/111944l.jpg"
                }
            },
            "num_recommendations": 53
        },
        {
            "node": {
                "id": 29803,
                "title": "Overlord",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/7/88019.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/7/88019l.jpg"
                }
            },
            "num_recommendations": 33
        },
        {
            "node": {
                "id": 48,
                "title": ".hack//Sign",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/1443/94665.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/1443/94665l.jpg"
                }
            },
            "num_recommendations": 28
        },
        {
            "node": {
                "id": 31859,
                "title": "Hai to Gensou no Grimgar",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/13/77976.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/13/77976l.jpg"
                }
            },
            "num_recommendations": 21
        },
        {
            "node": {
                "id": 33926,
                "title": "Quanzhi Gaoshou",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/7/81892.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/7/81892l.jpg"
                }
            },
            "num_recommendations": 16
        },
        {
            "node": {
                "id": 35790,
                "title": "Tate no Yuusha no Nariagari",
                "main_picture": {
                    "medium": "https://api-cdn.myanimelist.net/images/anime/1490/101365.jpg",
                    "large": "https://api-cdn.myanimelist.net/images/anime/1490/101365l.jpg"
                }
            },
            "num_recommendations": 15
        }
    ],
    "alternative_titles": {
        "synonyms": [
            "S.A.O",
            "SAO"
        ],
        "en": "Sword Art Online",
        "ja": "ソードアート・オンライン"
    }
}
Katsute commented 1 year ago

mal anime/11757?fields=related_anime{alternative_titles},recommendations{alternative_titles}

ghost commented 1 year ago
{
    "id": 11757,
    "title": "Sword Art Online",
    "main_picture": {
        "medium": "https://api-cdn.myanimelist.net/images/anime/11/39717.jpg",
        "large": "https://api-cdn.myanimelist.net/images/anime/11/39717l.jpg"
    }
}
Katsute commented 1 year ago

mal anime/13759/characters?fields=first_name,last_name,animeography,animeography{alternative_titles}

ghost commented 1 year ago
{
    "data": [
        {
            "node": {
                "id": 61371,
                "first_name": "Mashiro",
                "last_name": "Shiina"
            },
            "role": "Main"
        },
        {
            "node": {
                "id": 64165,
                "first_name": "Misaki",
                "last_name": "Kamiigusa"
            },
            "role": "Main"
        },
        {
            "node": {
                "id": 64167,
                "first_name": "Nanami",
                "last_name": "Aoyama"
            },
            "role": "Main"
        },
        {
            "node": {
                "id": 64169,
                "first_name": "Sorata",
                "last_name": "Kanda"
            },
            "role": "Main"
        },
        {
            "node": {
                "id": 64171,
                "first_name": "Jin",
                "last_name": "Mitaka"
            },
            "role": "Main"
        },
        {
            "node": {
                "id": 64173,
                "first_name": "Ryuunosuke",
                "last_name": "Akasaka"
            },
            "role": "Main"
        },
        {
            "node": {
                "id": 64175,
                "first_name": "Chihiro",
                "last_name": "Sengoku"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 72753,
                "first_name": "Ayano",
                "last_name": "Iida"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 72755,
                "first_name": "Daichi",
                "last_name": "Miyahara"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 72757,
                "first_name": "Mayu",
                "last_name": "Takasaki"
            },
            "role": "Supporting"
        }
    ],
    "paging": {
        "next": "https://api.myanimelist.net/v2/anime/13759/characters?offset=10&fields=first_name%2Clast_name%2Canimeography%2Canimeographyalternative_titles"
    }
}
Katsute commented 1 year ago

mal anime/13759/characters?fields=first_name,last_name,animeography&limit=1000

ghost commented 1 year ago
{
    "message": "limit",
    "error": "bad_request"
}
Katsute commented 1 year ago

mal anime/13759/characters?fields=first_name,last_name,animeography&limit=100

ghost commented 1 year ago
{
    "data": [
        {
            "node": {
                "id": 61371,
                "first_name": "Mashiro",
                "last_name": "Shiina"
            },
            "role": "Main"
        },
        {
            "node": {
                "id": 64165,
                "first_name": "Misaki",
                "last_name": "Kamiigusa"
            },
            "role": "Main"
        },
        {
            "node": {
                "id": 64167,
                "first_name": "Nanami",
                "last_name": "Aoyama"
            },
            "role": "Main"
        },
        {
            "node": {
                "id": 64169,
                "first_name": "Sorata",
                "last_name": "Kanda"
            },
            "role": "Main"
        },
        {
            "node": {
                "id": 64171,
                "first_name": "Jin",
                "last_name": "Mitaka"
            },
            "role": "Main"
        },
        {
            "node": {
                "id": 64173,
                "first_name": "Ryuunosuke",
                "last_name": "Akasaka"
            },
            "role": "Main"
        },
        {
            "node": {
                "id": 64175,
                "first_name": "Chihiro",
                "last_name": "Sengoku"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 72753,
                "first_name": "Ayano",
                "last_name": "Iida"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 72755,
                "first_name": "Daichi",
                "last_name": "Miyahara"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 72757,
                "first_name": "Mayu",
                "last_name": "Takasaki"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 72759,
                "first_name": "Noriko",
                "last_name": ""
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 72761,
                "first_name": "Yuuko",
                "last_name": "Kanda"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 73507,
                "first_name": "Rita",
                "last_name": "Ainsworth"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 73947,
                "first_name": "Koharu",
                "last_name": "Shiroyama"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 73949,
                "first_name": "Momoko",
                "last_name": "Souichirou"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 74291,
                "first_name": "Akiko",
                "last_name": "Kanda"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 74293,
                "first_name": "Father",
                "last_name": "Kanda"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 74295,
                "first_name": "Shiori",
                "last_name": "Nanba"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 74695,
                "first_name": "Kazuki",
                "last_name": "Fujisawa"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 75146,
                "first_name": "Yayoi",
                "last_name": "Honjou"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 75148,
                "first_name": "Shiho",
                "last_name": "Fukaya"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 75350,
                "first_name": "Saori",
                "last_name": "Himemiya"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 75352,
                "first_name": "Souichirou",
                "last_name": "Tatebayashi"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 75680,
                "first_name": "Fuuka",
                "last_name": "Kamiigusa"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 76038,
                "first_name": "Otoha",
                "last_name": "Nakano"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 81267,
                "first_name": "Iori",
                "last_name": "Himemiya"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 81325,
                "first_name": "Kanna",
                "last_name": "Hase"
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 84923,
                "first_name": "Maid-chan",
                "last_name": ""
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 149192,
                "first_name": "Principal",
                "last_name": ""
            },
            "role": "Supporting"
        },
        {
            "node": {
                "id": 149193,
                "first_name": "Gym teacher",
                "last_name": ""
            },
            "role": "Supporting"
        }
    ],
    "paging": {}
}