File amarok-2.2.0-fix-lyrics.patch of Package amarok

--- src/scripts/lyrics_lyricwiki/main.js~	2009-09-28 19:34:03.000000000 +0200
+++ src/scripts/lyrics_lyricwiki/main.js	2009-10-16 04:01:42.000000000 +0200
@@ -97,10 +97,27 @@
                 return;
             }
             // parse the relevant part of the html source of the returned page
-            relevant = /<div[^<>]*['"]lyricbox['"][^<>]*>(.*)<\/div>/.exec(response)[1];
+            var pos = response.indexOf( "lyricbox" );
+            var startPos = response.indexOf( ">", pos ) + 1;
+            var endPos = response.indexOf( "</div>", startPos );
+            var otherDivPos = response.indexOf( "<div", startPos );
+            while ( otherDivPos != -1 && otherDivPos < endPos ) {
+                endPos = response.indexOf( "</div>", endPos + 1 );
+                otherDivPos = response.indexOf( "<div", otherDivPos + 1 );
+            }
+            var relevant = response.substring( startPos, endPos );
+
             // take care of a few special cases
             relevant = relevant.replace(/<br\s*\/?>/g, "\n") + "\n\n"; // convert <br> to \n
             relevant = relevant.replace( /&mdash;/g, "—" ); // not supported by QDomDocument
+            // strip adverts
+            pos = relevant.indexOf( "rtMatcher" );
+            while( pos != -1 ) {
+                startPos = relevant.lastIndexOf( "<div", pos );
+                endPos = relevant.indexOf( "</div>", pos );
+                relevant = relevant.substring( 0, startPos ) + relevant.substring( endPos + 6 );
+                pos = relevant.indexOf( "rtMatcher" );
+            }
             // construct a QDomDocument to convert special characters in the lyrics text. 
             doc2 = new QDomDocument();
             doc2.setContent( "<?xml version=\"1.0\" encoding=\"UTF-8\"?><lyrics>" + relevant + "</lyrics>" );
openSUSE Build Service is sponsored by