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(); } } }
void Tasty::correctHtml(QString& html, bool isEntry) { QRegularExpression firstSlugRe("^(~|@)([a-zA-Z0-9_\\-\\.]+)"); html.replace(firstSlugRe, "<a href='http://taaasty.com/~\\2'>\\1\\2</a>"); QRegularExpression slugRe("([^'/>\\w\\-\\.])(~|@)([a-zA-Z0-9_\\-\\.]+)"); html.replace(slugRe, "\\1<a href='http://taaasty.com/~\\3'>\\2\\3</a>"); QRegularExpression imageLinkRe("<a[^>]*>(<img[^>]*>)</a>"); html.replace(imageLinkRe, "\\1"); auto width = isEntry ? Tasty::instance()->_entryImageWidth : Tasty::instance()->_commentImageWidth; QRegularExpression imgRe("<img (?:width=\\d+ )?"); html.replace(imgRe, QString("<img width=%1 ").arg(width)); }
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; } } }