diff options
author | Jonathan Marshall <jmarshall@xbmc.org> | 2013-12-01 22:01:17 +1300 |
---|---|---|
committer | Jonathan Marshall <jmarshall@xbmc.org> | 2013-12-24 13:48:54 +1300 |
commit | a082a9532cb809f7056dc76bc41726efd5a4fc5f (patch) | |
tree | e5d936a1609d58236418dfadd58c3091edec86ff | |
parent | 2b5408215494be7baf11ce29008272af2bba2ab4 (diff) |
[musicdb] adds HasAlbumBeenScraped/ClearAlbumLastScrapedTime, dropping HasAlbumInfo/DeleteAlbumInfo
-rw-r--r-- | xbmc/music/MusicDatabase.cpp | 41 | ||||
-rw-r--r-- | xbmc/music/MusicDatabase.h | 5 | ||||
-rw-r--r-- | xbmc/music/infoscanner/MusicInfoScanner.cpp | 4 | ||||
-rw-r--r-- | xbmc/music/windows/GUIWindowMusicBase.cpp | 4 |
4 files changed, 19 insertions, 35 deletions
diff --git a/xbmc/music/MusicDatabase.cpp b/xbmc/music/MusicDatabase.cpp index 0e4a63544f..75940f5854 100644 --- a/xbmc/music/MusicDatabase.cpp +++ b/xbmc/music/MusicDatabase.cpp @@ -754,6 +754,18 @@ bool CMusicDatabase::GetAlbum(int idAlbum, CAlbum& album, bool getSongs /* = tru return false; } +bool CMusicDatabase::ClearAlbumLastScrapedTime(int idAlbum) +{ + CStdString strSQL = PrepareSQL("UPDATE album SET lastScraped = NULL WHERE idAlbum = %i", idAlbum); + return ExecuteQuery(strSQL); +} + +bool CMusicDatabase::HasAlbumBeenScraped(int idAlbum) +{ + CStdString strSQL = PrepareSQL("SELECT idAlbum FROM album WHERE idAlbum = %i AND lastScraped IS NULL", idAlbum); + return GetSingleValue(strSQL).empty(); +} + int CMusicDatabase::AddGenre(const CStdString& strGenre1) { CStdString strSQL; @@ -1465,35 +1477,6 @@ bool CMusicDatabase::SearchArtists(const CStdString& search, CFileItemList &arti return false; } -bool CMusicDatabase::HasAlbumInfo(int idAlbum) -{ - try - { - if (idAlbum == -1) - return false; // not in the database - - CStdString strSQL=PrepareSQL("select idAlbum from album where idAlbum = %ld and lastScraped NOT NULL", idAlbum); - - if (!m_pDS2->query(strSQL.c_str())) return false; - int iRowsFound = m_pDS2->num_rows(); - m_pDS2->close(); - return iRowsFound > 0; - } - catch (...) - { - CLog::Log(LOGERROR, "%s(%i) failed", __FUNCTION__, idAlbum); - } - - return false; -} - -bool CMusicDatabase::DeleteAlbumInfo(int idAlbum) -{ - if (idAlbum == -1) - return false; // not in the database - return ExecuteQuery(PrepareSQL("update album set lastScraped = NULL where idAlbum=%i",idAlbum)); -} - bool CMusicDatabase::GetArtistInfo(int idArtist, CArtist &info, bool needAll) { try diff --git a/xbmc/music/MusicDatabase.h b/xbmc/music/MusicDatabase.h index ebca036d6a..c29302871a 100644 --- a/xbmc/music/MusicDatabase.h +++ b/xbmc/music/MusicDatabase.h @@ -209,6 +209,9 @@ public: bool GetAlbum(int idAlbum, CAlbum& album, bool getSongs = true); int UpdateAlbum(int idAlbum, const CAlbum &album); bool DeleteAlbum(int idAlbum); + bool ClearAlbumLastScrapedTime(int idAlbum); + bool HasAlbumBeenScraped(int idAlbum); + /*! \brief Checks if the given path is inside a folder that has already been scanned into the library \param path the path we want to check */ @@ -253,9 +256,7 @@ public: ///////////////////////////////////////////////// // AlbumInfo ///////////////////////////////////////////////// - bool HasAlbumInfo(int idAlbum); int SetAlbumInfo(int idAlbum, const CAlbum& album, const VECSONGS& songs, bool bTransaction=true); - bool DeleteAlbumInfo(int idArtist); ///////////////////////////////////////////////// // ArtistInfo diff --git a/xbmc/music/infoscanner/MusicInfoScanner.cpp b/xbmc/music/infoscanner/MusicInfoScanner.cpp index 6f544900a1..9ecac0ade8 100644 --- a/xbmc/music/infoscanner/MusicInfoScanner.cpp +++ b/xbmc/music/infoscanner/MusicInfoScanner.cpp @@ -172,7 +172,7 @@ void CMusicInfoScanner::Process() { CQueryParams params; CDirectoryNode::GetDatabaseInfo(*it, params); - if (m_musicDatabase.HasAlbumInfo(params.GetArtistId())) // should this be here? + if (m_musicDatabase.HasAlbumBeenScraped(params.GetAlbumId())) // should this be here? continue; CAlbum album; @@ -297,7 +297,7 @@ void CMusicInfoScanner::FetchAlbumInfo(const CStdString& strDirectory, m_pathsToScan.insert(items[i]->GetPath()); if (refresh) { - m_musicDatabase.DeleteAlbumInfo(items[i]->GetMusicInfoTag()->GetDatabaseId()); + m_musicDatabase.ClearAlbumLastScrapedTime(items[i]->GetMusicInfoTag()->GetDatabaseId()); } } m_musicDatabase.Close(); diff --git a/xbmc/music/windows/GUIWindowMusicBase.cpp b/xbmc/music/windows/GUIWindowMusicBase.cpp index ac77d544df..18c10d1088 100644 --- a/xbmc/music/windows/GUIWindowMusicBase.cpp +++ b/xbmc/music/windows/GUIWindowMusicBase.cpp @@ -432,7 +432,7 @@ bool CGUIWindowMusicBase::ShowAlbumInfo(const CFileItem *pItem, bool bShowInfo / CMusicAlbumInfo albumInfo; while (1) { - if (!m_musicdatabase.HasAlbumInfo(params.GetAlbumId()) || + if (!m_musicdatabase.HasAlbumBeenScraped(params.GetAlbumId()) || !m_musicdatabase.GetAlbum(params.GetAlbumId(), albumInfo.GetAlbum())) { if (!CProfilesManager::Get().GetCurrentProfile().canWriteDatabases() && !g_passwordManager.bMasterUser) @@ -484,7 +484,7 @@ bool CGUIWindowMusicBase::ShowAlbumInfo(const CFileItem *pItem, bool bShowInfo / if (pDlgAlbumInfo->NeedRefresh()) { - m_musicdatabase.DeleteAlbumInfo(params.GetAlbumId()); + m_musicdatabase.ClearAlbumLastScrapedTime(params.GetAlbumId()); continue; } else if (pDlgAlbumInfo->HasUpdatedThumb()) |