void TvShow::clearSeasonImageType(int imageType) { QMapIterator<int, QMap<int, QByteArray> > it(m_seasonImages); while (it.hasNext()) { it.next(); m_seasonImages[it.key()].insert(imageType, QByteArray()); } QMapIterator<int, QMap<int, bool> > itC(m_hasSeasonImageChanged); while (itC.hasNext()) { itC.next(); m_hasSeasonImageChanged[itC.key()].insert(imageType, false); } }
// Return the configuration for desktop packages QStringList desktopSelection::getDeskPkgList() { QStringList cfgList; bool skipCat; // For neatness sake, get the parents first QTreeWidgetItemIterator it(treeWidgetDesktopPackages); while (*it) { if ( !(*it)->parent() && ( (*it)->checkState(0) == Qt::Checked || (*it)->checkState(0) == Qt::PartiallyChecked ) ) { // Make sure this isn't just a placeholder category skipCat = false; for (int z=0; z < listDeskPkgs.count(); ++z) if ( (*it)->text(0) == listDeskPkgs.at(z).at(0) && \ listDeskPkgs.at(z).at(5) == "CATEGORY" ) skipCat=true; if ( ! skipCat ) // Add it cfgList << (*it)->text(0); } ++it; } // Now get the children QTreeWidgetItemIterator itC(treeWidgetDesktopPackages); while (*itC) { if ((*itC)->parent() && ( (*itC)->checkState(0) == Qt::Checked || (*itC)->checkState(0) == Qt::PartiallyChecked ) ) { // Make sure this isn't just a placeholder category skipCat = false; for (int z=0; z < listDeskPkgs.count(); ++z) if ( (*itC)->text(0) == listDeskPkgs.at(z).at(0) && \ listDeskPkgs.at(z).at(5) == "CATEGORY" ) skipCat=true; if ( ! skipCat ) cfgList << (*itC)->text(0); } ++itC; } return cfgList; }
/** * @brief Parses JSON data and assigns it to the given concert object * Handles all types of data from TMDb (info, releases, trailers, images) * @param json JSON data * @param concert Concert object * @param infos List of infos to load */ void TMDbConcerts::parseAndAssignInfos(QString json, Concert *concert, QList<int> infos) { qDebug() << "Entered"; QScriptValue sc; QScriptEngine engine; sc = engine.evaluate("(" + QString(json) + ")"); // Infos if (sc.property("imdb_id").isValid() && !sc.property("imdb_id").toString().isEmpty()) concert->setId(sc.property("imdb_id").toString()); if (infos.contains(ConcertScraperInfos::Title) && sc.property("title").isValid()) concert->setName(sc.property("title").toString()); if (infos.contains(ConcertScraperInfos::Overview) && sc.property("overview").isValid() && !sc.property("overview").isNull()) concert->setOverview(sc.property("overview").toString()); if (infos.contains(ConcertScraperInfos::Rating) && sc.property("vote_average").isValid()) concert->setRating(sc.property("vote_average").toNumber()); if (infos.contains(ConcertScraperInfos::Tagline) && sc.property("tagline").isValid() && !sc.property("tagline").isNull()) concert->setTagline(sc.property("tagline").toString()); if (infos.contains(ConcertScraperInfos::Released) && sc.property("release_date").isValid()) concert->setReleased(QDate::fromString(sc.property("release_date").toString(), "yyyy-MM-dd")); if (infos.contains(ConcertScraperInfos::Runtime) && sc.property("runtime").isValid()) concert->setRuntime(sc.property("runtime").toInteger()); if (infos.contains(ConcertScraperInfos::Genres) && sc.property("genres").isArray()) { QScriptValueIterator itC(sc.property("genres")); while (itC.hasNext()) { itC.next(); QScriptValue vC = itC.value(); if (vC.property("id").toString().isEmpty()) continue; concert->addGenre(vC.property("name").toString()); } } // Trailers if (infos.contains(ConcertScraperInfos::Trailer) && sc.property("youtube").isArray()) { QScriptValueIterator itC(sc.property("youtube")); while (itC.hasNext()) { itC.next(); QScriptValue vC = itC.value(); if (vC.property("source").toString().isEmpty()) continue; concert->setTrailer(QUrl(Helper::formatTrailerUrl(QString("http://www.youtube.com/watch?v=%1").arg(vC.property("source").toString())))); break; } } // Images if (infos.contains(ConcertScraperInfos::Backdrop) && sc.property("backdrops").isArray()) { QScriptValueIterator itB(sc.property("backdrops")); while (itB.hasNext()) { itB.next(); QScriptValue vB = itB.value(); if (vB.property("file_path").toString().isEmpty()) continue; Poster b; b.thumbUrl = m_baseUrl + "w780" + vB.property("file_path").toString(); b.originalUrl = m_baseUrl + "original" + vB.property("file_path").toString(); b.originalSize.setWidth(vB.property("width").toString().toInt()); b.originalSize.setHeight(vB.property("height").toString().toInt()); concert->addBackdrop(b); } } if (infos.contains(ConcertScraperInfos::Poster) && sc.property("posters").isArray()) { QScriptValueIterator itB(sc.property("posters")); while (itB.hasNext()) { itB.next(); QScriptValue vB = itB.value(); if (vB.property("file_path").toString().isEmpty()) continue; Poster b; b.thumbUrl = m_baseUrl + "w342" + vB.property("file_path").toString(); b.originalUrl = m_baseUrl + "original" + vB.property("file_path").toString(); b.originalSize.setWidth(vB.property("width").toString().toInt()); b.originalSize.setHeight(vB.property("height").toString().toInt()); concert->addPoster(b); } } // Releases if (infos.contains(ConcertScraperInfos::Certification) && sc.property("countries").isArray()) { QString locale; QString us; QString gb; QScriptValueIterator itB(sc.property("countries")); while (itB.hasNext()) { itB.next(); QScriptValue vB = itB.value(); if (vB.property("iso_3166_1").toString() == "US") us = vB.property("certification").toString(); if (vB.property("iso_3166_1").toString() == "GB") gb = vB.property("certification").toString(); if (vB.property("iso_3166_1").toString().toLower() == m_language) locale = vB.property("certification").toString(); } if (!locale.isEmpty()) concert->setCertification(locale); else if (!us.isEmpty()) concert->setCertification(us); else if (!gb.isEmpty()) concert->setCertification(gb); } }
void IMDB::parseAndAssignInfos(QString json, Movie *movie, QList<int> infos) { QScriptValue sc; QScriptEngine engine; sc = engine.evaluate("(" + QString(json) + ")"); if (infos.contains(MovieScraperInfos::Title) && sc.property("title").isValid()) movie->setName(Helper::urlDecode(sc.property("title").toString())); if (infos.contains(MovieScraperInfos::Overview) && sc.property("plot").isValid() && !sc.property("plot").isNull()) { movie->setOverview(sc.property("plot").toString()); if (sc.property("plot_simple").isValid() && !sc.property("plot_simple").isNull() && !sc.property("plot_simple").toString().isEmpty()) movie->setOutline(sc.property("plot_simple").toString()); else if (Settings::instance()->usePlotForOutline()) movie->setOutline(sc.property("plot").toString()); } if (infos.contains(MovieScraperInfos::Rating) && sc.property("rating").isValid()) movie->setRating(sc.property("rating").toNumber()); if (infos.contains(MovieScraperInfos::Rating) && sc.property("rating_count").isValid()) movie->setVotes(sc.property("rating_count").toInteger()); if (infos.contains(MovieScraperInfos::Certification) && sc.property("rated").isValid()) movie->setCertification(Helper::mapCertification(sc.property("rated").toString())); if (infos.contains(MovieScraperInfos::Released) && sc.property("release_date").isValid()) movie->setReleased(QDate::fromString(sc.property("release_date").toString(), "yyyyMMdd")); if (infos.contains(MovieScraperInfos::Runtime) && sc.property("runtime").isArray()) { QScriptValueIterator itR(sc.property("runtime")); if (itR.hasNext()) { itR.next(); QRegExp rx("(\\d+).*"); if (rx.indexIn(itR.value().toString(), 0) != -1) movie->setRuntime(rx.cap(1).toInt()); } } /* if (itC.hasNext()) within the loop might look wrong but * this way the last item is filtered out (contains the number of entries) */ if (infos.contains(MovieScraperInfos::Genres) && sc.property("genres").isArray()) { QScriptValueIterator itC(sc.property("genres")); while (itC.hasNext()) { itC.next(); if (itC.hasNext()) movie->addGenre(Helper::mapGenre(Helper::urlDecode(itC.value().toString()))); } } if (infos.contains(MovieScraperInfos::Director) && sc.property("directors").isArray()) { QStringList directors; QScriptValueIterator itC(sc.property("directors")); while (itC.hasNext()) { itC.next(); if (itC.hasNext()) directors << Helper::urlDecode(itC.value().toString()); } movie->setDirector(directors.join(", ")); } if (infos.contains(MovieScraperInfos::Writer) && sc.property("writers").isArray()) { QStringList writers; QScriptValueIterator itC(sc.property("writers")); while (itC.hasNext()) { itC.next(); if (itC.hasNext()) writers << Helper::urlDecode(itC.value().toString()); } movie->setWriter(writers.join(", ")); } if (infos.contains(MovieScraperInfos::Countries) && sc.property("country").isArray()) { QScriptValueIterator itC(sc.property("country")); while (itC.hasNext()) { itC.next(); if (itC.hasNext()) movie->addCountry(Helper::mapCountry(Helper::urlDecode(itC.value().toString()))); } } if (infos.contains(MovieScraperInfos::Actors) && sc.property("actors").isArray()) { QScriptValueIterator itC(sc.property("actors")); while (itC.hasNext()) { itC.next(); Actor a; a.name = Helper::urlDecode(itC.value().toString()); if (itC.hasNext()) movie->addActor(a); } } if (infos.contains(MovieScraperInfos::Poster) && sc.property("poster").isValid()) { Poster p; p.originalUrl = sc.property("poster").toString(); p.thumbUrl = sc.property("poster").toString(); movie->addPoster(p); } }