--- a/src/scripts/lyrics_lyricwiki/main.js +++ b/src/scripts/lyrics_lyricwiki/main.js @@ -27,7 +27,32 @@ Importer.loadQtBinding( "qt.xml" ); xml = "{lyrics}"; +newxml = ""; +function onFinished2( response ) +{ + try + { + if( response.length == 0 ) + Amarok.Lyrics.showLyricsError( "Unable to contact server - no website returned" ); // TODO: this should be i18n able + else + { + doc2 = new QDomDocument(); + doc2.setContent( response ); + textboxtext = doc2.elementsByTagName( "textarea" ).at( 0 ).toElement().text(); + lyr = /(.*)<\/lyrics>/.exec(textboxtext)[1]; + //Amarok.debug( "matched: " + lyr ); + newxml = newxml.replace( "{lyrics}", Amarok.Lyrics.escape( lyr ) ); + Amarok.Lyrics.showLyrics( newxml ); + } + } + catch( err ) + { + Amarok.Lyrics.showLyricsError( "Could not retrieve lyrics: " + err ); + Amarok.debug( "error: " + err ); + } +} + function onFinished( dat ) { try @@ -38,13 +63,14 @@ { doc = new QDomDocument(); doc.setContent( dat ); - parsedContent = doc.elementsByTagName( "lyrics" ).at( 0 ).toElement().text(); - parsedContent = parsedContent.replace( "", "" ).replace( "", "" ); // some lyrics have 2 lyrics in them...wtf? newxml = xml.replace( "{artist}", Amarok.Lyrics.escape( doc.elementsByTagName( "artist" ).at( 0 ).toElement().text() ) ); newxml = newxml.replace( "{title}", Amarok.Lyrics.escape( doc.elementsByTagName( "song" ).at( 0 ).toElement().text() ) ); - newxml = newxml.replace( "{lyrics}", Amarok.Lyrics.escape( parsedContent ) ); - //Amarok.debug( "showing lyrics:" + newxml ); - Amarok.Lyrics.showLyrics( newxml ); + Amarok.debug( "returned real lyricwiki URL: " + doc.elementsByTagName( "url" ).at( 0 ).toElement().text()); + var url = decodeURI(doc.elementsByTagName( "url" ).at( 0 ).toElement().text()); + url = url.replace( /lyricwiki\.org\//, "lyricwiki.org/index.php?action=edit&title=" ); + var url2 = new QUrl(url); + Amarok.debug( "request-2 URL: " + url2.toString() ); + new Downloader( url2, onFinished2 ); } } catch( err )