Merge pull request #27316 from damienruscoe/video_thumb_loader_database_interaction

[VideoThumbLoader] Refactor
This commit is contained in:
Stephan Sundermann 2025-12-14 21:10:31 +01:00 committed by GitHub
commit acb75e8519
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 34 additions and 42 deletions

View File

@ -2743,41 +2743,6 @@ std::string CVideoDatabase::GetValueString(const CVideoInfoTag& details,
}
//********************************************************************************************************************************
int CVideoDatabase::SetDetailsForItem(CVideoInfoTag& details, const KODI::ART::Artwork& artwork)
{
return SetDetailsForItem(details.m_iDbId, details.m_type, details, artwork);
}
int CVideoDatabase::SetDetailsForItem(int id,
MediaType_view mediaType,
CVideoInfoTag& details,
const KODI::ART::Artwork& artwork)
{
if (mediaType == MediaTypeNone)
return -1;
if (mediaType == MediaTypeMovie)
return SetDetailsForMovie(details, artwork, id);
else if (mediaType == MediaTypeVideoCollection)
return SetDetailsForMovieSet(details, artwork, id);
else if (mediaType == MediaTypeTvShow)
{
KODI::ART::SeasonsArtwork seasonArtwork;
if (!UpdateDetailsForTvShow(id, details, artwork, seasonArtwork))
return -1;
return id;
}
else if (mediaType == MediaTypeSeason)
return SetDetailsForSeason(details, artwork, details.m_iIdShow, id);
else if (mediaType == MediaTypeEpisode)
return SetDetailsForEpisode(details, artwork, details.m_iIdShow, id);
else if (mediaType == MediaTypeMusicVideo)
return SetDetailsForMusicVideo(details, artwork, id);
return -1;
}
int CVideoDatabase::SetDetailsForMovie(CVideoInfoTag& details,
const KODI::ART::Artwork& artwork,
int idMovie /* = -1 */)

View File

@ -688,12 +688,6 @@ public:
dbiplus::Dataset& pDS,
int idFile = -1 /* = -1 */) const;
int SetDetailsForItem(CVideoInfoTag& details, const KODI::ART::Artwork& artwork);
int SetDetailsForItem(int id,
MediaType_view mediaType,
CVideoInfoTag& details,
const KODI::ART::Artwork& artwork);
int SetDetailsForMovie(CVideoInfoTag& details,
const KODI::ART::Artwork& artwork,
int idMovie = -1);

View File

@ -340,7 +340,7 @@ bool CVideoThumbLoader::LoadItemLookup(CFileItem* pItem)
info->SetDuration(info->GetDuration());
// store the updated information in the database
m_videoDatabase->SetDetailsForItem(info->m_iDbId, info->m_type, *info, pItem->GetArt());
SetDetailsForItem(*info, pItem->GetArt());
}
m_videoDatabase->CommitTransaction();
@ -353,6 +353,36 @@ bool CVideoThumbLoader::LoadItemLookup(CFileItem* pItem)
return true;
}
int CVideoThumbLoader::SetDetailsForItem(CVideoInfoTag& details, const KODI::ART::Artwork& artwork)
{
int id = details.m_iDbId;
MediaType_view mediaType = details.m_type;
if (mediaType == MediaTypeNone)
return -1;
if (mediaType == MediaTypeMovie)
return m_videoDatabase->SetDetailsForMovie(details, artwork, id);
else if (mediaType == MediaTypeVideoCollection)
return m_videoDatabase->SetDetailsForMovieSet(details, artwork, id);
else if (mediaType == MediaTypeTvShow)
{
KODI::ART::SeasonsArtwork seasonArtwork;
if (!m_videoDatabase->UpdateDetailsForTvShow(id, details, artwork, seasonArtwork))
return -1;
return id;
}
else if (mediaType == MediaTypeSeason)
return m_videoDatabase->SetDetailsForSeason(details, artwork, details.m_iIdShow, id);
else if (mediaType == MediaTypeEpisode)
return m_videoDatabase->SetDetailsForEpisode(details, artwork, details.m_iIdShow, id);
else if (mediaType == MediaTypeMusicVideo)
return m_videoDatabase->SetDetailsForMusicVideo(details, artwork, id);
return -1;
}
bool CVideoThumbLoader::FillLibraryArt(CFileItem &item)
{
CVideoInfoTag &tag = *item.GetVideoInfoTag();

View File

@ -84,4 +84,7 @@ protected:
void DetectAndAddMissingItemData(CFileItem &item);
const KODI::ART::Artwork& GetArtFromCache(const std::string& mediaType, const int id);
private:
int SetDetailsForItem(CVideoInfoTag& details, const KODI::ART::Artwork& artwork);
};