Skittyblock / aidoku-community-sources

Public sources for the Aidoku application
Apache License 2.0
418 stars 144 forks source link

ComicK missing manga metadata #530

Closed Wiz1991 closed 6 months ago

Wiz1991 commented 9 months ago

https://github.com/Skittyblock/aidoku-community-sources/blob/3a95a55bcd00c2f1c3e860eafc33dbfea027f6ff/src/rust/multi.comick/src/parser.rs#L221C6-L221C6

When parsing the listing, only the title is loaded, this ends up with all of the comick manga being empty. No further information available even after refreshing metadata.

Skittyblock commented 9 months ago

the code you pointed too isn't exactly the issue, that's meant to be empty. the issue is that the parsing it tries to do in parse_manga_details seems to not work.

almir1904 commented 8 months ago

I'm a total noob with rust but the issue is that comick changed the json syntax when they changed to comick.app it changed the genres part and I think it breaks the other stuff too because of this

I got the genres part working under windows with f this code but I can't really find out how to port it to the original

let genres = match &json["comic"] {
    JsonValue::Object(comic) => match &comic["md_comic_md_genres"] {
        JsonValue::Array(value) => value,
        _ => panic!("Failed to get genres as array"),
    },
    _ => panic!("Failed to get comic"),
};

let categories: Vec<String> = genres
    .iter()
    .map(|genre| {
        let genre_name = genre["md_genres"]["name"]
            .as_str()
            .map(|s| s.to_string())
            .unwrap_or_else(|| {
                panic!("Failed to get genre name: {:?}", genre);
            });

        genre_name
    })
    .collect();

Maybe someone with more rust experience could fix it