Exemplo n.º 1
0
bool VWebUtils::replaceLocalImgWithWarningLabel(QString &p_html)
{
    bool altered = false;

    QString label = QString("<span style=\"font-weight: bold; color: #FFFFFF; background-color: #EE0000;\">%1</span>")
                           .arg(QObject::tr("Insert_Image_HERE"));

    int pos = 0;
    while (pos < p_html.size()) {
        int idx = p_html.indexOf(m_imgTagReg, pos);
        if (idx == -1) {
            break;
        }

        QString urlStr = m_imgTagReg.cap(1);
        QUrl imgUrl(urlStr);

        if (imgUrl.scheme() == "https" || imgUrl.scheme() == "http") {
            pos = idx + m_imgTagReg.matchedLength();
            continue;
        }

        p_html.replace(idx, m_imgTagReg.matchedLength(), label);
        pos = idx + label.size();

        altered = true;
    }

    return altered;
}
Exemplo n.º 2
0
void KryptoniteJobCoverDiscogs::parseImagesHtml( const QByteArray &data, const QVariant &payload )
{
   emit message( tr( "Parsing discogs.com images page" ), data );
   // <div class="image"><a href="/viewimages?release=753791"><img src="http://s.pixogs.com/image/R-150-753791-1155372972.jpeg" alt="Revolverheld - Revolverheld" />
   QRegExp imgRe1( ".*<img[^>]*class=\"shadow image_frame\"[^>]*src=\"([^\"]*)\".*" );
   QRegExp imgRe2( ".*<div class=\"image\">.*<img[^>]*src=\"([^\"]*)\".*" );
   QString s( QString::fromUtf8(data.constData()) );
   QStringList l( s.split("\n", QString::SkipEmptyParts) );
   foreach( s, l )
   {
      if( s.contains( imgRe1 ) )
      {
         QUrl imgUrl( QString(s).replace( imgRe1, "\\1" ) );
         emit requestDownload( this, SIGNAL(imageDownloaded(QByteArray,QVariant)), imgUrl, payload );
         return;
      }
      else if( s.contains( imgRe2 ) )
      {
         QUrl imgUrl( QString(s).replace( imgRe2, "\\1" ) );
         emit requestDownload( this, SIGNAL(imageDownloaded(QByteArray,QVariant)), imgUrl, payload );
         return;
      }
   }
}
Exemplo n.º 3
0
bool VWebUtils::fixImageSrc(const QUrl &p_baseUrl, QString &p_html)
{
    bool changed = false;

#if defined(Q_OS_WIN)
    QUrl::ComponentFormattingOption strOpt = QUrl::EncodeSpaces;
#else
    QUrl::ComponentFormattingOption strOpt = QUrl::FullyEncoded;
#endif

    QRegExp reg("<img src=\"([^\"]+)\"");

    int pos = 0;
    while (pos < p_html.size()) {
        int idx = p_html.indexOf(reg, pos);
        if (idx == -1) {
            break;
        }

        QString urlStr = reg.cap(1);
        QUrl imgUrl(urlStr);

        QString fixedStr;
        if (imgUrl.isRelative()) {
            fixedStr = p_baseUrl.resolved(imgUrl).toString(strOpt);
        } else if (imgUrl.isLocalFile()) {
            fixedStr = imgUrl.toString(strOpt);
        } else if (imgUrl.scheme() != "https" && imgUrl.scheme() != "http") {
            QString tmp = imgUrl.toString();
            if (QFileInfo::exists(tmp)) {
                fixedStr = QUrl::fromLocalFile(tmp).toString(strOpt);
            }
        }

        pos = idx + reg.matchedLength();
        if (!fixedStr.isEmpty() && urlStr != fixedStr) {
            qDebug() << "fix img url" << urlStr << fixedStr;
            pos = pos + fixedStr.size() + 1 - urlStr.size();
            p_html.replace(idx,
                           reg.matchedLength(),
                           QString("<img src=\"%1\"").arg(fixedStr));
            changed = true;
        }
    }

    return changed;
}
Exemplo n.º 4
0
void KryptoniteJobCoverDiscogs::parseItemHtml( const QByteArray &data, const QVariant &payload )
{
   emit message( tr( "Parsing discogs.com item page" ), data );
   //QRegExp imgRe( ".*<a href=\"([^\"]*)\">more images</a>.*" );
   QRegExp imgRe( ".*<a href=\"(/viewimages?[^\"]*)\">.*" );
   QString s( QString::fromUtf8(data.constData()) );
   QStringList l( s.split("\n", QString::SkipEmptyParts) );
   foreach( s, l )
   {
      if( s.contains( imgRe ) )
      {
         QUrl imgUrl( QString(s).replace( imgRe, "http://www.discogs.com\\1" ) );
         emit requestDownload( this, SLOT(parseImagesHtml(QByteArray,QVariant)), imgUrl, payload );
         return;
      }
   }
}
Exemplo n.º 5
0
void CachedImage::cacheImage()
{
    if (m_src.isEmpty()) {
        m_localUrl = "";
        emit localsrcChanged();
        return;
    }

    QUrl imgUrl(m_src);
    //Do following when url
    if (imgUrl.url().startsWith("http://") || imgUrl.url().startsWith("https://")) {
        returnCached(imgUrl);
    } else {
        //The file url is local already.
        m_localUrl = m_src;
        emit localsrcChanged();
    }
}
Exemplo n.º 6
0
void CreatePreviewTask::run()
{
    PTOType data(ptoData);

    if (data.images.size() != preProcessedUrlsMap.size())
    {
        errString = i18n("Project file parsing failed.");
        kDebug() << "Missing parsing data!";
        successFlag = false;
        return;
    }

    KPMetadata metaIn(preProcessedUrlsMap.begin().value().preprocessedUrl.toLocalFile());
    KPMetadata metaOut(preProcessedUrlsMap.begin().value().previewUrl.toLocalFile());
    double scalingFactor             = ((double) metaOut.getPixelSize().width()) / ((double) metaIn.getPixelSize().width());

    data.project.fileFormat.fileType = PTOType::Project::FileFormat::JPEG;
    data.project.fileFormat.quality  = 90;
    data.project.size.setHeight(data.project.size.height() * scalingFactor);
    data.project.size.setWidth(data.project.size.width() * scalingFactor);
    data.project.crop                = QRect();

    for (int imageId = 0; imageId < data.images.size(); imageId++)
    {
        PTOType::Image& image   = data.images[imageId];
        KUrl imgUrl(KUrl(tmpDir), image.fileName);
        ItemUrlsMap::const_iterator it;
        const ItemUrlsMap* ppum = &preProcessedUrlsMap;

        for (it = ppum->constBegin(); it != ppum->constEnd() && it.value().preprocessedUrl != imgUrl; ++it);

        if (it == ppum->constEnd())
        {
            errString = i18n("Unknown input file in the project file: %1", image.fileName);
            kDebug() << "Unknown input File in the PTO: " << image.fileName;
            kDebug() << "IMG: " << imgUrl.toLocalFile();
            successFlag = false;
            return;
        }

        image.fileName = it.value().previewUrl.fileName();
        KUrl preview(KUrl(tmpDir), image.fileName);
        KPMetadata metaImage(preview.toLocalFile());
        image.size     = metaImage.getPixelSize();
        image.optimisationParameters.clear();
    }

    // Remove unncessary stuff
    data.controlPoints.clear();

    // Add two commented line for a JPEG output
    data.lastComments.clear();
    data.lastComments << "#hugin_outputImageType jpg";
    data.lastComments << "#hugin_outputJPEGQuality 90";

    (*previewPtoUrl) = tmpDir;
    previewPtoUrl->setFileName("preview.pto");
    data.createFile(previewPtoUrl->toLocalFile());

    kDebug() << "Preview PTO File created: " << previewPtoUrl->fileName();

    successFlag = true;
}