From 7798e1451701b2e6e55fb0292346e5599a4955a2 Mon Sep 17 00:00:00 2001 From: CrystalP Date: Thu, 25 Apr 2024 23:50:15 -0400 Subject: [PATCH] [videodb] Add Transaction and Rename AddVideoVersion --- xbmc/video/VideoDatabase.cpp | 35 ++++++++-------------- xbmc/video/VideoDatabase.h | 18 ++++------- xbmc/video/VideoInfoScanner.cpp | 5 ++-- xbmc/video/dialogs/GUIDialogVideoManagerExtras.cpp | 2 +- .../dialogs/GUIDialogVideoManagerVersions.cpp | 2 +- 5 files changed, 23 insertions(+), 39 deletions(-) diff --git a/xbmc/video/VideoDatabase.cpp b/xbmc/video/VideoDatabase.cpp index 32ab53bc59..acfa18fb95 100644 --- a/xbmc/video/VideoDatabase.cpp +++ b/xbmc/video/VideoDatabase.cpp @@ -12540,31 +12540,17 @@ void CVideoDatabase::SetVideoVersion(int idFile, int idVideoVersion) } } -void CVideoDatabase::AddPrimaryVideoVersion(VideoDbContentType itemType, - int dbId, - int idVideoVersion, - CFileItem& item) -{ - AddVideoVersion(itemType, dbId, idVideoVersion, VideoAssetType::VERSION, item); -} - -void CVideoDatabase::AddExtrasVideoVersion(VideoDbContentType itemType, - int dbId, - int idVideoVersion, - CFileItem& item) -{ - AddVideoVersion(itemType, dbId, idVideoVersion, VideoAssetType::EXTRA, item); -} - -void CVideoDatabase::AddVideoVersion(VideoDbContentType itemType, - int dbId, - int idVideoVersion, - VideoAssetType videoAssetType, - CFileItem& item) +void CVideoDatabase::AddVideoAsset(VideoDbContentType itemType, + int dbId, + int idVideoVersion, + VideoAssetType videoAssetType, + CFileItem& item) { if (!m_pDB || !m_pDS) return; + assert(m_pDB->in_transaction() == false); + MediaType mediaType; if (itemType == VideoDbContentType::MOVIES) { @@ -12579,6 +12565,8 @@ void CVideoDatabase::AddVideoVersion(VideoDbContentType itemType, try { + BeginTransaction(); + m_pDS->query(PrepareSQL("SELECT idFile FROM videoversion WHERE idFile = %i", idFile)); if (m_pDS->num_rows() == 0) @@ -12594,10 +12582,13 @@ void CVideoDatabase::AddVideoVersion(VideoDbContentType itemType, if (videoAssetType == VideoAssetType::VERSION) SetVideoVersionDefaultArt(idFile, item.GetVideoInfoTag()->m_iDbId, itemType); + + CommitTransaction(); } catch (...) { - CLog::Log(LOGERROR, "{} failed for video {}", __FUNCTION__, dbId); + CLog::LogF(LOGERROR, "failed for video {}", dbId); + RollbackTransaction(); } } diff --git a/xbmc/video/VideoDatabase.h b/xbmc/video/VideoDatabase.h index d1d28cf21a..65038720a0 100644 --- a/xbmc/video/VideoDatabase.h +++ b/xbmc/video/VideoDatabase.h @@ -1063,19 +1063,11 @@ public: int AddVideoVersionType(const std::string& typeVideoVersion, VideoAssetTypeOwner owner, VideoAssetType assetType); - void AddVideoVersion(VideoDbContentType itemType, - int dbId, - int idVideoVersion, - VideoAssetType videoAssetType, - CFileItem& item); - void AddPrimaryVideoVersion(VideoDbContentType itemType, - int dbId, - int idVideoVersion, - CFileItem& item); - void AddExtrasVideoVersion(VideoDbContentType itemType, - int dbId, - int idVideoVersion, - CFileItem& item); + void AddVideoAsset(VideoDbContentType itemType, + int dbId, + int idVideoVersion, + VideoAssetType videoAssetType, + CFileItem& item); bool DeleteVideoAsset(int idFile); bool IsDefaultVideoVersion(int idFile); bool GetVideoVersionTypes(VideoDbContentType idContent, diff --git a/xbmc/video/VideoInfoScanner.cpp b/xbmc/video/VideoInfoScanner.cpp index b9062bf0b1..44ada0c46f 100644 --- a/xbmc/video/VideoInfoScanner.cpp +++ b/xbmc/video/VideoInfoScanner.cpp @@ -2487,8 +2487,9 @@ namespace VIDEO const int idVideoVersion = m_database.AddVideoVersionType( typeVideoVersion, VideoAssetTypeOwner::AUTO, VideoAssetType::EXTRA); - m_database.AddExtrasVideoVersion(ContentToVideoDbType(content), dbId, idVideoVersion, - *item.get()); + m_database.AddVideoAsset(ContentToVideoDbType(content), dbId, idVideoVersion, + VideoAssetType::EXTRA, *item.get()); + CLog::Log(LOGDEBUG, "VideoInfoScanner: Added video extras {}", CURL::GetRedacted(item->GetPath())); }, diff --git a/xbmc/video/dialogs/GUIDialogVideoManagerExtras.cpp b/xbmc/video/dialogs/GUIDialogVideoManagerExtras.cpp index 153ae2dad3..4a465773b0 100644 --- a/xbmc/video/dialogs/GUIDialogVideoManagerExtras.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoManagerExtras.cpp @@ -239,7 +239,7 @@ bool CGUIDialogVideoManagerExtras::AddVideoExtra() if (idNewVideoVersion == -1) return false; - m_database.AddExtrasVideoVersion(itemType, dbId, idNewVideoVersion, item); + m_database.AddVideoAsset(itemType, dbId, idNewVideoVersion, VideoAssetType::EXTRA, item); return true; } diff --git a/xbmc/video/dialogs/GUIDialogVideoManagerVersions.cpp b/xbmc/video/dialogs/GUIDialogVideoManagerVersions.cpp index 28d6e8a1ec..d9bf387f62 100644 --- a/xbmc/video/dialogs/GUIDialogVideoManagerVersions.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoManagerVersions.cpp @@ -606,7 +606,7 @@ bool CGUIDialogVideoManagerVersions::AddVideoVersionFilePicker() if (idNewVideoVersion == -1) return false; - m_database.AddPrimaryVideoVersion(itemType, dbId, idNewVideoVersion, item); + m_database.AddVideoAsset(itemType, dbId, idNewVideoVersion, VideoAssetType::VERSION, item); return true; } -- 2.11.4.GIT