nshiba / narou4j

小説家になろうAPIのJavaラッパーライブラリ
Other
15 stars 3 forks source link

なろうのジャンルの仕様変更によるものと思われるバグの報告 #1

Closed Jamu2800 closed 2 years ago

Jamu2800 commented 2 years ago

バグの内容

Nコードを指定して小説情報を取得した際にエラーが出てしまいます。

予想される原因

パッケージのenums内にあるNovelGenreに存在するIDとなろうAPIのIDが仕様変更になったこと一致しなくなり、エラーが発生していると思います。

表示されるエラー

com.fasterxml.jackson.databind.JsonMappingException: no such enum object for the id: 101

暫定的な対処

とりあえず私は以下のようにenumを書き換えることで応急処置をしましたが、このライブラリのことを知り尽くしているわけではないので別の不具合が発生する可能性があります... ただ現状とりあえずエラー無く動いています `public enum NovelGenre { LOVE_ANOTHER_WORLD(101), LOVE_REAL_WORLD(102), FANTASY_HIGH(201), FANTASY_LOW(202), LITERATURE_PURE(301), LITERATURE_HUMAN_DRAMA(302), LITERATURE_HISTORY(303), LITERATURE_REASONING(304), LITERATURE_HORROR(305), LITERATURE_ACTION(306), LITERATURE_COMEDY(307), SF_VR_GAME(401), SF_SPACE(402), SF_SCIENCE_FICTION(403), SF_PANIC(404), OTHER_FAIRY_TALE(9901), OTHER_POETRY(9902), OTHER_ESSAY(9903), OTHER_REPLAY(9904), OTHER(9905), NON_GENRE(9801);

private int id;

private NovelGenre(int id) {
    this.id = id;
}

public int getId() {
    return this.id;
}

public static NovelGenre valueOf(int id) {
    for (NovelGenre genre : values()) {
        if (genre.getId() == id) {
            return genre;
        }
    }

    throw new IllegalArgumentException("no such enum object for the id: " + id);
}

} `

nshiba commented 2 years ago

丁寧なバグ報告ありがとうございます!

暫定的な対処まで書いてくださり助かります。 こちらを参考にバグ修正をしてみますね。