Beispiel #1
0
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;
}
Beispiel #3
0
/**
 * @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);
    }

}
Beispiel #4
0
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);
    }
}