LINUX.ORG.RU
ФорумTalks

[PATCH] amaroK 1.2.4: save lyrics

 


0

0

Патч предназначен для amaroK 1.2.4. Тексты песен, загружаемые из интернета, автоматически сохраняются, и при повторных проигрываниях песни не требуется снова подключаться к сети. На всякий случай в верхней части страницы добавляется ссылка "Refresh Lyrics" для повторной загрузки.

Обратите внимание, что все операции производятся в каталоге /hda9/Texts. Это мои сборник текстов - пропустите патч через sed, чтобы указать какой-либо свой каталог.

anonymous

--- amarok-1.2.4/amarok/src/contextbrowser.cpp 2005-05-19 23:00:19.000000000 +0600
+++ amarok-1.2.4-new/amarok/src/contextbrowser.cpp 2005-05-22 12:07:05.000000000 +0600
@@ -231,8 +231,14 @@ void ContextBrowser::openURLRequest( con
             m_lyrics = QString::null;
             QString hash = url.path().mid( url.path().find( QString( "-" ) ) +1 );
             m_dirtyLyricsPage = true;
+     QFile::remove("/hda9/Texts/" + EngineController::instance()->bundle().artist() + " -- " + EngineController::instance()->bundle().title() + ".html");
             showLyrics( hash );
         }
+ else if ( url.path().contains( "refreshLyrics" ) )
+ {
+  QFile::remove("/hda9/Texts/" + EngineController::instance()->bundle().artist() + " -- " + EngineController::instance()->bundle().title() + ".html");
+  showLyrics();
+ }
         else if ( url.path() == "lyrics" )
             showLyrics();
         else if ( url.path() == "collectionSetup" )
@@ -391,6 +397,7 @@ void ContextBrowser::saveHtmlData()
     stream << m_HTMLSource // the pure html data..
         .replace("<html>",QString("<html><head><styl
e type=\"text/css\">%1</style></head>").arg(m_styleS
heet) ); // and the stylesheet code
     exportedDocument.close();
+
 }
 
 
@@ -1712,6 +1719,24 @@ void ContextBrowser::showLyrics( const Q
 
     if ( !m_dirtyLyricsPage ) return;
 
+    // Check If Lyrics Already Exist
+    QFile lyricsFile("/hda9/Texts/" + EngineController::instance()->bundle().artist() + " -- " + EngineController::instance()->bundle().title() + ".html");
+    if ( lyricsFile.exists() ) {
+     lyricsFile.open(IO_ReadOnly);
+     QTextStream lyricsStream ( &lyricsFile );;
+     lyricsStream.setEncoding( QTextStream::UnicodeUTF8 );
+     QString lyricsFromFile;
+     lyricsFromFile = lyricsStream.read();
+     m_lyricsPage->begin();
+     m_lyricsPage->setUserStyleSheet( m_styleSheet ); //???
+     qWarning( lyricsFromFile.ascii() );
+     m_lyricsPage->write( lyricsFromFile );
+     m_lyricsPage->end();
+     return;
+    }
+
+    // end Check If Lyrics Already Exist
+    
     m_lyricsPage->begin();
     m_lyricsPage->setUserStyleSheet( m_styleSheet );
     m_HTMLSource = QString (
@@ -1843,6 +1868,7 @@ ContextBrowser::lyricsResult( KIO::Job* 
                     "</span>"
                 "</div>"
                 "<div id='lyrics_box-body' class='box-body'>"
+  "<b><a href=\"show:refreshLyrics\">Refresh lyrics</a></b><br><br>"
                     + m_lyrics +
                 "</div>"
             "</div>"
@@ -1852,6 +1878,18 @@ ContextBrowser::lyricsResult( KIO::Job* 
     m_lyricsPage->end();
     m_dirtyLyricsPage = false;
     saveHtmlData(); // Send html code to file
+
+    //Save lyrics to file for future use
+    //2005-05-22 09:53
+
+    QFile lyricsFile( "/hda9/Texts/" + EngineController::instance()->bundle().artist() + " -- " + EngineController::instance()->bundle().title() + ".html");
+    lyricsFile.open(IO_WriteOnly);
+    QTextStream lyrStream ( &lyricsFile );
+    lyrStream.setEncoding( QTextStream::UnicodeUTF8 );
+    lyrStream << m_HTMLSource 
+     .replace("<html>",QString("<html><head><styl
e type=\"text/css\">%1</style></head>").arg(m_styleS
heet) ); 
+    lyricsFile.close();
+    
 }
 
 

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.