Add duration to lyrics search request

This commit is contained in:
Jonas Kvinge
2025-12-09 18:40:45 +01:00
parent cf15a1f423
commit 059def8d0c
5 changed files with 9 additions and 5 deletions

View File

@@ -59,6 +59,7 @@
#include "covermanager/albumcoverchoicecontroller.h"
#include "lyrics/lyricsfetcher.h"
#include "constants/contextsettings.h"
#include "constants/timeconstants.h"
#include "contextview.h"
#include "contextalbum.h"
@@ -353,7 +354,7 @@ void ContextView::SearchLyrics() {
if (lyrics_.isEmpty() && action_show_lyrics_->isChecked() && action_search_lyrics_->isChecked() && !song_playing_.artist().isEmpty() && !song_playing_.title().isEmpty() && !lyrics_tried_ && lyrics_id_ == -1) {
lyrics_fetcher_->Clear();
lyrics_tried_ = true;
lyrics_id_ = static_cast<qint64>(lyrics_fetcher_->Search(song_playing_.effective_albumartist(), song_playing_.artist(), song_playing_.album(), song_playing_.title()));
lyrics_id_ = static_cast<qint64>(lyrics_fetcher_->Search(song_playing_.effective_albumartist(), song_playing_.artist(), song_playing_.album(), song_playing_.title(), song_playing_.length_nanosec() / kNsecPerSec));
}
}

View File

@@ -71,6 +71,7 @@
#include <QSettings>
#include <QMimeData>
#include "constants/timeconstants.h"
#include "core/iconloader.h"
#include "core/logging.h"
#include "core/settings.h"
@@ -1520,7 +1521,7 @@ void EditTagDialog::FetchLyrics() {
const Song song = data_.value(ui_->song_list->selectionModel()->selectedIndexes().first().row()).current_;
lyrics_fetcher_->Clear();
ui_->lyrics->setPlainText(tr("loading..."));
lyrics_id_ = static_cast<qint64>(lyrics_fetcher_->Search(song.effective_albumartist(), song.artist(), song.album(), song.title()));
lyrics_id_ = static_cast<qint64>(lyrics_fetcher_->Search(song.effective_albumartist(), song.artist(), song.album(), song.title(), song.length_nanosec() / kNsecPerSec));
}

View File

@@ -49,13 +49,14 @@ LyricsFetcher::LyricsFetcher(const SharedPtr<LyricsProviders> lyrics_providers,
}
quint64 LyricsFetcher::Search(const QString &effective_albumartist, const QString &artist, const QString &album, const QString &title) {
quint64 LyricsFetcher::Search(const QString &effective_albumartist, const QString &artist, const QString &album, const QString &title, const qint64 duration) {
LyricsSearchRequest search_request;
search_request.albumartist = effective_albumartist;
search_request.artist = artist;
search_request.album = Song::AlbumRemoveDiscMisc(album);
search_request.title = Song::TitleRemoveMisc(title);
search_request.duration = duration;
Request request;
request.id = ++next_id_;

View File

@@ -53,7 +53,7 @@ class LyricsFetcher : public QObject {
LyricsSearchRequest search_request;
};
quint64 Search(const QString &effective_albumartist, const QString &artist, const QString &album, const QString &title);
quint64 Search(const QString &effective_albumartist, const QString &artist, const QString &album, const QString &title, const qint64 duration);
void Clear();
private:

View File

@@ -26,11 +26,12 @@
class LyricsSearchRequest {
public:
explicit LyricsSearchRequest() = default;
explicit LyricsSearchRequest() : duration(-1) {}
QString albumartist;
QString artist;
QString album;
QString title;
qint64 duration;
};
Q_DECLARE_METATYPE(LyricsSearchRequest)