Пример #1
0
void UserLoader::parseAnime(const QJsonObject &t_reply) {
  QJsonObject result = t_reply;
  auto id = QString::number(result.value("id").toInt());
  auto title_language = User::sharedUser()->titleLanguage();

  AnimePtr anime = User::sharedUser()->getAnimeByID(id);

  if (anime == AnimePtr(nullptr)) {
    anime = Anime::makeAnime();

    User::sharedUser()->addKnownAnime(anime);
  }

  auto description = result.value("description").toString();
  auto airing = result.value("airing").toObject();

  anime->setDuration(result.value("duration").toInt());
  anime->setDescription(description);
  anime->setTitleRomaji(result.value("title_romaji").toString());
  anime->setTitleJapanese(result.value("title_japanese").toString());
  anime->setTitleEnglish(result.value("title_english").toString());
  anime->setType(result.value("type").toString());
  anime->setAiringStatus(result.value("airing_status").toString());
  anime->setAverageScore(result.value("average_score").toString().toDouble());
  anime->setTotalEpisodes(result.value("total_episodes").toInt());
  anime->setAdult(result.value("adult").toBool());
  anime->setTitle(result.value(title_language).toString());
  anime->setNextEpisode(airing.value("next_episode").toInt());
  anime->setCountdown(airing.value("countdown").toInt());

  anime->finishLoad();

  qDebug() << "Loaded extra data for anime" << anime->title();
}