Exemple #1
0
void KryptoniteJobCoverDiscogs::parseListHtml( const QByteArray &data )
{
   emit message( tr( "Parsing discogs search reply" ), data );
   QRegExp imgRe( ".*<img[^>]*class=[^>]*search_result_image[^>]*src=\"([^\"]*)\".*" );
   QRegExp linkRe( ".*<a[^>]*class=[^>]*search_result_title[^>]*href=\"([^\"]*)\".*" );
   QString s( QString::fromUtf8(data.constData()) );
   QStringList l( s.split("\n", QString::SkipEmptyParts) );
   QUrl imgUrl;
   QUrl linkUrl;
   foreach( s, l )
   {
      if( s.contains( imgRe ) )
      {
         imgUrl.setUrl( QString(s).replace( imgRe, "\\1" ) );
      }
      if( s.contains( linkRe ) )
      {
         linkUrl.setUrl( QString(s).replace( linkRe, "http://www.discogs.com\\1" ) );
      }
      if( !imgUrl.isEmpty() && !linkUrl.isEmpty() )
      {
         emit requestDownload( this, SIGNAL(imageFound(QByteArray,QVariant)), imgUrl, QVariant( linkUrl ) );
         imgUrl.clear();
         linkUrl.clear();
      }
   }
}
Exemple #2
0
void KryptoniteJobCoverDiscogs::requestList( const QString &query )
{
   emit message( tr( "Searching discogs.com" ) );
   QUrl url( "http://www.discogs.com/search" );
   url.addQueryItem( "q", query );
   url.addQueryItem( "type", "all" );
   emit requestDownload( this, SLOT(parseListHtml(QByteArray)), url );
}
Exemple #3
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;
      }
   }
}
Exemple #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;
      }
   }
}
void BrowserDialog::unsupportedContent(QNetworkReply *reply)
{
    try {
        QWebPage *page = qobject_cast<QWebPage*>(sender());
        if (page == nullptr) {
            qCritical("sender not a page");
            return;
        }
        BrowserView *view = qobject_cast<BrowserView*>(page->view());
        if (view == nullptr) {
            qCritical("no view?");
            return;
        }

        emit requestDownload(view->url(), reply);
    } catch (const std::exception &e) {
        if (isVisible()) {
            MessageDialog::showMessage(tr("failed to start download"), this);
        }
        qCritical("exception downloading unsupported content: %s", e.what());
    }
}
Exemple #6
0
void KryptoniteJobCoverDiscogs::requestImage( const QUrl &url, const QVariant &payload )
{
   emit requestDownload( this, SLOT(parseItemHtml(QByteArray,QVariant)), url, payload );
}
Exemple #7
0
void OSD::dragEnterEvent(QDragEnterEvent *e)
{
    emit requestDownload( e->mimeData()->text() );
}