rpms/amarok/devel lyric.patch,NONE,1.1 amarok.spec,1.170,1.171

Rex Dieter rdieter at fedoraproject.org
Thu Oct 8 12:40:34 UTC 2009


Author: rdieter

Update of /cvs/pkgs/rpms/amarok/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv4236/devel

Modified Files:
	amarok.spec 
Added Files:
	lyric.patch 
Log Message:
* Thu Oct 08 2009 Rex Dieter <rdieter at fedoraproject.org> 2.2.0-3
- upstream lyric.patch


lyric.patch:
 main.js |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

--- NEW FILE lyric.patch ---
diff --git a/src/scripts/lyrics_lyricwiki/main.js b/src/scripts/lyrics_lyricwiki/main.js
index 60150f9..5c75473 100644
--- a/src/scripts/lyrics_lyricwiki/main.js
+++ b/src/scripts/lyrics_lyricwiki/main.js
@@ -97,10 +97,26 @@ function onFinished( response )
                 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( /—/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>" );


Index: amarok.spec
===================================================================
RCS file: /cvs/pkgs/rpms/amarok/devel/amarok.spec,v
retrieving revision 1.170
retrieving revision 1.171
diff -u -p -r1.170 -r1.171
--- amarok.spec	2 Oct 2009 14:40:27 -0000	1.170
+++ amarok.spec	8 Oct 2009 12:40:34 -0000	1.171
@@ -2,7 +2,7 @@
 Name:    amarok
 Summary: Media player
 Version: 2.2.0
-Release: 2%{?dist}
+Release: 3%{?dist}
 
 Group: 	 Applications/Multimedia
 License: GPLv2+
@@ -12,6 +12,10 @@ BuildRoot: %{_tmppath}/%{name}-%{version
 
 Patch50: amarok-2.0.90-qtscript_not_required.patch
 
+## upstream patches
+# sigh, ride the lyric roller-coaster
+Patch100: lyric.patch
+
 BuildRequires: curl-devel
 BuildRequires: desktop-file-utils
 BuildRequires: gettext
@@ -79,6 +83,7 @@ Obsoletes: amarok-utilities < 2.0.96
 %setup -q 
 
 %patch50 -p1 -b .qtscript_not_required
+%patch100 -p1 -b .lyric
 
 
 %build
@@ -170,6 +175,9 @@ fi
 
 
 %changelog
+* Thu Oct 08 2009 Rex Dieter <rdieter at fedoraproject.org> 2.2.0-3
+- upstream lyric.patch
+
 * Fri Oct 02 2009 Rex Dieter <rdieter at fedoraproject.org> 2.2.0-2
 - Requires: kdebase-runtime (need kio_trash, kcm_phonon, etc)
 




More information about the fedora-extras-commits mailing list