@ -588,6 +588,7 @@ void Parser::parse_impl(const QByteArray &feedData)
void Parser : : parseRssArticle ( QXmlStreamReader & xml )
void Parser : : parseRssArticle ( QXmlStreamReader & xml )
{
{
QVariantHash article ;
QVariantHash article ;
QString altTorrentUrl ;
while ( ! xml . atEnd ( ) ) {
while ( ! xml . atEnd ( ) ) {
xml . readNext ( ) ;
xml . readNext ( ) ;
@ -603,6 +604,8 @@ void Parser::parseRssArticle(QXmlStreamReader &xml)
else if ( name = = QLatin1String ( " enclosure " ) ) {
else if ( name = = QLatin1String ( " enclosure " ) ) {
if ( xml . attributes ( ) . value ( " type " ) = = QLatin1String ( " application/x-bittorrent " ) )
if ( xml . attributes ( ) . value ( " type " ) = = QLatin1String ( " application/x-bittorrent " ) )
article [ Article : : KeyTorrentURL ] = xml . attributes ( ) . value ( QLatin1String ( " url " ) ) . toString ( ) ;
article [ Article : : KeyTorrentURL ] = xml . attributes ( ) . value ( QLatin1String ( " url " ) ) . toString ( ) ;
else if ( xml . attributes ( ) . value ( " type " ) . isEmpty ( ) )
altTorrentUrl = xml . attributes ( ) . value ( QLatin1String ( " url " ) ) . toString ( ) ;
}
}
else if ( name = = QLatin1String ( " link " ) ) {
else if ( name = = QLatin1String ( " link " ) ) {
const QString text { xml . readElementText ( ) . trimmed ( ) } ;
const QString text { xml . readElementText ( ) . trimmed ( ) } ;
@ -629,6 +632,9 @@ void Parser::parseRssArticle(QXmlStreamReader &xml)
}
}
}
}
if ( article [ Article : : KeyTorrentURL ] . toString ( ) . isEmpty ( ) )
article [ Article : : KeyTorrentURL ] = altTorrentUrl ;
m_result . articles . prepend ( article ) ;
m_result . articles . prepend ( article ) ;
}
}