aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Marshall <jmarshall@xbmc.org>2013-12-01 22:01:17 +1300
committerJonathan Marshall <jmarshall@xbmc.org>2013-12-24 13:48:54 +1300
commita082a9532cb809f7056dc76bc41726efd5a4fc5f (patch)
treee5d936a1609d58236418dfadd58c3091edec86ff
parent2b5408215494be7baf11ce29008272af2bba2ab4 (diff)
[musicdb] adds HasAlbumBeenScraped/ClearAlbumLastScrapedTime, dropping HasAlbumInfo/DeleteAlbumInfo
-rw-r--r--xbmc/music/MusicDatabase.cpp41
-rw-r--r--xbmc/music/MusicDatabase.h5
-rw-r--r--xbmc/music/infoscanner/MusicInfoScanner.cpp4
-rw-r--r--xbmc/music/windows/GUIWindowMusicBase.cpp4
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())